0N/Avars a: Type; b: Type
0N/Atype i a b, Inj a b < a -> b
292N/Aop twice: (a ->? b) -> (a ->? b)
0N/Avars f: a ->? b; x: a
0N/A. twice f x = f (f x)
292N/Atype Inj a b = {f: a -> b . forall x, y: a . f x = f y => x = y}
292N/A. def (down (y : b) : a) => up (down y : a) = y
292N/A. up (up x : b) = up x : c
0N/Avars c, d, e, f; c < e; d < f
0N/Aforall f: e -> f . up : e ->? f = \ x : e . f x
0N/Aforall f: e ->? d . up f : c ->? f = \ x : c . up (f (up x))
0N/Aforall x: c; y: d . up (x, y) : e * f = (up x, up y)