+++ /dev/null
-module testUniv where
-
-import testContr
-import equiv
-
-swap : bool -> bool = split
- true -> false
- false -> true
-
-lemSwap : (x:bool) -> Id bool (swap (swap x)) x = split
- true -> <i>true
- false -> <i>false
-
-isEquivSwap : isEquiv bool bool swap =
- gradLemma bool bool swap swap lemSwap lemSwap
-
-eqBool : Id U bool bool =
- trans (equiv bool bool) (Id U bool bool) (<i>corrUniv bool bool@-i) (swap,isEquivSwap)
-
-test1 : bool = trans bool bool eqBool true
-test2 : bool = trans bool bool eqBool false
corrUniv' (A B : U) : equiv (Id U A B) (equiv A B) = (lem2 B A,univalence B A)
+
+-- Some tests of normal forms:
+
testUniv1 (A:U) : Id U A A =
trans (equiv A A) (Id U A A) (<i> corrUniv A A @ -i) (idEquiv A)
((x : ((x : bool) * IdP (<j> bool) y (comp (<j> bool) (comp (<i> bool) x []) [ (i = 0) -> <j> comp (<k> bool) x [ (j = 1) -> <k> x ] ]))) * (y0 : ((x0 : bool) * IdP (<j> bool) y (comp (<j> bool) (comp (<i> bool) x0 []) [ (i = 0) -> <j> comp (<k> bool) x0 [ (j = 1) -> <k> x0 ] ]))) -> IdP (<j> ((x0 : bool) * IdP (<k> bool) y (comp (<j> bool) (comp (<i> bool) x0 []) [ (i = 0) -> <j> comp (<k> bool) x0 [ (j = 1) -> <k> x0 ] ]))) x y0)) (\(a : bool) -> ((a,<i> a),\(z : ((x : bool) * IdP (<i> bool) a x)) -> <i> (z.2 @ i,<j> z.2 @ (i /\ j)))) [])) ] ], (i = 1) -> <j> bool ]) [ (i = 0) -> <j> bool, (i = 1) -> <j> bool ]) true []
+-- A small test of univalence using boolean negation
+isEquivNegBool : isEquiv bool bool negBool =
+ gradLemma bool bool negBool negBool negBoolK negBoolK
+
+eqBool : Id U bool bool =
+ trans (equiv bool bool) (Id U bool bool)
+ (<i> corrUniv bool bool @ -i) (negBool,isEquivNegBool)
+
+test1 : bool = trans bool bool eqBool true
+test2 : bool = trans bool bool eqBool false
+
+
------------------------------------------------------------------------------
-- The direct proof of univalence using transEquiv: