lean4-htt/tests/lean/unify3.lean

28 lines
664 B
Text

open tactic
set_option pp.all true
example (a b : nat) : a = b → a = a :=
by do
intro "H",
eqc : expr ← mk_const "eq",
A ← mk_mvar,
m₁ ← mk_mvar,
m₂ ← mk_mvar,
e ← return (eqc A m₁ m₂),
trace "pattern: ",
trace e,
H ← get_local "H",
Ht ← infer_type H,
trace "term to unify: ",
trace Ht,
unify Ht e,
trace "unification results using whnf: ",
whnf A >>= trace,
whnf m₁ >>= trace,
whnf m₂ >>= trace,
trace "unification results using get_assignment: ",
get_assignment A >>= trace,
get_assignment m₁ >>= trace,
get_assignment m₂ >>= trace,
mk_app ("eq" <.> "refl") [m₁] >>= exact