import logic variables {A : Type} {a a' : A} definition to_eq₁ (H : a == a') : a = a' := begin assert H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, intro Ht, exact (eq.refl (eq.rec_on Ht a)), show a = a', from heq.rec_on H H₁ (eq.refl A) end definition to_eq₂ (H : a == a') : a = a' := begin have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, begin intro Ht, exact (eq.refl (eq.rec_on Ht a)) end, show a = a', from heq.rec_on H H₁ (eq.refl A) end definition to_eq₃ (H : a == a') : a = a' := begin have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, by intro Ht; exact (eq.refl (eq.rec_on Ht a)), show a = a', from heq.rec_on H H₁ (eq.refl A) end definition to_eq₄ (H : a == a') : a = a' := begin have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, from assume Ht, eq.refl (eq.rec_on Ht a), show a = a', from heq.rec_on H H₁ (eq.refl A) end definition to_eq₅ (H : a == a') : a = a' := begin have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, proof λ Ht, eq.refl (eq.rec_on Ht a) qed, show a = a', from heq.rec_on H H₁ (eq.refl A) end definition to_eq₆ (H : a == a') : a = a' := begin have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, from assume Ht, eq.refl (eq.rec_on Ht a), show a = a', from heq.rec_on H H₁ (eq.refl A) end