| m0 < # x, ∀ x, y. m0 ≤ # x → firstn(m0, x + y) = firstn(m0, x) ⊦ x = [], firstn(m0, x.rest + y) = firstn(m0, x.rest) |
x = a + y0, m0 < # x, ∀ x, y. m0 ≤ # x → firstn(m0, x + y) = firstn(m0, x) ⊦ x = [], firstn(m0, y0 + y) = firstn(m0, y0)
Used simplifier rules: x ≠ [] ⊦ a = x.first ∧ y = x.rest ↔ x = a + y; (elim) Used terms: x, a, y1