Step * 4 1 of Lemma select_concat


1. [T] Type
2. aaaa List
3. LLLL List List
4. ∀n:ℕ||concat(LLLL)||
     ∃m:ℕ||LLLL||
      ((||concat(firstn(m;LLLL))|| ≤ n)
      c∧ ||concat(firstn(m;LLLL))|| < ||LLLL[m]||
      c∧ (concat(LLLL)[n] LLLL[m][n ||concat(firstn(m;LLLL))||] ∈ T))
5. : ℕ||concat([aaaa LLLL])||
⊢ ∃m:ℕ||LLLL|| 1
   ((||concat(firstn(m;[aaaa LLLL]))|| ≤ n)
   c∧ ||concat(firstn(m;[aaaa LLLL]))|| < ||[aaaa LLLL][m]||
   c∧ (concat([aaaa LLLL])[n] [aaaa LLLL][m][n ||concat(firstn(m;[aaaa LLLL]))||] ∈ T))
BY
(RenameVar `u' 2
   THEN RenameVar `v' 3
   THEN Unfold `concat` 0
   THEN Reduce 0
   THEN Try (Fold `concat` 0)
   THEN (Decide ⌜n < ||u||⌝⋅ THENA Auto)) }

1
1. [T] Type
2. List
3. List List
4. ∀n:ℕ||concat(v)||
     ∃m:ℕ||v||
      ((||concat(firstn(m;v))|| ≤ n)
      c∧ ||concat(firstn(m;v))|| < ||v[m]||
      c∧ (concat(v)[n] v[m][n ||concat(firstn(m;v))||] ∈ T))
5. : ℕ||concat([u v])||
6. n < ||u||
⊢ ∃m:ℕ||v|| 1
   ((||concat(firstn(m;[u v]))|| ≤ n)
   c∧ ||concat(firstn(m;[u v]))|| < ||[u v][m]||
   c∧ (u concat(v)[n] [u v][m][n ||concat(firstn(m;[u v]))||] ∈ T))

2
1. [T] Type
2. List
3. List List
4. ∀n:ℕ||concat(v)||
     ∃m:ℕ||v||
      ((||concat(firstn(m;v))|| ≤ n)
      c∧ ||concat(firstn(m;v))|| < ||v[m]||
      c∧ (concat(v)[n] v[m][n ||concat(firstn(m;v))||] ∈ T))
5. : ℕ||concat([u v])||
6. ¬n < ||u||
⊢ ∃m:ℕ||v|| 1
   ((||concat(firstn(m;[u v]))|| ≤ n)
   c∧ ||concat(firstn(m;[u v]))|| < ||[u v][m]||
   c∧ (u concat(v)[n] [u v][m][n ||concat(firstn(m;[u v]))||] ∈ T))


Latex:


Latex:

1.  [T]  :  Type
2.  aaaa  :  T  List
3.  LLLL  :  T  List  List
4.  \mforall{}n:\mBbbN{}||concat(LLLL)||
          \mexists{}m:\mBbbN{}||LLLL||
            ((||concat(firstn(m;LLLL))||  \mleq{}  n)
            c\mwedge{}  n  -  ||concat(firstn(m;LLLL))||  <  ||LLLL[m]||
            c\mwedge{}  (concat(LLLL)[n]  =  LLLL[m][n  -  ||concat(firstn(m;LLLL))||]))
5.  n  :  \mBbbN{}||concat([aaaa  /  LLLL])||
\mvdash{}  \mexists{}m:\mBbbN{}||LLLL||  +  1
      ((||concat(firstn(m;[aaaa  /  LLLL]))||  \mleq{}  n)
      c\mwedge{}  n  -  ||concat(firstn(m;[aaaa  /  LLLL]))||  <  ||[aaaa  /  LLLL][m]||
      c\mwedge{}  (concat([aaaa  /  LLLL])[n]  =  [aaaa  /  LLLL][m][n  -  ||concat(firstn(m;[aaaa  /  LLLL]))||]))


By


Latex:
(RenameVar  `u'  2
  THEN  RenameVar  `v'  3
  THEN  Unfold  `concat`  0
  THEN  Reduce  0
  THEN  Try  (Fold  `concat`  0)
  THEN  (Decide  \mkleeneopen{}n  <  ||u||\mkleeneclose{}\mcdot{}  THENA  Auto))




Home Index