test(tests/lean): new elaborator tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
61bd27ff06
commit
2972fb9d8c
2 changed files with 75 additions and 0 deletions
23
tests/lean/elab7.lean
Normal file
23
tests/lean/elab7.lean
Normal file
|
@ -0,0 +1,23 @@
|
|||
Variable A : Type U
|
||||
Variable B : Type U
|
||||
Variable C : Type U
|
||||
Variable P : A -> Bool
|
||||
Variable F1 : A -> B -> C
|
||||
Variable F2 : A -> B -> C
|
||||
Variable H : Pi (a : A) (b : B), (F1 a b) == (F2 a b)
|
||||
Variable a : A
|
||||
Check Eta (F2 a)
|
||||
Check Abst (fun a : A,
|
||||
(Trans (Symm (Eta (F1 a)))
|
||||
(Trans (Abst (fun (b : B), H a b))
|
||||
(Eta (F2 a)))))
|
||||
|
||||
Check Abst (fun a, (Abst (fun b, H a b)))
|
||||
|
||||
Theorem T1 : F1 = F2 := Abst (fun a, (Abst (fun b, H a b)))
|
||||
Theorem T2 : (fun (x1 : A) (x2 : B), F1 x1 x2) = F2 := Abst (fun a, (Abst (fun b, H a b)))
|
||||
Theorem T3 : F1 = (fun (x1 : A) (x2 : B), F2 x1 x2) := Abst (fun a, (Abst (fun b, H a b)))
|
||||
Theorem T4 : (fun (x1 : A) (x2 : B), F1 x1 x2) = (fun (x1 : A) (x2 : B), F2 x1 x2) := Abst (fun a, (Abst (fun b, H a b)))
|
||||
Show Environment 4
|
||||
Set pp::implicit true
|
||||
Show Environment 4
|
52
tests/lean/elab7.lean.expected.out
Normal file
52
tests/lean/elab7.lean.expected.out
Normal file
|
@ -0,0 +1,52 @@
|
|||
Set: pp::colors
|
||||
Set: pp::unicode
|
||||
Assumed: A
|
||||
Assumed: B
|
||||
Assumed: C
|
||||
Assumed: P
|
||||
Assumed: F1
|
||||
Assumed: F2
|
||||
Assumed: H
|
||||
Assumed: a
|
||||
Eta (F2 a) : (λ x : B, F2 a x) == (F2 a)
|
||||
Abst (λ a : A, Trans (Symm (Eta (F1 a))) (Trans (Abst (λ b : B, H a b)) (Eta (F2 a)))) :
|
||||
(λ x : A, F1 x) == (λ x : A, F2 x)
|
||||
Abst (λ a : A, Abst (λ b : B, H a b)) : (λ (x : A) (x::1 : B), F1 x x::1) == (λ (x : A) (x::1 : B), F2 x x::1)
|
||||
Proved: T1
|
||||
Proved: T2
|
||||
Proved: T3
|
||||
Proved: T4
|
||||
Theorem T1 : F1 = F2 := Abst (λ a : A, Abst (λ b : B, H a b))
|
||||
Theorem T2 : (λ (x1 : A) (x2 : B), F1 x1 x2) = F2 := Abst (λ a : A, Abst (λ b : B, H a b))
|
||||
Theorem T3 : F1 = (λ (x1 : A) (x2 : B), F2 x1 x2) := Abst (λ a : A, Abst (λ b : B, H a b))
|
||||
Theorem T4 : (λ (x1 : A) (x2 : B), F1 x1 x2) = (λ (x1 : A) (x2 : B), F2 x1 x2) :=
|
||||
Abst (λ a : A, Abst (λ b : B, H a b))
|
||||
Set: lean::pp::implicit
|
||||
Theorem T1 : eq::explicit (A → B → C) F1 F2 :=
|
||||
Abst::explicit
|
||||
A
|
||||
(λ x : A, B → C)
|
||||
F1
|
||||
F2
|
||||
(λ a : A, Abst::explicit B (λ x : B, C) (F1 a) (F2 a) (λ b : B, H a b))
|
||||
Theorem T2 : eq::explicit (A → B → C) (λ (x1 : A) (x2 : B), F1 x1 x2) F2 :=
|
||||
Abst::explicit
|
||||
A
|
||||
(λ x : A, B → C)
|
||||
(λ (x1 : A) (x2 : B), F1 x1 x2)
|
||||
F2
|
||||
(λ a : A, Abst::explicit B (λ x : B, C) (λ x2 : B, F1 a x2) (F2 a) (λ b : B, H a b))
|
||||
Theorem T3 : eq::explicit (A → B → C) F1 (λ (x1 : A) (x2 : B), F2 x1 x2) :=
|
||||
Abst::explicit
|
||||
A
|
||||
(λ x : A, B → C)
|
||||
F1
|
||||
(λ (x1 : A) (x2 : B), F2 x1 x2)
|
||||
(λ a : A, Abst::explicit B (λ x : B, C) (F1 a) (λ x2 : B, F2 a x2) (λ b : B, H a b))
|
||||
Theorem T4 : eq::explicit (A → B → C) (λ (x1 : A) (x2 : B), F1 x1 x2) (λ (x1 : A) (x2 : B), F2 x1 x2) :=
|
||||
Abst::explicit
|
||||
A
|
||||
(λ x : A, B → C)
|
||||
(λ (x1 : A) (x2 : B), F1 x1 x2)
|
||||
(λ (x1 : A) (x2 : B), F2 x1 x2)
|
||||
(λ a : A, Abst::explicit B (λ x : B, C) (λ x2 : B, F1 a x2) (λ x2 : B, F2 a x2) (λ b : B, H a b))
|
Loading…
Reference in a new issue