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