Step
*
of Lemma
callbyvalueall-seq-extend
∀[F,G,L,K:Top]. ∀[m:ℕ+]. ∀[n:ℕm + 1].
  (callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λout.let x ⟵ F[out]
                                                             in G[x];m - 1);n;m) 
  ~ callbyvalueall-seq(λn.if (n =z m) then mk_lambdas(F;m - 1) else L n fi λf.mk_applies(f;K;n);mk_lambdas(G;m);n;m
                       + 1))
BY
{ ((UnivCD THENA Auto)
   THEN (Assert ⌜∃i:ℕ. (m = (n + i) ∈ ℤ)⌝⋅ THENA (InstConcl [⌜m - n⌝]⋅ THEN Auto'))
   THEN ExRepD
   THEN HypSubst' (-1) 0
   THEN RepeatFor 2 ((D (-3) THENA Auto))
   THEN DVar `m'
   THEN (HypSubst' (-1) (-6) THENA Auto)
   THEN ThinVar `m'
   THEN MoveToConcl (-4)
   THEN MoveToConcl (-2)
   THEN NatInd (-1)) }
1
.....basecase..... 
1. F : Top
2. G : Top
3. L : Top
4. i : ℤ
⊢ ∀K:Top. ∀n:ℤ.
    ((0 ≤ n)
    
⇒ 0 < n + 0
    
⇒ (callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λout.let x ⟵ F[out]
                                                                  in G[x];(n + 0) - 1);n;n + 0) 
       ~ callbyvalueall-seq(λn@0.if (n@0 =z n + 0) then mk_lambdas(F;(n + 0) - 1) else L n@0 fi λf.mk_applies(f;K;n)
                            mk_lambdas(G;n + 0);n;(n + 0) + 1)))
2
.....upcase..... 
1. F : Top
2. G : Top
3. L : Top
4. i : ℤ
5. 0 < i
6. ∀K:Top. ∀n:ℤ.
     ((0 ≤ n)
     
⇒ 0 < n + (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 n + (i - 1)) then mk_lambdas(F;(n + (i - 1)) - 1) else L n@0 fi 
                             λf.mk_applies(f;K;n);mk_lambdas(G;n + (i - 1));n;(n + (i - 1)) + 1)))
⊢ ∀K:Top. ∀n:ℤ.
    ((0 ≤ n)
    
⇒ 0 < n + i
    
⇒ (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 n + i) then mk_lambdas(F;(n + i) - 1) else L n@0 fi λf.mk_applies(f;K;n)
                            mk_lambdas(G;n + i);n;(n + i) + 1)))
Latex:
Latex:
\mforall{}[F,G,L,K:Top].  \mforall{}[m:\mBbbN{}\msupplus{}].  \mforall{}[n:\mBbbN{}m  +  1].
    (callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}out.let  x  \mleftarrow{}{}  F[out]
                                                                                                                          in  G[x];m  -  1);n;m) 
    \msim{}  callbyvalueall-seq(\mlambda{}n.if  (n  =\msubz{}  m)  then  mk\_lambdas(F;m  -  1)  else  L  n  fi  ;\mlambda{}f.mk\_applies(f;K;n)
                                              ;mk\_lambdas(G;m);n;m  +  1))
By
Latex:
((UnivCD  THENA  Auto)
  THEN  (Assert  \mkleeneopen{}\mexists{}i:\mBbbN{}.  (m  =  (n  +  i))\mkleeneclose{}\mcdot{}  THENA  (InstConcl  [\mkleeneopen{}m  -  n\mkleeneclose{}]\mcdot{}  THEN  Auto'))
  THEN  ExRepD
  THEN  HypSubst'  (-1)  0
  THEN  RepeatFor  2  ((D  (-3)  THENA  Auto))
  THEN  DVar  `m'
  THEN  (HypSubst'  (-1)  (-6)  THENA  Auto)
  THEN  ThinVar  `m'
  THEN  MoveToConcl  (-4)
  THEN  MoveToConcl  (-2)
  THEN  NatInd  (-1))
Home
Index