lean4-htt/tests/lean/unify3.lean
2016-07-29 13:03:23 -07:00

28 lines
673 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 (expr.app_of_list 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