open nat example (a : nat) : a + 0 = a := by reflexivity example (a : Prop) : a ↔ a := by reflexivity example (a b : Prop) : (a ↔ b) → (b ↔ a) := by intros; symmetry; assumption example (a b c : nat) : a = b → b = c → c = a := begin intros, symmetry, transitivity b, assumption end example (a b c : Prop) : (a ↔ b) → (b ↔ c) → (c ↔ a) := begin intros, symmetry, transitivity b, assumption end example {A B C : Type} (a : A) (b : B) (c : C) : a == b → b == c → c == a := begin intros, symmetry, transitivity b, assumption end