p0 : T = refl int (pos zero)
p1 : T = compId int (pos zero) (neg zero) (pos zero) zeroP' (<i>zeroP'@-i)
+test0 : Id (Id Z (inr zero) (inr zero)) (refl Z (inr zero)) (refl Z (inr zero)) =
+ ZSet (inr zero) (inr zero) (refl Z (inr zero)) (refl Z (inr zero))
test1 : Id T p0 p1 = intSet (pos zero) (pos zero) p0 p1
+test2 : Id T p0 p0 = intSet (pos zero) (pos zero) p0 p0
+test3 : Id T p0 p1 = <i1 i2> comp (int) (comp (int) (comp (int) (pos zero) [ (i1 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ]) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i1 = 1) -> <i3> comp (int) (comp (int) (comp (int) (comp (int) (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (comp (int) (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ]) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (comp (int) (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> comp (int) (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ] ], (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i1 = 0) -> <i3> pos zero, (i1 = 1) -> <i3> comp (int) (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ], (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]) [ (i1 = 0) -> <i3> pos zero, (i1 = 1) -> <i3> comp (int) (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ], (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]
+
+--test3 : Id T p0 p0 = <i1 i2> comp (int) (comp (int) (comp (int) (pos zero) [ (i1 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ]) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i1 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ]) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp (int) (pos zero) [ (i2 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 0) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp (int) (comp (int) (comp (int) (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp (int) (comp (int) (pos zero) [ ]) [ (i3 = 0) -> <i3> comp (int) (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i1 = 0) -> <i3> pos zero, (i1 = 1) -> <i3> pos zero, (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]) [ (i1 = 0) -> <i3> pos zero, (i1 = 1) -> <i3> pos zero, (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]
-- test2 : Id T p0 p1 =
-- <i j> comp int (pos zero)
-- [ (m = 1) -> <n> comp int (zeroP {int} @ j)
-- [ (j = 1) -> <p> zeroP {int} @ (-n \/ -p) ] ])
-- [ (j = 1) -> <n> comp int (zeroP {int} @ (-n /\ m))
--- [ (m = 1) -> <p> zeroP {int} @ (-n /\ -p) ] ]]]]
\ No newline at end of file
+-- [ (m = 1) -> <p> zeroP {int} @ (-n /\ -p) ] ]]]]
+
+-- test2 : Id T p0 p1 = <i1 i2> comp int (comp int (comp int (pos zero) [ (i1 = 0) -> <i3> comp int (comp int (comp int (pos zero) [ (i2 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i3 = 0) -> <i3> comp int (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp int (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ (i2 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ]) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp int (pos zero) [ (i2 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i1 = 1) -> <i3> comp int (comp int (comp int (comp int (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> zeroP {int} @ -i3 ]) [ (i2 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i2 = 0) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i3 = 0) -> <i3> comp int (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp int (pos zero) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (comp int (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> zeroP {int} @ -i3 ]) [ (i2 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ]) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero, (i3 = 0) -> <i3> comp int (comp int (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> zeroP {int} @ -i3 ]) [ (i2 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ], (i2 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ] ] ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> comp int (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> zeroP {int} @ -i3 ] ], (i2 = 0) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ], (i2 = 1) -> <i3> comp int (comp int (comp int (pos zero) [ ]) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> comp int (pos zero) [ (i3 = 0) -> <i3> pos zero, (i3 = 1) -> <i3> comp int (comp int (pos zero) [ ]) [ (i3 = 0) -> <i3> comp int (pos zero) [ ] ] ], (i3 = 1) -> <i3> pos zero ], (i3 = 1) -> <i3> pos zero ] ]) [ (i1 = 0) -> <i3> pos zero, (i1 = 1) -> <i3> comp int (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> zeroP {int} @ -i3 ], (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]) [ (i1 = 0) -> <i3> pos zero, (i1 = 1) -> <i3> comp int (zeroP {int} @ i2) [ (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> zeroP {int} @ -i3 ], (i2 = 0) -> <i3> pos zero, (i2 = 1) -> <i3> pos zero ]
zero -> f x
one -> g x
seg @ i -> p x @ i
+
+
+toUnit : I -> Unit = split
+ zero -> tt
+ one -> tt
+ seg @ i -> tt
+
+fromUnit : Unit -> I = split
+ tt -> zero
+
+toUnitK : (a : Unit) -> Id Unit (toUnit (fromUnit a)) a = split
+ tt -> <i> tt
+
+fromUnitK : (a : I) -> Id I (fromUnit (toUnit a)) a = split
+ zero -> <i> zero
+ one -> <i> seg {I} @ i
+ seg @ i -> <j> seg {I} @ i /\ j
+
+unitEqI : Id U Unit I = isoId Unit I fromUnit toUnit fromUnitK toUnitK
+
+propI : prop I = subst U prop Unit I unitEqI propUnit
+
+setI : set I = subst U set Unit I unitEqI setUnit
+
+foo (X : U) : U = (x : X) -> Id X x x
+
+T : U = Id I zero zero
+p0 : T = refl I zero
+test : T = propI zero zero
+
+fooI : foo I = subst U foo Unit I unitEqI (\(x : Unit) -> <i> x)
+test2 : T = fooI zero
+
+-- ntest2 : T = <i1> comp I (comp I (comp I zero [ (i1 = 0) -> <i2> comp I (comp I (comp I zero [ ]) [ ]) [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> zero, (i2 = 1) -> <i2> comp I (comp I zero [ ]) [ (i2 = 0) -> <i2> comp I zero [ ] ] ], (i2 = 1) -> <i2> zero ], (i2 = 1) -> <i2> zero ], (i1 = 1) -> <i2> comp I (comp I (comp I zero [ ]) [ ]) [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> zero, (i2 = 1) -> <i2> comp I (comp I zero [ ]) [ (i2 = 0) -> <i2> comp I zero [ ] ] ], (i2 = 1) -> <i2> zero ], (i2 = 1) -> <i2> zero ] ]) [ (i1 = 0) -> <i2> zero, (i1 = 1) -> <i2> zero ]) [ (i1 = 0) -> <i2> zero, (i1 = 1) -> <i2> zero ]
+
+-- test1 : T = <i1> comp I (comp I (comp I zero [ (i1 = 0) -> <i2> comp I (comp I (comp I zero [ ]) [ ]) [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> zero, (i2 = 1) -> <i2> comp I (comp I zero [ ]) [ (i2 = 0) -> <i2> comp I zero [ ] ] ], (i2 = 1) -> <i2> zero ], (i2 = 1) -> <i2> zero ], (i1 = 1) -> <i2> comp I (comp I (comp I zero [ ]) [ ]) [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> comp I zero [ (i2 = 0) -> <i2> zero, (i2 = 1) -> <i2> comp I (comp I zero [ ]) [ (i2 = 0) -> <i2> comp I zero [ ] ] ], (i2 = 1) -> <i2> zero ], (i2 = 1) -> <i2> zero ] ]) [ (i1 = 0) -> <i2> zero, (i1 = 1) -> <i2> zero ]) [ (i1 = 0) -> <i2> zero, (i1 = 1) -> <i2> zero ]
+
+
+-- [ (i2 = 0) -> <i2> zero
+-- , (i2 = 1) -> <i2> comp (<_> I) (comp (<_> I) zero [])
+-- [ (i2 = 0) -> <i2> comp (<_> I) zero []]]
+
+-- with zero
+
+
+test : Unit = transport (<i> unitEqI @ -i) zero
+test' : IdP (<i> unitEqI @ -i) zero tt =
+ <i> genComp (<k> unitEqI @ -i \/ -k) zero [(i = 0) -> <_> zero]
+
+test'' : Id I zero zero = <i0> comp I
+ (comp I
+ (comp I zero [ (i0 = 0) -> <i1> zero ])
+ [ (i0 = 0) -> <i1> zero ])
+ [ (i0 = 0) -> <i1> zero, (i0 = 1) -> <i1> comp I zero [ (i1 = 0) -> <i1> comp I zero [ (i1 = 0) -> <i1> zero, (i1 = 1) -> <i1> comp I (comp I zero [ ]) [ (i1 = 0) -> <i1> comp I zero [ ] ] ], (i1 = 1) -> <i1> zero ] ]
+
+-- -- <i0> glueElem
+-- (comp I
+-- (comp I
+-- (comp I zero [ (i0 = 0) -> <i1> zero ])
+-- [ (i0 = 0) -> <i1> zero ])
+-- [ (i0 = 0) -> <i1> zero, (i0 = 1) -> <i1> comp I zero [ (i1 = 0) -> <i1> comp I zero [ (i1 = 0) -> <i1> zero, (i1 = 1) -> <i1> comp I (comp I zero [ ]) [ (i1 = 0) -> <i1> comp I zero [ ] ] ], (i1 = 1) -> <i1> zero ] ])
+-- [ (i0 = 1) -> tt ]
+
+-- test : I = transport unitEqI tt
+-- eqttzero : IdP unitEqI tt zero =
+-- <i> genComp (<j> unitEqI @ -i \/ -j) zero [(i=1) -> <_>zero]
+-- <i> transport (<j> unitEqI @ -i \/ -j) zero
+-- <i> genComp (<j> unitEqI @ i /\ j) tt [(i=0) -> tt]
+
+-- Type checking failed: path endpoints don't match for comp (<j> unitEqI @ (i /\ j)) tt [ ], got (tt,comp I (comp I (comp I zero [ ]) [ ]) [ ]), but expected (tt,zero)