theorem ex1 (x y : Nat) (h : x + 2 = y + 2) : x = y := by
  injection h with h
  trace_state -- without smart unfolding the state would be a mess
  injection h
