Step
*
1
of Lemma
last-concat
1. [T] : Type
2. u : T List
3. v : T List List
4. ∃ll1:T List List
    ∃l1:T List. ((concat(v) = (concat(ll1) @ l1 @ [last(concat(v))]) ∈ (T List)) ∧ ll1 @ [l1 @ [last(concat(v))]] ≤ v) 
   supposing ¬(concat(v) = [] ∈ (T List))
5. concat(v) = [] ∈ (T List)
⊢ ∃ll1:T List List
   ∃l1:T List
    (((u @ concat(v)) = (concat(ll1) @ l1 @ [last(u @ concat(v))]) ∈ (T List))
    ∧ ll1 @ [l1 @ [last(u @ concat(v))]] ≤ [u / v]) 
  supposing ¬((u @ concat(v)) = [] ∈ (T List))
BY
{ ((((HypSubst (-1) 0) THENA Auto) THEN Try ((RW assert_pushdownC 0 THEN Auto)) THEN (All (RWW "append_nil_sq")))
   THENA Auto
   ) }
1
1. [T] : Type
2. u : T List
3. v : T List List
4. ∃ll1:T List List
    ∃l1:T List. ((concat(v) = (concat(ll1) @ l1 @ [last(concat(v))]) ∈ (T List)) ∧ ll1 @ [l1 @ [last(concat(v))]] ≤ v) 
   supposing ¬(concat(v) = [] ∈ (T List))
5. concat(v) = [] ∈ (T List)
6. ¬(u = [] ∈ (T List))
⊢ ∃ll1:T List List. ∃l1:T List. ((u = (concat(ll1) @ l1 @ [last(u)]) ∈ (T List)) ∧ ll1 @ [l1 @ [last(u)]] ≤ [u / v])
Latex:
Latex:
1.  [T]  :  Type
2.  u  :  T  List
3.  v  :  T  List  List
4.  \mexists{}ll1:T  List  List
        \mexists{}l1:T  List
          ((concat(v)  =  (concat(ll1)  @  l1  @  [last(concat(v))]))  \mwedge{}  ll1  @  [l1  @  [last(concat(v))]]  \mleq{}  v) 
      supposing  \mneg{}(concat(v)  =  [])
5.  concat(v)  =  []
\mvdash{}  \mexists{}ll1:T  List  List
      \mexists{}l1:T  List
        (((u  @  concat(v))  =  (concat(ll1)  @  l1  @  [last(u  @  concat(v))]))
        \mwedge{}  ll1  @  [l1  @  [last(u  @  concat(v))]]  \mleq{}  [u  /  v]) 
    supposing  \mneg{}((u  @  concat(v))  =  [])
By
Latex:
((((HypSubst  (-1)  0)  THENA  Auto)
    THEN  Try  ((RW  assert\_pushdownC  0  THEN  Auto))
    THEN  (All  (RWW  "append\_nil\_sq")))
  THENA  Auto
  )
Home
Index