Step
*
2
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
{ (ThinTrivial THEN ExRepD THEN Auto THEN Assert ⌜¬↑null(u @ concat(v))⌝⋅) }
1
.....assertion.....
1. [T] : Type
2. u : T List
3. v : T List List
4. ¬(concat(v) = [] ∈ (T List))
5. ll1 : T List List
6. l1 : T List
7. concat(v) = (concat(ll1) @ l1 @ [last(concat(v))]) ∈ (T List)
8. ll1 @ [l1 @ [last(concat(v))]] ≤ v
9. ¬((u @ concat(v)) = [] ∈ (T List))
⊢ ¬↑null(u @ concat(v))
2
1. [T] : Type
2. u : T List
3. v : T List List
4. ¬(concat(v) = [] ∈ (T List))
5. ll1 : T List List
6. l1 : T List
7. concat(v) = (concat(ll1) @ l1 @ [last(concat(v))]) ∈ (T List)
8. ll1 @ [l1 @ [last(concat(v))]] ≤ v
9. ¬((u @ concat(v)) = [] ∈ (T List))
10. ¬↑null(u @ concat(v))
⊢ ∃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])
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. \mneg{}(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:
(ThinTrivial THEN ExRepD THEN Auto THEN Assert \mkleeneopen{}\mneg{}\muparrow{}null(u @ concat(v))\mkleeneclose{}\mcdot{})
Home
Index