test(lean/run): add elaborator tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
a42a80407a
commit
4bc1f3cf81
1 changed files with 33 additions and 0 deletions
33
tests/lean/run/e4.lean
Normal file
33
tests/lean/run/e4.lean
Normal file
|
@ -0,0 +1,33 @@
|
|||
definition Bool [inline] := Type.{0}
|
||||
|
||||
definition false : Bool := ∀x : Bool, x
|
||||
check false
|
||||
|
||||
theorem false_elim (C : Bool) (H : false) : C
|
||||
:= H C
|
||||
|
||||
definition eq {A : Type} (a b : A)
|
||||
:= ∀ P : A → Bool, P a → P b
|
||||
|
||||
check eq
|
||||
|
||||
infix `=` 50 := eq
|
||||
|
||||
theorem refl {A : Type} (a : A) : a = a
|
||||
:= λ P H, H
|
||||
|
||||
definition true : Bool
|
||||
:= false = false
|
||||
|
||||
theorem trivial : true
|
||||
:= refl false
|
||||
|
||||
theorem subst {A : Type} {P : A -> Bool} {a b : A} (H1 : a = b) (H2 : P a) : P b
|
||||
:= H1 _ H2
|
||||
|
||||
theorem symm {A : Type} {a b : A} (H : a = b) : b = a
|
||||
:= subst H (refl a)
|
||||
|
||||
theorem trans {A : Type} {a b c : A} (H1 : a = b) (H2 : b = c) : a = c
|
||||
:= subst H2 H1
|
||||
|
Loading…
Add table
Reference in a new issue