Step
*
2
of Lemma
callbyvalueall_seq-extend
1. F : Top
2. G : Top
3. L : Top
4. i : ℤ
5. 0 < i
6. ∀K:Top. ∀n:ℤ.
     ((0 ≤ n)
     
⇒ (callbyvalueall_seq(L;λf.mk_applies(f;K;n);λg.let x ⟵ F[g]
                                                      in G[g;x];n;n + (i - 1)) 
        ~ callbyvalueall_seq(λn@0.if (n@0 =z n + (i - 1)) then mk_lambdas_fun(λg.F[g];n + (i - 1)) else L n@0 fi 
                            λf.mk_applies(f;K;n);λg.G[partial_ap(g;(n + (i - 1)) + 1;n + (i - 1));select_fun_ap(g;(n
                                                     + (i - 1))
                                                     + 1;n + (i - 1))];n;(n + (i - 1)) + 1)))
7. K : Top
8. n : ℤ
9. 0 ≤ n
⊢ callbyvalueall_seq(L;λf.mk_applies(f;K;n);λg.let x ⟵ F[g]
                                               in G[g;x];n;n + i) 
~ callbyvalueall_seq(λn@0.if (n@0 =z n + i) then mk_lambdas_fun(λg.F[g];n + i) else L n@0 fi λf.mk_applies(f;K;n)
                    λg.G[partial_ap(g;(n + i) + 1;n + i);select_fun_ap(g;(n + i) + 1;n + i)];n;(n + i) + 1)
BY
{ (RecUnfold `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) + (i - 1)) + 1 ~ (n + i) + 1⌝ (-1)⋅ THENA Auto)
   THEN (Subst ⌜(n + 1) + (i - 1) ~ n + i⌝ (-1)⋅ THENA Auto)
   THEN (RWO "mk_applies_unroll" (-1) THENA Auto)
   THEN Reduce (-1)
   THEN SplitOnHypITE (-1)
   THEN Try (Complete (Auto))
   THEN Thin (-1)
   THEN (Subst ⌜(n + 1) - 1 ~ n⌝ (-1)⋅ THENA Auto)
   THEN RWO "mk_applies_fun" (-1)
   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{}  (callbyvalueall\_seq(L;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.let  x  \mleftarrow{}{}  F[g]
                                                                                                            in  G[g;x];n;n  +  (i  -  1)) 
                \msim{}  callbyvalueall\_seq(\mlambda{}n@0.if  (n@0  =\msubz{}  n  +  (i  -  1))
                                                                    then  mk\_lambdas\_fun(\mlambda{}g.F[g];n  +  (i  -  1))
                                                                    else  L  n@0
                                                                    fi  ;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.G[partial\_ap(g;(n  +  (i  -  1))  +  1;n
                                                                                                                            +  (i  -  1));select\_fun\_ap(g;(n
                                                                                                                            +  (i  -  1))
                                                                                                                            +  1;n  +  (i  -  1))];n;(n  +  (i  -  1))
                                                        +  1)))
7.  K  :  Top
8.  n  :  \mBbbZ{}
9.  0  \mleq{}  n
\mvdash{}  callbyvalueall\_seq(L;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.let  x  \mleftarrow{}{}  F[g]
                                                                                              in  G[g;x];n;n  +  i) 
\msim{}  callbyvalueall\_seq(\mlambda{}n@0.if  (n@0  =\msubz{}  n  +  i)  then  mk\_lambdas\_fun(\mlambda{}g.F[g];n  +  i)  else  L  n@0  fi 
                                        ;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.G[partial\_ap(g;(n  +  i)  +  1;n  +  i);select\_fun\_ap(g;(n
                                                                                          +  i)
                                                                                          +  1;n  +  i)];n;(n  +  i)  +  1)
By
Latex:
(RecUnfold  `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)  +  (i  -  1))  +  1  \msim{}  (n  +  i)  +  1\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto)
  THEN  (Subst  \mkleeneopen{}(n  +  1)  +  (i  -  1)  \msim{}  n  +  i\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto)
  THEN  (RWO  "mk\_applies\_unroll"  (-1)  THENA  Auto)
  THEN  Reduce  (-1)
  THEN  SplitOnHypITE  (-1)
  THEN  Try  (Complete  (Auto))
  THEN  Thin  (-1)
  THEN  (Subst  \mkleeneopen{}(n  +  1)  -  1  \msim{}  n\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto)
  THEN  RWO  "mk\_applies\_fun"  (-1)
  THEN  Auto)
Home
Index