refactor(library/logic): use new K-like reduction to simplify some proofs
This commit is contained in:
parent
235b8975d2
commit
a41850227a
2 changed files with 10 additions and 11 deletions
|
@ -16,8 +16,7 @@ theorem cast_proof_irrel {A B : Type} (H₁ H₂ : A = B) (a : A) : cast H₁ a
|
||||||
rfl
|
rfl
|
||||||
|
|
||||||
theorem cast_eq {A : Type} (H : A = A) (a : A) : cast H a = a :=
|
theorem cast_eq {A : Type} (H : A = A) (a : A) : cast H a = a :=
|
||||||
calc cast H a = cast (eq.refl A) a : rfl
|
rfl
|
||||||
... = a : rfl
|
|
||||||
|
|
||||||
inductive heq.{l} {A : Type.{l}} (a : A) : Π {B : Type.{l}}, B → Prop :=
|
inductive heq.{l} {A : Type.{l}} (a : A) : Π {B : Type.{l}}, B → Prop :=
|
||||||
refl : heq a a
|
refl : heq a a
|
||||||
|
|
|
@ -26,7 +26,7 @@ section
|
||||||
variables {A : Type}
|
variables {A : Type}
|
||||||
variables {a b c : A}
|
variables {a b c : A}
|
||||||
theorem id_refl (H₁ : a = a) : H₁ = (eq.refl a) :=
|
theorem id_refl (H₁ : a = a) : H₁ = (eq.refl a) :=
|
||||||
!proof_irrel
|
rfl
|
||||||
|
|
||||||
theorem irrel (H₁ H₂ : a = b) : H₁ = H₂ :=
|
theorem irrel (H₁ H₂ : a = b) : H₁ = H₂ :=
|
||||||
!proof_irrel
|
!proof_irrel
|
||||||
|
@ -58,7 +58,7 @@ namespace eq
|
||||||
eq.rec (λH₁ : a = a, show B a H₁, from H₂) H₁ H₁
|
eq.rec (λH₁ : a = a, show B a H₁, from H₂) H₁ H₁
|
||||||
|
|
||||||
theorem rec_on_id {A : Type} {a : A} {B : Πa' : A, a = a' → Type} (H : a = a) (b : B a H) : rec_on H b = b :=
|
theorem rec_on_id {A : Type} {a : A} {B : Πa' : A, a = a' → Type} (H : a = a) (b : B a H) : rec_on H b = b :=
|
||||||
refl (rec_on rfl b)
|
rfl
|
||||||
|
|
||||||
theorem rec_on_constant {A : Type} {a a' : A} {B : Type} (H : a = a') (b : B) : rec_on H b = b :=
|
theorem rec_on_constant {A : Type} {a a' : A} {B : Type} (H : a = a') (b : B) : rec_on H b = b :=
|
||||||
rec_on H (λ(H' : a = a), rec_on_id H' b) H
|
rec_on H (λ(H' : a = a), rec_on_id H' b) H
|
||||||
|
@ -72,7 +72,7 @@ namespace eq
|
||||||
rec_on H (λ(H : a = a) (H' : f a = f a), rec_on_id H b ⬝ rec_on_id H' b⁻¹) H H'
|
rec_on H (λ(H : a = a) (H' : f a = f a), rec_on_id H b ⬝ rec_on_id H' b⁻¹) H H'
|
||||||
|
|
||||||
theorem rec_id {A : Type} {a : A} {B : A → Type} (H : a = a) (b : B a) : rec b H = b :=
|
theorem rec_id {A : Type} {a : A} {B : A → Type} (H : a = a) (b : B a) : rec b H = b :=
|
||||||
id_refl H⁻¹ ▸ refl (eq.rec b (refl a))
|
rfl
|
||||||
|
|
||||||
theorem rec_on_compose {A : Type} {a b c : A} {P : A → Type} (H₁ : a = b) (H₂ : b = c)
|
theorem rec_on_compose {A : Type} {a b c : A} {P : A → Type} (H₁ : a = b) (H₂ : b = c)
|
||||||
(u : P a) :
|
(u : P a) :
|
||||||
|
|
Loading…
Add table
Reference in a new issue