Thm* 'a:S.
Thm* all
Thm* ( n:hnum. all
Thm* ( n:hnum. ( f:'a
Thm* ( n:hnum. ( 'a. all
Thm* ( n:hnum. ( 'a. ( x:'a. equal
Thm* ( n:hnum. ( 'a. ( x:'a. (exists( fun:hnum  'a. simp_rec_rel(fun,x,f,n))
Thm* ( n:hnum. ( 'a. ( x:'a. ,and
Thm* ( n:hnum. ( 'a. ( x:'a. ,(equal(simp_rec_fun(x,f,n,0),x)
Thm* ( n:hnum. ( 'a. ( x:'a. ,,all
Thm* ( n:hnum. ( 'a. ( x:'a. ,,( m:hnum. implies
Thm* ( n:hnum. ( 'a. ( x:'a. ,,( m:hnum. (lt(m,n)
Thm* ( n:hnum. ( 'a. ( x:'a. ,,( m:hnum. ,equal
Thm* ( n:hnum. ( 'a. ( x:'a. ,,( m:hnum. ,(simp_rec_fun(x,f,n,suc(m))
Thm* ( n:hnum. ( 'a. ( x:'a. ,,( m:hnum. ,,f(simp_rec_fun(x,f,n,m)))))))))) | [hsimp_rec_fun_lemma] |
Thm* all( m:hnum. all( n:hnum. equal(lt(m,suc(n)),or(equal(m,n),lt(m,n))))) | [hless_thm] |
Thm* all( m:hnum. all( n:hnum. equal(equal(suc(m),suc(n)),equal(m,n)))) | [hinv_suc_eq] |
Thm* 'a:S.
Thm* all
Thm* ( fun:hnum
Thm* ( 'a. all
Thm* ( 'a. ( x:'a. all
Thm* ( 'a. ( x:'a. ( f:'a  'a. all
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. equal
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. (simp_rec_rel(fun,x,f,n)
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,and
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,(equal(fun(0),x)
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,,all
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,,( m:hnum. implies
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,,( m:hnum. (lt(m,n)
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,,( m:hnum. ,equal
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,,( m:hnum. ,(fun(suc(m))
Thm* ( 'a. ( x:'a. ( f:'a  'a. ( n:hnum. ,,( m:hnum. ,,f(fun(m))))))))))) | [hsimp_rec_rel_wd] |
Thm* all
Thm* ( m:hnum. all
Thm* ( m:hnum. ( n:hnum. equal
Thm* ( m:hnum. ( n:hnum. (lt(m,n)
Thm* ( m:hnum. ( n:hnum. ,exists
Thm* ( m:hnum. ( n:hnum. ,( P:hnum  hbool. and
Thm* ( m:hnum. ( n:hnum. ,( P:hnum  hbool. (all
Thm* ( m:hnum. ( n:hnum. ,( P:hnum  hbool. (( n:hnum. implies(P(suc(n)),P(n)))
Thm* ( m:hnum. ( n:hnum. ,( P:hnum  hbool. ,and(P(m),not(P(n)))))))) | [hless_def] |
Thm* 'a:S. simp_rec_rel ((hnum  'a)  'a  ('a  'a)  hnum  hbool) | [hsimp_rec_rel_wf] |