-- open nat tactic example (a b : nat) : a = succ b → a = b + 1 := by do H ← intro `H, try (dunfold_at [`nat.succ] H), dunfold [`add, `has_add.add, `has_one.one, `nat.add, `one], trace_state, t ← target, expected ← to_expr `(a = succ b), guard (t = expected), assumption