2014-01-05 20:05:08 +00:00
|
|
|
import cast
|
2014-01-06 05:45:31 +00:00
|
|
|
set::option pp::colors false
|
2013-12-21 14:43:25 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
check fun (A A': TypeM)
|
2013-12-21 14:43:25 +00:00
|
|
|
(a : A)
|
|
|
|
(b : A')
|
|
|
|
(L2 : A' == A),
|
2014-01-06 03:10:21 +00:00
|
|
|
let b' : A := cast L2 b,
|
|
|
|
L3 : b == b' := cast::eq L2 b
|
2013-12-21 14:43:25 +00:00
|
|
|
in L3
|
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
check fun (A A': TypeM)
|
2013-12-21 14:43:25 +00:00
|
|
|
(B : A -> TypeM)
|
|
|
|
(B' : A' -> TypeM)
|
2014-01-08 08:38:39 +00:00
|
|
|
(f : forall x : A, B x)
|
|
|
|
(g : forall x : A', B' x)
|
2013-12-21 14:43:25 +00:00
|
|
|
(a : A)
|
|
|
|
(b : A')
|
2014-01-08 08:38:39 +00:00
|
|
|
(H1 : (forall x : A, B x) == (forall x : A', B' x))
|
2013-12-21 14:43:25 +00:00
|
|
|
(H2 : f == g)
|
|
|
|
(H3 : a == b),
|
2014-01-06 03:10:21 +00:00
|
|
|
let L1 : A == A' := dominj H1,
|
|
|
|
L2 : A' == A := symm L1,
|
2013-12-21 14:43:25 +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-21 14:43:25 +00:00
|
|
|
in L5
|