Set: pp::colors Set: pp::unicode Assumed: f Assumed: N Assumed: n1 Assumed: n2 Set: lean::pp::implicit @f N n1 n2 @f ((N → N) → N → N) (λ x : N → N, x) (λ y : N → N, y) Assumed: EqNice @EqNice N n1 n2 @f N n1 n2 : N @congr : ∀ (A : TypeU) (B : A → TypeU) (f g : ∀ x : A, B x) (a b : A), @eq (∀ x : A, B x) f g → @eq A a b → f a == g b @f N n1 n2 Assumed: a Assumed: b Assumed: c Assumed: g Assumed: H1 Proved: Pr axiom H1 : @eq N a b ∧ @eq N b c theorem Pr : @eq N (g a) (g c) := @congr N (λ x : N, N) g g a c (@refl (N → N) g) (@trans N a b c (@and_eliml (@eq N a b) (@eq N b c) H1) (@and_elimr (@eq N a b) (@eq N b c) H1))