58 lines
819 B
Text
58 lines
819 B
Text
import Lean
|
||
open Lean Meta
|
||
def test [ToExpr α] (a : α) : MetaM Unit := do
|
||
let a := toExpr a
|
||
let c ← litToCtor a
|
||
check c
|
||
IO.println s!"{← ppExpr c}"
|
||
assert! (← isDefEq c a)
|
||
/--
|
||
info: Nat.succ 9
|
||
-/
|
||
#guard_msgs in
|
||
#eval test 10
|
||
/--
|
||
info: Nat.succ 0
|
||
-/
|
||
#guard_msgs in
|
||
#eval test 1
|
||
/--
|
||
info: Nat.zero
|
||
-/
|
||
#guard_msgs in
|
||
#eval test 0
|
||
/--
|
||
info: Int.negSucc 1
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (-2)
|
||
/--
|
||
info: Int.negSucc 0
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (-1)
|
||
/--
|
||
info: Int.ofNat 0
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (0 : Int)
|
||
/--
|
||
info: Int.ofNat 3
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (3 : Int)
|
||
/--
|
||
info: { val := 3, isLt := ⋯ }
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (3 : Fin 5)
|
||
/--
|
||
info: { val := 0, isLt := ⋯ }
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (0 : Fin 5)
|
||
/--
|
||
info: { val := 1, isLt := ⋯ }
|
||
-/
|
||
#guard_msgs in
|
||
#eval test (6 : Fin 5)
|