open tactic example (a b : nat) : a = a := by reflexivity example (a : nat) (b : bool) : a == b → b == a := by do intros, symmetry, trace_state, assumption #print "-----------" example (a : nat) (b : bool) (c : string) : a == b → b == c → a == c := by do intro_lst [`H1, `H2], transitivity, trace_state, get_local `H1 >>= exact, assumption example (a b : bool) : a == a := by reflexivity