- MK_PAIR_DEF
-
|- !x y. MK_PAIR x y = (\a b. (a = x) /\ (b = y))
- IS_PAIR_DEF
-
|- !p. IS_PAIR p = (?x y. p = MK_PAIR x y)
- prod_TY_DEF
-
|- ?rep. TYPE_DEFINITION IS_PAIR rep
- REP_prod
-
|- REP_prod =
(@rep.
(!p' p''. (rep p' = rep p'') ==> (p' = p'')) /\
(!p. IS_PAIR p = (?p'. p = rep p')))
- COMMA_DEF
-
|- !x y. (x,y) = (@p. REP_prod p = MK_PAIR x y)
- FST_DEF
-
|- !p. FST p = (@x. ?y. MK_PAIR x y = REP_prod p)
- SND_DEF
-
|- !p. SND p = (@y. ?x. MK_PAIR x y = REP_prod p)
- UNCURRY_DEF
-
|- !f x y. UNCURRY f (x,y) = f x y
- CURRY_DEF
-
|- !f x y. CURRY f x y = f (x,y)