Variable f {A : Type} (a b : A) : A Variable N : Type Variable n1 : N Variable n2 : N Set lean::pp::implicit true Show f n1 n2 Show f (fun x : N -> N, x) (fun y : _, y) Variable EqNice {A : Type} (lhs rhs : A) : Bool Infix 50 === : EqNice Show n1 === n2 Check f n1 n2 Check Congr::explicit Show f n1 n2 Variable a : N Variable b : N Variable c : N Variable g : N -> N Axiom H1 : a = b && b = c Theorem Pr : (g a) = (g c) := Congr (Refl g) (Trans (Conjunct1 H1) (Conjunct2 H1)) Show Environment 2