Step * of Lemma callbyvalueall_seq_wf

[T,U:Type]. ∀[m:ℕ]. ∀[n:ℕ1]. ∀[A:ℕm ⟶ ValueAllType]. ∀[L:i:ℕm ⟶ funtype(i;A;A i)]. ∀[G:∀[T:Type]
                                                                                                (funtype(n;A;T) ⟶ T)].
[F:(funtype(m;A;T) ⟶ T) ⟶ U].
  (callbyvalueall_seq(L;G;F;n;m) ∈ U)
BY
(Unfold `vatype` 0
   THEN Auto
   THEN (DVar `n' THENA Auto)
   THEN (Assert ⌜∃k:ℕ(n (m k) ∈ ℤ)⌝⋅ THENA (InstConcl [⌜n⌝]⋅ THEN Auto'))
   THEN ExRepD
   THEN Eliminate ⌜n⌝⋅
   THEN ThinVar `n'
   THEN NatInd 2
   THEN Try ((Subst ⌜m⌝ 0⋅ THENA Auto))
   THEN Auto
   THEN RecUnfold `callbyvalueall_seq` 0
   THEN AutoSplit
   THEN Try (Complete ((Subst ⌜m⌝ (-2)⋅ THEN Auto')))
   THEN (D (-4) THENA Auto)
   THEN (Subst ⌜(m k) 1⌝ (-1)⋅ THENA Auto)) }

1
1. : ℕ
2. Type
3. Type
4. : ℕm ⟶ {T:Type| valueall-type(T)} 
5. i:ℕm ⟶ funtype(i;A;A i)
6. (funtype(m;A;T) ⟶ T) ⟶ U
7. : ℤ
8. ¬(m ≤ (m k))
9. 0 < k
10. 0 ≤ (m k)
11. k < 1
12. : ∀[T:Type]. (funtype(m k;A;T) ⟶ T)
13. ∀G:∀[T:Type]. (funtype((m k) 1;A;T) ⟶ T). (callbyvalueall_seq(L;G;F;(m k) 1;m) ∈ U)
⊢ let v ⟵ (L (m k))
  in callbyvalueall_seq(L;λf.(G v);F;(m k) 1;m) ∈ U


Latex:


Latex:
\mforall{}[T,U:Type].  \mforall{}[m:\mBbbN{}].  \mforall{}[n:\mBbbN{}m  +  1].  \mforall{}[A:\mBbbN{}m  {}\mrightarrow{}  ValueAllType].  \mforall{}[L:i:\mBbbN{}m  {}\mrightarrow{}  funtype(i;A;A  i)].
\mforall{}[G:\mforall{}[T:Type].  (funtype(n;A;T)  {}\mrightarrow{}  T)].  \mforall{}[F:(funtype(m;A;T)  {}\mrightarrow{}  T)  {}\mrightarrow{}  U].
    (callbyvalueall\_seq(L;G;F;n;m)  \mmember{}  U)


By


Latex:
(Unfold  `vatype`  0
  THEN  Auto
  THEN  (DVar  `n'  THENA  Auto)
  THEN  (Assert  \mkleeneopen{}\mexists{}k:\mBbbN{}.  (n  =  (m  -  k))\mkleeneclose{}\mcdot{}  THENA  (InstConcl  [\mkleeneopen{}m  -  n\mkleeneclose{}]\mcdot{}  THEN  Auto'))
  THEN  ExRepD
  THEN  Eliminate  \mkleeneopen{}n\mkleeneclose{}\mcdot{}
  THEN  ThinVar  `n'
  THEN  NatInd  2
  THEN  Try  ((Subst  \mkleeneopen{}m  -  0  \msim{}  m\mkleeneclose{}  0\mcdot{}  THENA  Auto))
  THEN  Auto
  THEN  RecUnfold  `callbyvalueall\_seq`  0
  THEN  AutoSplit
  THEN  Try  (Complete  ((Subst  \mkleeneopen{}m  -  k  \msim{}  m\mkleeneclose{}  (-2)\mcdot{}  THEN  Auto')))
  THEN  (D  (-4)  THENA  Auto)
  THEN  (Subst  \mkleeneopen{}m  -  k  -  1  \msim{}  (m  -  k)  +  1\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto))




Home Index