Step
*
2
1
of Lemma
callbyvalueall-seq-spread
1. F : Top
2. G : Top
3. H : Top
4. L : Top
5. i : ℤ
6. 0 < i
7. ∀K:Top. ∀n:ℤ.
     (0 < n + (i - 1)
     
⇒ 0 ≤ n < (n + (i - 1)) + 1
     
⇒ (let x,y = callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.<F[a], G[a]>(n + (i - 1)) - 1);n;n
                                      + (i - 1)) 
         in H[x;y] ~ callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.H[F[a];G[a]];(n + (i - 1)) - 1);n;n
                                        + (i - 1))))
8. K : Top
9. n : ℤ
10. 0 < n + i
11. 0 ≤ n
12. n < (n + i) + 1
13. i = 1 ∈ ℤ
⊢ let x,y = callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.<F[a], G[a]>(n + i) - 1);n;n + i) 
  in H[x;y] ~ callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.H[F[a];G[a]];(n + i) - 1);n;n + i)
BY
{ (HypSubst' (-1) 0
   THEN RecUnfold `callbyvalueall-seq` 0
   THEN AutoSplit
   THEN RW LiftAllC 0
   THEN MemCD
   THEN Try (Complete (Auto))
   THEN RecUnfold `callbyvalueall-seq` 0
   THEN AutoSplit
   THEN (Subst ⌜(n + 1) - 1 ~ n⌝ 0⋅ THENA Auto)
   THEN (RWO "mk_applies_lambdas2" 0 THENA Auto)
   THEN Reduce 0
   THEN Auto) }
Latex:
Latex:
1.  F  :  Top
2.  G  :  Top
3.  H  :  Top
4.  L  :  Top
5.  i  :  \mBbbZ{}
6.  0  <  i
7.  \mforall{}K:Top.  \mforall{}n:\mBbbZ{}.
          (0  <  n  +  (i  -  1)
          {}\mRightarrow{}  0  \mleq{}  n  <  (n  +  (i  -  1))  +  1
          {}\mRightarrow{}  (let  x,y  =  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}a.<F[a],  G[a]>(n
                                                                            +  (i  -  1))  -  1);n;n  +  (i  -  1)) 
                  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
                                                                                +  (i  -  1))  -  1);n;n  +  (i  -  1))))
8.  K  :  Top
9.  n  :  \mBbbZ{}
10.  0  <  n  +  i
11.  0  \mleq{}  n
12.  n  <  (n  +  i)  +  1
13.  i  =  1
\mvdash{}  let  x,y  =  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}a.<F[a],  G[a]>(n  +  i)  -  1);n;n
                                                              +  i) 
    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  +  i)  -  1);n;n
                                                                  +  i)
By
Latex:
(HypSubst'  (-1)  0
  THEN  RecUnfold  `callbyvalueall-seq`  0
  THEN  AutoSplit
  THEN  RW  LiftAllC  0
  THEN  MemCD
  THEN  Try  (Complete  (Auto))
  THEN  RecUnfold  `callbyvalueall-seq`  0
  THEN  AutoSplit
  THEN  (Subst  \mkleeneopen{}(n  +  1)  -  1  \msim{}  n\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  (RWO  "mk\_applies\_lambdas2"  0  THENA  Auto)
  THEN  Reduce  0
  THEN  Auto)
Home
Index