Thm* 'a:S, x:'a, f:('a    'a).
Thm* ( n: . prim_rec_fun(x,f,0,n) = x)
Thm* & ( m,n: . prim_rec_fun(x,f,m+1,n) = f(prim_rec_fun(x,f,m,pre(n)),n)) | [prim_rec_eqn] |
Thm* 'a:S.
Thm* all
Thm* ( x:'a. all
Thm* ( x:'a. ( f:'a  hnum  'a. and
Thm* ( x:'a. ( f:'a  hnum  'a. (all( n:hnum. equal(prim_rec_fun(x,f,0,n),x))
Thm* ( x:'a. ( f:'a  hnum  'a. ,all
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. all
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. equal
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. (prim_rec_fun
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ((x
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. (,f
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. (,suc(m)
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. (,n)
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,f
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,(prim_rec_fun
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,((x
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,(,f
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,(,m
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,(,pre(n))
Thm* ( x:'a. ( f:'a  hnum  'a. ,( m:hnum. ( n:hnum. ,,n))))))) | [hprim_rec_eqn] |
Thm* 'a:S.
Thm* all
Thm* ( x:'a. all
Thm* ( x:'a. ( f:'a  hnum  'a. all
Thm* ( x:'a. ( f:'a  hnum  'a. ( m:hnum. equal
Thm* ( x:'a. ( f:'a  hnum  'a. ( m:hnum. (prim_rec(x,f,m)
Thm* ( x:'a. ( f:'a  hnum  'a. ( m:hnum. ,prim_rec_fun(x,f,m,pre(m)))))) | [hprim_rec_wd] |
Thm* 'a:S.
Thm* all
Thm* ( x:'a. all
Thm* ( x:'a. ( f:'a  hnum  'a. equal
Thm* ( x:'a. ( f:'a  hnum  'a. (prim_rec_fun(x,f)
Thm* ( x:'a. ( f:'a  hnum  'a. ,simp_rec
Thm* ( x:'a. ( f:'a  hnum  'a. ,(( n:hnum. x)
Thm* ( x:'a. ( f:'a  hnum  'a. ,, fun:hnum  'a. n:hnum. f
Thm* ( x:'a. ( f:'a  hnum  'a. ,, fun:hnum  'a. n:hnum. (fun(pre(n))
Thm* ( x:'a. ( f:'a  hnum  'a. ,, fun:hnum  'a. n:hnum. ,n))))) | [hprim_rec_fun_wd] |
Def prim_rec == x:'a. f:'a    'a. m: . prim_rec_fun(x,f,m,pre(m)) | [hprim_rec] |