2013-09-07 00:58:45 +00:00
|
|
|
Set: pp::colors
|
|
|
|
Set: pp::unicode
|
|
|
|
Assumed: C
|
|
|
|
Assumed: D
|
|
|
|
Assumed: R
|
|
|
|
Proved: R2
|
|
|
|
Set: lean::pp::implicit
|
2013-09-08 18:23:46 +00:00
|
|
|
Variable C {A B : Type} (H : A = B) (a : A) : B
|
2013-09-07 00:58:45 +00:00
|
|
|
Definition C::explicit (A B : Type) (H : A = B) (a : A) : B := C H a
|
2013-09-08 18:23:46 +00:00
|
|
|
Variable D {A A' : Type} {B : A → Type} {B' : A' → Type} (H : (Π x : A, B x) = (Π x : A', B' x)) : A = A'
|
2013-09-07 00:58:45 +00:00
|
|
|
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 : (Π x : A, B x) = (Π x : A', B' x)) (a : A) :
|
2013-10-25 00:54:09 +00:00
|
|
|
(B a) = (B' (C::explicit A A' (D::explicit A A' (λ x : A, B x) (λ x : A', B' x) H) a))
|
2013-09-07 00:58:45 +00:00
|
|
|
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 : A1 → B1 = A2 → B2) (a : A1) : B1 = B2 :=
|
2013-10-25 00:54:09 +00:00
|
|
|
R::explicit A1 A2 (λ x : A1, B1) (λ x : A2, B2) H a
|