2013-12-21 06:43:25 -08:00
|
|
|
Set: pp::colors
|
|
|
|
Set: pp::unicode
|
2013-12-28 19:20:04 -08:00
|
|
|
Imported 'cast'
|
2013-12-21 06:43:25 -08:00
|
|
|
Set: pp::colors
|
2014-01-09 08:33:52 -08:00
|
|
|
λ (A A' : TypeM) (a : A) (b : A') (L2 : A' == A), let b' : A := cast L2 b, L3 : b == b' := cast_eq L2 b in L3 :
|
2014-01-08 00:38:39 -08:00
|
|
|
∀ (A A' : TypeM) (a : A) (b : A') (L2 : A' == A), b == cast L2 b
|
2013-12-21 06:43:25 -08:00
|
|
|
λ (A A' : TypeM)
|
|
|
|
(B : A → TypeM)
|
|
|
|
(B' : A' → TypeM)
|
2014-01-08 00:38:39 -08:00
|
|
|
(f : ∀ x : A, B x)
|
|
|
|
(g : ∀ x : A', B' x)
|
2013-12-21 06:43:25 -08:00
|
|
|
(a : A)
|
|
|
|
(b : A')
|
|
|
|
(H2 : f == g)
|
|
|
|
(H3 : a == b),
|
2014-01-09 08:33:52 -08:00
|
|
|
let L1 : A == A' := type_eq H3,
|
2014-01-05 19:10:21 -08:00
|
|
|
L2 : A' == A := symm L1,
|
2013-12-21 06:43:25 -08:00
|
|
|
b' : A := cast L2 b,
|
2014-01-09 08:33:52 -08:00
|
|
|
L3 : b == b' := cast_eq L2 b,
|
2014-01-05 19:10:21 -08:00
|
|
|
L4 : a == b' := htrans H3 L3,
|
|
|
|
L5 : f a == f b' := congr2 f L4
|
2013-12-21 06:43:25 -08:00
|
|
|
in L5 :
|
2014-01-08 00:38:39 -08:00
|
|
|
∀ (A A' : TypeM)
|
2013-12-21 06:43:25 -08:00
|
|
|
(B : A → TypeM)
|
|
|
|
(B' : A' → TypeM)
|
2014-01-08 00:38:39 -08:00
|
|
|
(f : ∀ x : A, B x)
|
|
|
|
(g : ∀ x : A', B' x)
|
2013-12-21 06:43:25 -08:00
|
|
|
(a : A)
|
|
|
|
(b : A')
|
2014-01-08 16:19:11 -08:00
|
|
|
(H2 : f == g)
|
|
|
|
(H3 : a == b),
|
2014-01-09 08:33:52 -08:00
|
|
|
f a == f (cast (symm (type_eq H3)) b)
|