Step
*
1
of Lemma
callbyvalueall-seq-spread
1. F : Top
2. G : Top
3. H : Top
4. L : Top
5. i : ℤ
6. K : Top
7. n : ℤ
8. 0 < n + 0
9. 0 ≤ n
10. n < (n + 0) + 1
⊢ let x,y = callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.<F[a], G[a]>(n + 0) - 1);n;n + 0) 
  in H[x;y] ~ callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.H[F[a];G[a]];(n + 0) - 1);n;n + 0)
BY
{ (RecUnfold `callbyvalueall-seq` 0
   THEN AutoSplit
   THEN (Subst ⌜n + 0 ~ n⌝ 0⋅ THENA Auto)
   THEN (RWO "mk_applies_lambdas1" 0 THENA Auto)
   THEN (Subst ⌜n - n - 1 ~ 1⌝ 0⋅ THENA Auto)
   THEN RepUR ``mk_applies`` 0
   THEN Auto) }
Latex:
Latex:
1.  F  :  Top
2.  G  :  Top
3.  H  :  Top
4.  L  :  Top
5.  i  :  \mBbbZ{}
6.  K  :  Top
7.  n  :  \mBbbZ{}
8.  0  <  n  +  0
9.  0  \mleq{}  n
10.  n  <  (n  +  0)  +  1
\mvdash{}  let  x,y  =  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}a.<F[a],  G[a]>(n  +  0)  -  1);n;n
                                                              +  0) 
    in  H[x;y]  \msim{}  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}a.H[F[a];G[a]];(n  +  0)  -  1);n;n
                                                                  +  0)
By
Latex:
(RecUnfold  `callbyvalueall-seq`  0
  THEN  AutoSplit
  THEN  (Subst  \mkleeneopen{}n  +  0  \msim{}  n\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  (RWO  "mk\_applies\_lambdas1"  0  THENA  Auto)
  THEN  (Subst  \mkleeneopen{}n  -  n  -  1  \msim{}  1\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  RepUR  ``mk\_applies``  0
  THEN  Auto)
Home
Index