def f : nat → nat → nat
| 0     := λ x, x
| (n+1) := λ x, x + 1

meta def check_expr (p : pexpr) (t : expr) : tactic unit :=
do e ← tactic.to_expr p, guard (t = e)

example (n : nat): f (n+1) n = n + 1 :=
begin
  unfold f,
  (tactic.target >>= check_expr `((n + 1 = n + 1))),
  reflexivity,
end
