lean4-htt/tests/lean/run/DefEqAssignBug.lean
Leonardo de Moura e4a3b434d7 chore: moving tests to new frontend
@Kha The transition has begun :)
I found and fixed a few bugs, but it is going well so far.
2020-09-10 18:00:34 -07:00

32 lines
673 B
Text

import Lean.Meta
new_frontend
open Lean
open Lean.Meta
def mkArrow (d b : Expr) : Expr := mkForall `_ BinderInfo.default d b
def check (x : MetaM Bool) : MetaM Unit :=
unlessM x $ throwError "check failed"
def tst1 : MetaM Unit := do
let nat := mkConst `Nat;
m1 ← mkFreshExprMVar nat;
m2 ← mkFreshExprMVar (mkArrow nat nat);
withLocalDeclD `x nat $ fun x => do
let t := mkApp m2 x;
check $ isDefEq t m1
def tst2 : MetaM Unit := do
let nat := mkConst `Nat;
m1 ← mkFreshExprMVar nat;
m2 ← mkFreshExprMVar (mkArrow nat nat);
withLocalDeclD `x nat $ fun x => do
let t := mkApp m2 x;
check $ isDefEq m1 t
set_option trace.Meta true
#eval tst1
#eval tst2