Step
*
4
1
1
2
of Lemma
select_concat
1. [T] : Type
2. u : T List
3. v : T List List
4. ∀n:ℕ||concat(v)||
     ∃m:ℕ||v||
      ((||concat(firstn(m;v))|| ≤ n)
      c∧ n - ||concat(firstn(m;v))|| < ||v[m]||
      c∧ (concat(v)[n] = v[m][n - ||concat(firstn(m;v))||] ∈ T))
5. n : ℕ||concat([u / v])||
6. n < ||u||
⊢ (||concat(firstn(0;[u / v]))|| ≤ n)
c∧ n - ||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