| m0 + n0 + 1 < # x, ∀ m0, x. m0 + n0 < # x → (restn(m0, x).head ' + firstn(n0, restn(m0, x).tail)).last = x[m0 + n0] ∨ x = [] ⊦ (restn(m0, x).tail.head ' + firstn(n0, restn(m0, x).tail.tail)).last = x.tail[m0 + n0], x = [] |
x = a + y, m0 + n0 + 1 < # x, ∀ m0, x. m0 + n0 < # x → (restn(m0, x).head ' + firstn(n0, restn(m0, x).tail)).last = x[m0 + n0] ∨ x = [] ⊦ (restn(m0, x).tail.head ' + firstn(n0, restn(m0, x).tail.tail)).last = y[m0 + n0], x = []
Used simplifier rules: x ≠ [] ⊦ a = x.head ∧ y = x.tail ↔ x = a + y; (elim) Used terms: x, a, y