Set: pp::colors Set: pp::unicode Assumed: C Assumed: D Assumed: R Proved: R2 Set: lean::pp::implicit Variable C {A B : Type} (H : eq::explicit Type A B) (a : A) : B Definition C::explicit (A B : Type) (H : A = B) (a : A) : B := C H a Variable D {A A' : Type} {B : A → Type} {B' : A' → Type} (H : eq::explicit Type (Π x : A, B x) (Π x : A', B' x)) : eq::explicit Type A A' Definition D::explicit (A A' : Type) (B : A → Type) (B' : A' → Type) (H : (Π x : A, B x) = (Π x : A', B' x)) : A = A' := D H Variable R {A A' : Type} {B : A → Type} {B' : A' → Type} (H : eq::explicit Type (Π x : A, B x) (Π x : A', B' x)) (a : A) : eq::explicit Type (B a) (B' (C::explicit A A' (D::explicit A A' (λ x : A, B x) (λ x : A', B' x) H) a)) Definition R::explicit (A A' : Type) (B : A → Type) (B' : A' → Type) (H : (Π x : A, B x) = (Π x : A', B' x)) (a : A) : (B a) = (B' (C (D H) a)) := R H a Theorem R2 (A1 A2 B1 B2 : Type) (H : eq::explicit Type (A1 → B1) (A2 → B2)) (a : A1) : eq::explicit Type B1 B2 := R::explicit A1 A2 (λ x : A1, B1) (λ x : A2, B2) H a