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