Step
*
2
of Lemma
callbyvalueall_seq-combine3
1. F : Top
2. L1 : Top
3. L2 : Top
4. m2 : ℕ
5. k : ℤ
6. 0 < k
7. ∀K:Top. ∀n:ℤ.
     ((0 ≤ n)
     
⇒ (callbyvalueall_seq(L1;λf.mk_applies(f;K;n);λg.callbyvalueall_seq(L2[g];λx.x;F[g];0;m2);n;n + (k - 1)) 
        ~ callbyvalueall_seq(λi.if i <z n + (k - 1)
                                then L1 i
                                else mk_lambdas_fun(λg.(L2[g] (i - n + (k - 1)));n + (k - 1))
                                fi λf.mk_applies(f;K;n);λg.(F[partial_ap(g;(n + (k - 1)) + m2;n + (k - 1))] 
                                                             partial_ap_gen(g;(n + (k - 1)) + m2;n + (k - 1);m2));n;(n
                            + (k - 1))
                            + m2)))
8. K : Top
9. n : ℤ
10. 0 ≤ n
⊢ callbyvalueall_seq(L1;λf.mk_applies(f;K;n);λg.callbyvalueall_seq(L2[g];λx.x;F[g];0;m2);n;n + k) 
~ callbyvalueall_seq(λi.if i <z n + k then L1 i else mk_lambdas_fun(λg.(L2[g] (i - n + k));n + k) fi 
                    λf.mk_applies(f;K;n);λg.(F[partial_ap(g;(n + k) + m2;n + k)] 
                                              partial_ap_gen(g;(n + k) + m2;n + k;m2));n;(n + k) + m2)
BY
{ (RW (AddrC [1] (RecUnfoldTopC `callbyvalueall_seq`)) 0
   THEN RW (AddrC [2] (RecUnfoldTopC `callbyvalueall_seq`)) 0
   THEN AutoSplit
   THEN EqCD
   THEN Try (Trivial)
   THEN (InstHyp [⌜λi.if (i =z n) then v else K i fi ⌝;⌜n + 1⌝] (-6)⋅ THENA Auto)
   THEN (Subst ⌜(n + 1) + (k - 1) ~ n + k⌝ (-1)⋅ THENA Auto)
   THEN RWO "mk_applies_roll" 0
   THEN Auto) }
Latex:
Latex:
1.  F  :  Top
2.  L1  :  Top
3.  L2  :  Top
4.  m2  :  \mBbbN{}
5.  k  :  \mBbbZ{}
6.  0  <  k
7.  \mforall{}K:Top.  \mforall{}n:\mBbbZ{}.
          ((0  \mleq{}  n)
          {}\mRightarrow{}  (callbyvalueall\_seq(L1;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.callbyvalueall\_seq(L2[g];\mlambda{}x.x;F[g];0;m2);n;n
                                                      +  (k  -  1))  \msim{}  callbyvalueall\_seq(\mlambda{}i.if  i  <z  n  +  (k  -  1)
                                                                                                                            then  L1  i
                                                                                                                            else  mk\_lambdas\_fun(\mlambda{}g.(L2[g] 
                                                                                                                                                                            (i  -  n
                                                                                                                                                                            +  (k  -  1)));n
                                                                                                                                      +  (k  -  1))
                                                                                                                            fi  ;\mlambda{}f.mk\_applies(f;K;n)
                                                                                                                    ;\mlambda{}g.(F[partial\_ap(g;(n  +  (k  -  1))  +  m2;n
                                                                                                                              +  (k  -  1))] 
                                                                                                                              partial\_ap\_gen(g;(n  +  (k  -  1))  +  m2;n
                                                                                                                              +  (k  -  1);m2));n;(n  +  (k  -  1))
                                                                                                                    +  m2)))
8.  K  :  Top
9.  n  :  \mBbbZ{}
10.  0  \mleq{}  n
\mvdash{}  callbyvalueall\_seq(L1;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.callbyvalueall\_seq(L2[g];\mlambda{}x.x;F[g];0;m2);n;n  +  k) 
\msim{}  callbyvalueall\_seq(\mlambda{}i.if  i  <z  n  +  k
                                                then  L1  i
                                                else  mk\_lambdas\_fun(\mlambda{}g.(L2[g]  (i  -  n  +  k));n  +  k)
                                                fi  ;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.(F[partial\_ap(g;(n  +  k)  +  m2;n  +  k)] 
                                                                                                          partial\_ap\_gen(g;(n  +  k)  +  m2;n  +  k;m2));n;(n
                                        +  k)
                                        +  m2)
By
Latex:
(RW  (AddrC  [1]  (RecUnfoldTopC  `callbyvalueall\_seq`))  0
  THEN  RW  (AddrC  [2]  (RecUnfoldTopC  `callbyvalueall\_seq`))  0
  THEN  AutoSplit
  THEN  EqCD
  THEN  Try  (Trivial)
  THEN  (InstHyp  [\mkleeneopen{}\mlambda{}i.if  (i  =\msubz{}  n)  then  v  else  K  i  fi  \mkleeneclose{};\mkleeneopen{}n  +  1\mkleeneclose{}]  (-6)\mcdot{}  THENA  Auto)
  THEN  (Subst  \mkleeneopen{}(n  +  1)  +  (k  -  1)  \msim{}  n  +  k\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto)
  THEN  RWO  "mk\_applies\_roll"  0
  THEN  Auto)
Home
Index