2013-12-22 02:23:37 +00:00
|
|
|
Set: pp::colors
|
|
|
|
Set: pp::unicode
|
2013-12-28 20:24:13 +00:00
|
|
|
Imported 'cast'
|
2013-12-22 02:23:37 +00:00
|
|
|
Set: pp::colors
|
|
|
|
λ (A A' : TypeM)
|
|
|
|
(B : A → TypeM)
|
|
|
|
(B' : A' → TypeM)
|
|
|
|
(f : Π x : A, B x)
|
|
|
|
(g : Π x : A', B' x)
|
|
|
|
(a : A)
|
|
|
|
(b : A')
|
|
|
|
(H1 : (Π x : A, B x) == (Π x : A', B' x))
|
|
|
|
(H2 : f == g)
|
|
|
|
(H3 : a == b),
|
2014-01-06 03:10:21 +00:00
|
|
|
let S1 : (Π x : A', B' x) == (Π x : A, B x) := symm H1,
|
|
|
|
L2 : A' == A := dominj S1,
|
2013-12-22 02:23:37 +00:00
|
|
|
b' : A := cast L2 b,
|
2014-01-06 03:10:21 +00:00
|
|
|
L3 : b == b' := cast::eq L2 b,
|
|
|
|
L4 : a == b' := htrans H3 L3,
|
|
|
|
L5 : f a == f b' := congr2 f L4,
|
2013-12-22 02:23:37 +00:00
|
|
|
g' : Π x : A, B x := cast S1 g,
|
2014-01-06 03:10:21 +00:00
|
|
|
L6 : g == g' := cast::eq S1 g,
|
|
|
|
L7 : f == g' := htrans H2 L6,
|
|
|
|
L8 : f b' == g' b' := congr1 b' L7,
|
|
|
|
L9 : f a == g' b' := htrans L5 L8,
|
|
|
|
L10 : g' b' == g b := cast::app S1 L2 g b
|
|
|
|
in htrans L9 L10 :
|
2013-12-22 02:23:37 +00:00
|
|
|
Π (A A' : TypeM) (B : A → TypeM) (B' : A' → TypeM) (f : Π x : A, B x) (g : Π x : A', B' x) (a : A) (b : A'),
|
|
|
|
(Π x : A, B x) == (Π x : A', B' x) → f == g → a == b → f a == g b
|