theorem ex1 (x : Nat) : x = x → x = x := by
  intro
  aexact (rfl)

#print "---"

theorem ex2 (x : Nat) : x = x → x = x :=
  have x = x by foo
  fun h => h

#print "---"

theorem ex3 (x : Nat) : x = x → x = x :=
  have x = x by foo (aaa bbb)
  fun h => h
