Thm* P:(   ). P(0) & ( n: . P(n)  P(n+1))  ( n: . P(n)) | [induction] |
Thm* m,n: . m+1 = n+1  m = n | [inv_suc] |
Thm* n: . n+1 = 0  | [not_suc] |
Thm* iso_pair( ; ;is_num_rep;rep_num;abs_num) | [num_iso] |
Thm* m,n: . m = n  m = n | [nat_eq_to_int] |
Thm* m,n: . Dec(m = n) | [decidable__nat] |
Thm* n: , x:'a, f:('a 'a). n>0  ncompose(f;n;x) = f(ncompose(f;n-1;x)) | [ncompose_pos] |
Thm* 'a:Type, n: , x:'a, f:('a 'a). ncompose(f;n;x) 'a | [ncompose_wf] |
Def suc == n: . n+1 | [hsuc] |
Def abs_num == n: . @m: . (n = rep_num(m) ) | [habs_num] |
Def rep_num == n: . ncompose(suc_rep;n;zero_rep) | [hrep_num] |
Def is_num_rep
Def == m: .  P:  
Def == m: .  ((P(zero_rep)) ( n: . (P(n))  (P(suc_rep(n)))))  (P(m)) | [his_num_rep] |
Def zero_rep == @x: . ( y: . x = suc_rep(y) ) | [hzero_rep] |
Def suc_rep == x: . (@f:   . (one_one( ; ;f) & onto( ; ;f)))(x) | [hsuc_rep] |
Def hnum ==  | [hnum] |