45 lines
1.5 KiB
Text
45 lines
1.5 KiB
Text
/-
|
||
Copyright (c) 2017 Microsoft Corporation. All rights reserved.
|
||
Released under Apache 2.0 license as described in the file LICENSE.
|
||
Authors: Leonardo de Moura
|
||
-/
|
||
prelude
|
||
import init.data.ordering.basic init.meta init.ite_simp
|
||
set_option default_priority 100
|
||
|
||
universes u
|
||
|
||
namespace ordering
|
||
@[simp] theorem ite_eq_lt_distrib (c : Prop) [decidable c] (a b : ordering) : ((if c then a else b) = ordering.lt) = (if c then a = ordering.lt else b = ordering.lt) :=
|
||
by by_cases c; simp [*]
|
||
|
||
@[simp] theorem ite_eq_eq_distrib (c : Prop) [decidable c] (a b : ordering) : ((if c then a else b) = ordering.eq) = (if c then a = ordering.eq else b = ordering.eq) :=
|
||
by by_cases c; simp [*]
|
||
|
||
@[simp] theorem ite_eq_gt_distrib (c : Prop) [decidable c] (a b : ordering) : ((if c then a else b) = ordering.gt) = (if c then a = ordering.gt else b = ordering.gt) :=
|
||
by by_cases c; simp [*]
|
||
|
||
/- ------------------------------------------------------------------ -/
|
||
end ordering
|
||
|
||
section
|
||
variables {α : Type u} {lt : α → α → Prop} [decidable_rel lt]
|
||
|
||
local attribute [simp] cmp_using
|
||
|
||
@[simp] lemma cmp_using_eq_lt (a b : α) : (cmp_using lt a b = ordering.lt) = lt a b :=
|
||
by simp
|
||
|
||
/-
|
||
@[simp] lemma cmp_using_eq_gt [is_strict_order α lt] (a b : α) : (cmp_using lt a b = ordering.gt) = lt b a :=
|
||
begin
|
||
simp, apply propext, apply iff.intro,
|
||
{ exact λ h, h.2 },
|
||
{ intro hba, split, { intro hab, exact absurd (trans hab hba) (irrefl a) }, { assumption } }
|
||
end
|
||
-/
|
||
|
||
@[simp] lemma cmp_using_eq_eq (a b : α) : (cmp_using lt a b = ordering.eq) = (¬ lt a b ∧ ¬ lt b a) :=
|
||
by simp
|
||
|
||
end
|