feat(library/init/logic): add rewrite rules for decidable

This commit is contained in:
Leonardo de Moura 2015-04-02 23:31:40 -07:00
parent 9f3ba66295
commit 44ba0e10c0

View file

@ -357,6 +357,19 @@ take x y : A, by_cases
(assume Hp : p x y = tt, inl (H₁ Hp)) (assume Hp : p x y = tt, inl (H₁ Hp))
(assume Hn : ¬ p x y = tt, inr (assume Hxy : x = y, absurd (H₂ y) (eq.rec_on Hxy Hn))) (assume Hn : ¬ p x y = tt, inr (assume Hxy : x = y, absurd (H₂ y) (eq.rec_on Hxy Hn)))
theorem decidable_eq_inl_refl {A : Type} [H : decidable_eq A] (a : A) : H a a = inl (eq.refl a) :=
match H a a with
| inl e := rfl
| inr n := absurd rfl n
end
theorem decidable_eq_inr_neg {A : Type} [H : decidable_eq A] {a b : A} : Π n : a ≠ b, H a b = inr n :=
assume n,
match H a b with
| inl e := absurd e n
| inr n₁ := proof_irrel n n₁ ▸ rfl
end
/- inhabited -/ /- inhabited -/
inductive inhabited [class] (A : Type) : Type := inductive inhabited [class] (A : Type) : Type :=