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