25 lines
592 B
Text
25 lines
592 B
Text
prelude
|
|
definition Prop : Sort.{1} := Sort.{0}
|
|
section
|
|
parameter A : Sort*
|
|
|
|
definition Eq (a b : A) : Prop
|
|
:= ∀P : A → Prop, P a → P b
|
|
@[elab_simple]
|
|
theorem subst (P : A → Prop) (a b : A) (H1 : Eq a b) (H2 : P a) : P b
|
|
:= H1 P H2
|
|
|
|
theorem refl (a : A) : Eq a a
|
|
:= λ (P : A → Prop) (H : P a), H
|
|
|
|
theorem symm (a b : A) (H : Eq a b) : Eq b a
|
|
:= subst (λ x : A, Eq x a) a b H (refl a)
|
|
|
|
theorem trans (a b c : A) (H1 : Eq a b) (H2 : Eq b c) : Eq a c
|
|
:= subst (λ x : A, Eq a x) b c H2 H1
|
|
end
|
|
|
|
#check subst.{1}
|
|
#check refl.{1}
|
|
#check symm.{1}
|
|
#check trans.{1}
|