namespace tst variable {A : Type} attribute [reducible] definition foo₁ (a b c : A) (H₁ : a = b) (H₂ : c = b) : a = c := eq.trans H₁ (eq.symm H₂) lemma foo₂ (f : A → A → A) (a b c : A) (H₁ : a = b) (H₂ : c = b) : f a = f c := eq.symm H₂ ▸ H₁ ▸ rfl #check foo₁ #check foo₂ end tst #check tst.foo₁ #check tst.foo₂ #print tst.foo₁