2013-08-30 20:37:18 +00:00
|
|
|
Variable f {A : Type} (a b : A) : A
|
|
|
|
Variable N : Type
|
|
|
|
Variable n1 : N
|
|
|
|
Variable n2 : N
|
2013-12-19 05:18:45 +00:00
|
|
|
SetOption lean::pp::implicit true
|
2014-01-05 19:03:35 +00:00
|
|
|
print f n1 n2
|
|
|
|
print f (fun x : N -> N, x) (fun y : _, y)
|
2013-08-30 20:37:18 +00:00
|
|
|
Variable EqNice {A : Type} (lhs rhs : A) : Bool
|
|
|
|
Infix 50 === : EqNice
|
2014-01-05 19:03:35 +00:00
|
|
|
print n1 === n2
|
2013-08-30 20:37:18 +00:00
|
|
|
Check f n1 n2
|
2013-12-22 01:02:16 +00:00
|
|
|
Check @Congr
|
2014-01-05 19:03:35 +00:00
|
|
|
print f n1 n2
|
2013-08-30 20:37:18 +00:00
|
|
|
Variable a : N
|
|
|
|
Variable b : N
|
|
|
|
Variable c : N
|
|
|
|
Variable g : N -> N
|
|
|
|
Axiom H1 : a = b && b = c
|
|
|
|
Theorem Pr : (g a) = (g c) :=
|
2013-08-30 22:56:04 +00:00
|
|
|
Congr (Refl g) (Trans (Conjunct1 H1) (Conjunct2 H1))
|
2014-01-05 19:03:35 +00:00
|
|
|
print Environment 2
|