Step
*
2
of Lemma
callbyvalueall_seq-combine2
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;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_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;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_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;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\_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;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\_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