Type | Arity |
---|---|
num | 0 |
Constant | Type |
0 | :num |
ZERO_REP | :ind |
SUC_REP | :ind -> ind |
REP_num | :num -> ind |
ABS_num | :ind -> num |
SUC | :num -> num |
IS_NUM_REP | :ind -> bool |
|- ONE_ONE SUC_REP /\ ~ONTO SUC_REP
|- !y. ~(ZERO_REP = 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