Step * 1 of Lemma callbyvalueall-seq_wf


1. : ℕ
2. Type
3. : ℕm ⟶ {T:Type| valueall-type(T)} 
4. i:ℕm ⟶ funtype(i;A;A i)
5. funtype(m;A;T)
6. : ℤ
7. ¬(m ≤ (m k))
8. 0 < k
9. 0 ≤ (m k)
10. k < 1
11. : ∀[T:Type]. (funtype(m k;A;T) ⟶ T)
12. ∀G:∀[T:Type]. (funtype((m k) 1;A;T) ⟶ T). (callbyvalueall-seq(L;G;F;(m k) 1;m) ∈ T)
13. (m k)
14. (G (L (m k))) v ∈ (A (m k))
15. T1 Type
16. funtype((m k) 1;A;T1)
⊢ v ∈ T1
BY
((Assert ⌜f ∈ funtype((m k) 1;A;T1)⌝⋅ THENA Auto)
   THEN (RWO "funtype-unroll-last-eq" (-1) THENA Auto)
   THEN (Subst ⌜((m k) 1) k⌝ (-1)⋅ THENA Auto)
   THEN SplitOnHypITE (-1)
   THEN Auto)⋅ }


Latex:


Latex:

1.  m  :  \mBbbN{}
2.  T  :  Type
3.  A  :  \mBbbN{}m  {}\mrightarrow{}  \{T:Type|  valueall-type(T)\} 
4.  L  :  i:\mBbbN{}m  {}\mrightarrow{}  funtype(i;A;A  i)
5.  F  :  funtype(m;A;T)
6.  k  :  \mBbbZ{}
7.  \mneg{}(m  \mleq{}  (m  -  k))
8.  0  <  k
9.  0  \mleq{}  (m  -  k)
10.  m  -  k  <  m  +  1
11.  G  :  \mforall{}[T:Type].  (funtype(m  -  k;A;T)  {}\mrightarrow{}  T)
12.  \mforall{}G:\mforall{}[T:Type].  (funtype((m  -  k)  +  1;A;T)  {}\mrightarrow{}  T).  (callbyvalueall-seq(L;G;F;(m  -  k)  +  1;m)  \mmember{}  T)
13.  v  :  A  (m  -  k)
14.  (G  (L  (m  -  k)))  =  v
15.  T1  :  Type
16.  f  :  funtype((m  -  k)  +  1;A;T1)
\mvdash{}  G  f  v  \mmember{}  T1


By


Latex:
((Assert  \mkleeneopen{}f  \mmember{}  funtype((m  -  k)  +  1;A;T1)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (RWO  "funtype-unroll-last-eq"  (-1)  THENA  Auto)
  THEN  (Subst  \mkleeneopen{}((m  -  k)  +  1)  -  1  \msim{}  m  -  k\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto)
  THEN  SplitOnHypITE  (-1)
  THEN  Auto)\mcdot{}




Home Index