lean2/tests/lean/scope.lean.expected.out
2014-01-08 17:25:14 -08:00

31 lines
906 B
Text

Set: pp::colors
Set: pp::unicode
Imported 'Int'
Assumed: A
Assumed: B
Assumed: f
Defined: g
Assumed: h
Assumed: hinv
Assumed: Inv
Assumed: H1
Proved: f_eq_g
Proved: Inj
definition g (A : Type) (f : A → A → A) (x y : A) : A := f y x
theorem f_eq_g (A : Type) (f : A → A → A) (H1 : ∀ x y : A, f x y = f y x) : f = g A f :=
funext (λ x : A,
funext (λ y : A,
let L1 : f x y = f y x := H1 x y, L2 : f y x = g A f x y := refl (g A f x y) in L1 ⋈ L2))
theorem Inj (A B : Type)
(h : A → B)
(hinv : B → A)
(Inv : ∀ x : A, hinv (h x) = x)
(x y : A)
(H : h x = h y) : x = y :=
let L1 : hinv (h x) = hinv (h y) := congr2 hinv H,
L2 : hinv (h x) = x := Inv x,
L3 : hinv (h y) = y := Inv y,
L4 : x = hinv (h x) := symm L2,
L5 : x = hinv (h y) := L4 ⋈ L1
in L5 ⋈ L3
10