Step
*
of Lemma
last-concat
∀[T:Type]
  ∀ll:T List List
    ∃ll1:T List List
     ∃l1:T List
      ((concat(ll) = (concat(ll1) @ l1 @ [last(concat(ll))]) ∈ (T List)) ∧ ll1 @ [l1 @ [last(concat(ll))]] ≤ ll) 
    supposing ¬(concat(ll) = [] ∈ (T List))
BY
{ ((((((((InductionOnList THEN RWW "concat-nil" 0) THENA Auto) THEN RWW "concat-cons" 0) THENA Auto)
      THEN Try (Complete ((Auto THEN (D (-1)) THEN Auto)))
      THEN Decide ⌜↑null(concat(v))⌝⋅)
     THENA Auto
     )
    THEN (RW assert_pushdownC (-1))
    )
   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)
⊢ ∃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))
2
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))
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}ll:T  List  List
        \mexists{}ll1:T  List  List
          \mexists{}l1:T  List
            ((concat(ll)  =  (concat(ll1)  @  l1  @  [last(concat(ll))]))
            \mwedge{}  ll1  @  [l1  @  [last(concat(ll))]]  \mleq{}  ll) 
        supposing  \mneg{}(concat(ll)  =  [])
By
Latex:
((((((((InductionOnList  THEN  RWW  "concat-nil"  0)  THENA  Auto)  THEN  RWW  "concat-cons"  0)  THENA  Auto)
        THEN  Try  (Complete  ((Auto  THEN  (D  (-1))  THEN  Auto)))
        THEN  Decide  \mkleeneopen{}\muparrow{}null(concat(v))\mkleeneclose{}\mcdot{})
      THENA  Auto
      )
    THEN  (RW  assert\_pushdownC  (-1))
    )
  THENA  Auto
  )
Home
Index