Step * 2 1 of Lemma callbyvalueall-seq-extend-2


1. Top
2. Top
3. Top
4. : ℤ
5. 0 < i
6. ∀K:Top. ∀n:ℤ.
     ((0 ≤ n)
      0 < (i 1)
      (callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λout.let x ⟵ F[out]
                                                                   in G[x];(n (i 1)) 1);n;n (i 1)) 
        callbyvalueall-seq(λn@0.if (n@0 =z (i 1)) then mk_lambdas(λx.F[x];(n (i 1)) 1) else n@0 fi 
                             f.mk_applies(f;K;n);mk_lambdas(λx.G[x];n (i 1));n;(n (i 1)) 1)))
7. Top
8. : ℤ
9. 0 ≤ n
10. 0 < i
11. 1 ∈ ℤ
⊢ callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λout.let x ⟵ F[out]
                                                            in G[x];(n i) 1);n;n i) 
callbyvalueall-seq(λn@0.if (n@0 =z i) then mk_lambdas(λx.F[x];(n i) 1) else n@0 fi f.mk_applies(f;K;n)
                     ;mk_lambdas(λx.G[x];n i);n;(n i) 1)
BY
(HypSubst' (-1) 0
   THEN (Subst ⌜(n 1) n⌝ 0⋅ THENA Auto)
   THEN RecUnfold `callbyvalueall-seq` 0
   THEN AutoSplit
   THEN EqCD
   THEN Try (Complete (Auto))
   THEN RecUnfold `callbyvalueall-seq` 0
   THEN AutoSplit
   THEN (RWO "mk_applies_lambdas2" THENA Auto)
   THEN RepUR ``so_apply`` 0
   THEN MemCD
   THEN Try (Complete (Auto))
   THEN RecUnfold `callbyvalueall-seq` 0
   THEN AutoSplit
   THEN (RWO "mk_applies_lambdas" THENA Auto)
   THEN (Subst ⌜(n 1) 1⌝ 0⋅ THENA Auto)
   THEN RepUR ``mk_lambdas`` 0
   THEN Auto) }


Latex:


Latex:

1.  F  :  Top
2.  G  :  Top
3.  L  :  Top
4.  i  :  \mBbbZ{}
5.  0  <  i
6.  \mforall{}K:Top.  \mforall{}n:\mBbbZ{}.
          ((0  \mleq{}  n)
          {}\mRightarrow{}  0  <  n  +  (i  -  1)
          {}\mRightarrow{}  (callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}out.let  x  \mleftarrow{}{}  F[out]
                                                                                                                                      in  G[x];(n  +  (i  -  1))  -  1);n;n
                                                        +  (i  -  1))  \msim{}  callbyvalueall-seq(\mlambda{}n@0.if  (n@0  =\msubz{}  n  +  (i  -  1))
                                                                                                                                  then  mk\_lambdas(\mlambda{}x.F[x];(n
                                                                                                                                            +  (i  -  1))  -  1)
                                                                                                                                  else  L  n@0
                                                                                                                                  fi  ;\mlambda{}f.mk\_applies(f;K;n)
                                                                                                                        ;mk\_lambdas(\mlambda{}x.G[x];n  +  (i  -  1));n;(n
                                                                                                                        +  (i  -  1))
                                                                                                                        +  1)))
7.  K  :  Top
8.  n  :  \mBbbZ{}
9.  0  \mleq{}  n
10.  0  <  n  +  i
11.  i  =  1
\mvdash{}  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}out.let  x  \mleftarrow{}{}  F[out]
                                                                                                                        in  G[x];(n  +  i)  -  1);n;n  +  i) 
\msim{}  callbyvalueall-seq(\mlambda{}n@0.if  (n@0  =\msubz{}  n  +  i)  then  mk\_lambdas(\mlambda{}x.F[x];(n  +  i)  -  1)  else  L  n@0  fi 
                                          ;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}x.G[x];n  +  i);n;(n  +  i)  +  1)


By


Latex:
(HypSubst'  (-1)  0
  THEN  (Subst  \mkleeneopen{}(n  +  1)  -  1  \msim{}  n\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  RecUnfold  `callbyvalueall-seq`  0
  THEN  AutoSplit
  THEN  EqCD
  THEN  Try  (Complete  (Auto))
  THEN  RecUnfold  `callbyvalueall-seq`  0
  THEN  AutoSplit
  THEN  (RWO  "mk\_applies\_lambdas2"  0  THENA  Auto)
  THEN  RepUR  ``so\_apply``  0
  THEN  MemCD
  THEN  Try  (Complete  (Auto))
  THEN  RecUnfold  `callbyvalueall-seq`  0
  THEN  AutoSplit
  THEN  (RWO  "mk\_applies\_lambdas"  0  THENA  Auto)
  THEN  (Subst  \mkleeneopen{}(n  +  1)  -  n  \msim{}  1\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  RepUR  ``mk\_lambdas``  0
  THEN  Auto)




Home Index