|- SUC_REP = (@f. ONE_ONE f /\ ~(ONTO f))
|- ZERO_REP = (@x. !y. ~(x = SUC_REP y))
|- !m. IS_NUM_REP m = (!P. P ZERO_REP /\ (!n. P n ==> P (SUC_REP n)) ==> P m)
|- ?rep. TYPE_DEFINITION IS_NUM_REP rep
|- (!a. ABS_num (REP_num a) = a) /\ (!r. IS_NUM_REP r = REP_num (ABS_num r) = r)
|- 0 = ABS_num ZERO_REP
|- !m. SUC m = ABS_num (SUC_REP (REP_num m))
|- !n. ~(SUC n = 0)
|- !m n. (SUC m = SUC n) ==> (m = n)
|- !P. P 0 /\ (!n. P n ==> P (SUC n)) ==> (!n. P n)