Step
*
2
1
1
1
1
of Lemma
gammaFIM_fun
1. g : 
 List 
 
@i
2. h : 
 List 
 
@i
3. spr(g)@i
4. 
a:
 List. (((g a) = 0) 
 ((g (a @ [h a])) = 0))@i
5. (g []) = 0@i
6. f : 
 
 
@i
7. x : 
8. 0 < x
9. gammaFIM(mklist(x - 1;f);g;h) = mklist(x - 1;
n.gammaFIM(mklist(n + 1;f);g;h)[n])
10. 
l:
 List. (((g l) = 0) 
 (l = gammaFIM(l;g;h)))
11. 
L:
 List. ((g gammaFIM(L;g;h)) = 0)
12. 
L:
 List. (||L|| = ||gammaFIM(L;g;h)||)
13. 
f:
 
 
. 
x:
.  (x ~ ||gammaFIM(mklist(x;f);g;h)||)
14. 
x:
. (x ~ ||gammaFIM(mklist(x;f);g;h)||)
15. 
n.gammaFIM(mklist(n + 1;f);g;h)[n] 
 
 
 
16. RHS : Base
17. RHS ~ 
h,g,f,x. mklist(x;
n.gammaFIM(mklist(n + 1;f);g;h)[n])
18. RHS h g f x 
 
 List
 if (x =
 0) then []
if (g (gammaFIM(firstn(x - 1;mklist(x;f));g;h) @ [last(mklist(x;f))]) =
 0)
  then gammaFIM(firstn(x - 1;mklist(x;f));g;h) @ [last(mklist(x;f))]
else gammaFIM(firstn(x - 1;mklist(x;f));g;h) @ [h gammaFIM(firstn(x - 1;mklist(x;f));g;h)]
fi 
= (RHS h g f x)
BY
{ AutoSplit }
1
1. g : 
 List 
 
@i
2. h : 
 List 
 
@i
3. spr(g)@i
4. 
a:
 List. (((g a) = 0) 
 ((g (a @ [h a])) = 0))@i
5. (g []) = 0@i
6. f : 
 
 
@i
7. x : 
8. x 
 0
9. 0 < x
10. gammaFIM(mklist(x - 1;f);g;h) = mklist(x - 1;
n.gammaFIM(mklist(n + 1;f);g;h)[n])
11. 
l:
 List. (((g l) = 0) 
 (l = gammaFIM(l;g;h)))
12. 
L:
 List. ((g gammaFIM(L;g;h)) = 0)
13. 
L:
 List. (||L|| = ||gammaFIM(L;g;h)||)
14. 
f:
 
 
. 
x:
.  (x ~ ||gammaFIM(mklist(x;f);g;h)||)
15. 
x:
. (x ~ ||gammaFIM(mklist(x;f);g;h)||)
16. 
n.gammaFIM(mklist(n + 1;f);g;h)[n] 
 
 
 
17. RHS : Base
18. RHS ~ 
h,g,f,x. mklist(x;
n.gammaFIM(mklist(n + 1;f);g;h)[n])
19. RHS h g f x 
 
 List
 if (g (gammaFIM(firstn(x - 1;mklist(x;f));g;h) @ [last(mklist(x;f))]) =
 0)
then gammaFIM(firstn(x - 1;mklist(x;f));g;h) @ [last(mklist(x;f))]
else gammaFIM(firstn(x - 1;mklist(x;f));g;h) @ [h gammaFIM(firstn(x - 1;mklist(x;f));g;h)]
fi 
= (RHS h g f x)
1.  g  :  \mBbbN{}  List  {}\mrightarrow{}  \mBbbN{}@i
2.  h  :  \mBbbN{}  List  {}\mrightarrow{}  \mBbbN{}@i
3.  spr(g)@i
4.  \mforall{}a:\mBbbN{}  List.  (((g  a)  =  0)  {}\mRightarrow{}  ((g  (a  @  [h  a]))  =  0))@i
5.  (g  [])  =  0@i
6.  f  :  \mBbbN{}  {}\mrightarrow{}  \mBbbN{}@i
7.  x  :  \mBbbZ{}
8.  0  <  x
9.  gammaFIM(mklist(x  -  1;f);g;h)  =  mklist(x  -  1;\mlambda{}n.gammaFIM(mklist(n  +  1;f);g;h)[n])
10.  \mforall{}l:\mBbbN{}  List.  (((g  l)  =  0)  {}\mRightarrow{}  (l  =  gammaFIM(l;g;h)))
11.  \mforall{}L:\mBbbN{}  List.  ((g  gammaFIM(L;g;h))  =  0)
12.  \mforall{}L:\mBbbN{}  List.  (||L||  =  ||gammaFIM(L;g;h)||)
13.  \mforall{}f:\mBbbN{}  {}\mrightarrow{}  \mBbbN{}.  \mforall{}x:\mBbbN{}.    (x  \msim{}  ||gammaFIM(mklist(x;f);g;h)||)
14.  \mforall{}x:\mBbbN{}.  (x  \msim{}  ||gammaFIM(mklist(x;f);g;h)||)
15.  \mlambda{}n.gammaFIM(mklist(n  +  1;f);g;h)[n]  \mmember{}  \mBbbN{}  {}\mrightarrow{}  \mBbbN{}
16.  RHS  :  Base
17.  RHS  \msim{}  \mlambda{}h,g,f,x.  mklist(x;\mlambda{}n.gammaFIM(mklist(n  +  1;f);g;h)[n])
18.  RHS  h  g  f  x  \mmember{}  \mBbbN{}  List
\mvdash{}  if  (x  =\msubz{}  0)  then  []
if  (g  (gammaFIM(firstn(x  -  1;mklist(x;f));g;h)  @  [last(mklist(x;f))])  =\msubz{}  0)
    then  gammaFIM(firstn(x  -  1;mklist(x;f));g;h)  @  [last(mklist(x;f))]
else  gammaFIM(firstn(x  -  1;mklist(x;f));g;h)  @  [h  gammaFIM(firstn(x  -  1;mklist(x;f));g;h)]
fi 
=  (RHS  h  g  f  x)
By
AutoSplit
Home
Index