Step * 4 1 1 2 of Lemma select_concat


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||
⊢ (||concat(firstn(0;[u v]))|| ≤ n)
c∧ ||concat(firstn(0;[u v]))|| < ||[u v][0]||
c∧ (u concat(v)[n] [u v][0][n ||concat(firstn(0;[u v]))||] ∈ T)
BY
(RWO "first0" 0
   THEN Reduce 0
   THEN Auto
   THEN Try ((Subst' ⌜(n 0) n ∈ ℤ⌝ 0⋅ THEN Auto THEN BLemma `select_append_front` THEN Auto))) }


Latex:


Latex:

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


By


Latex:
(RWO  "first0"  0
  THEN  Reduce  0
  THEN  Auto
  THEN  Try  ((Subst'  \mkleeneopen{}(n  -  0)  =  n\mkleeneclose{}  0\mcdot{}  THEN  Auto  THEN  BLemma  `select\_append\_front`  THEN  Auto)))




Home Index