Step
*
1
2
1
of Lemma
test-nat-bootstrap
1. P : 
 
 
@i'
2. b : P 0@i
3. c : n:
 
 P n 
 (P (n + 1))@i
4. n : 
5. (
n.primrec(n;b;c)) n 
 P n
 if n + 1=0
     then b
     else let m := (n + 1) - 1 in
          c m (fix((
primrec,n. if n=0  then b  else let m := n - 1 in c m (primrec m))) m) 
 P (n + 1)
BY
{ ((AutoSplit THEN Fold `primrec` 0) THEN (Assert (n + 1) - 1 ~ n BY Auto)) }
1
1. P : 
 
 
@i'
2. b : P 0@i
3. c : n:
 
 P n 
 (P (n + 1))@i
4. n : 
5. (
n.primrec(n;b;c)) n 
 P n
6. 
((n + 1) = 0)
7. (n + 1) - 1 ~ n
 let m := (n + 1) - 1 in
  c m primrec(m;b;c) 
 P (n + 1)
1.  P  :  \mBbbN{}  {}\mrightarrow{}  \mBbbP{}@i'
2.  b  :  P  0@i
3.  c  :  n:\mBbbN{}  {}\mrightarrow{}  P  n  {}\mrightarrow{}  (P  (n  +  1))@i
4.  n  :  \mBbbN{}
5.  (\mlambda{}n.primrec(n;b;c))  n  \mmember{}  P  n
\mvdash{}  if  n  +  1=0
          then  b
          else  let  m  :=  (n  +  1)  -  1  in
                    c  m  (fix((\mlambda{}primrec,n.  if  n=0    then  b    else  let  m  :=  n  -  1  in  c  m  (primrec  m)))  m)  \mmember{}  P  (n  +\000C  1)
By
((AutoSplit  THEN  Fold  `primrec`  0)  THEN  (Assert  (n  +  1)  -  1  \msim{}  n  BY  Auto))
Home
Index