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