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