| m + 1 < # x0, m1 + 1 < # x0, m1 < # x0, m1 ≤ m, ∀ m0, n0. m0 < # x0 ∧ n0 + 1 < # x0 → (x0 -1l m0)[n0] = (n0 < m0 ⊃ x0[n0];x0.rest[n0]) ⊦ x0 = [], (x0 -1l m1)[m] = x0.rest[m] |
x0 = a + y, m + 1 < # x0, m1 + 1 < # x0, m1 < # x0, m1 ≤ m, ∀ m0, n0. m0 < # x0 ∧ n0 + 1 < # x0 → (x0 -1l m0)[n0] = (n0 < m0 ⊃ x0[n0];y[n0]) ⊦ x0 = [], (x0 -1l m1)[m] = y[m]
Used simplifier rules: x ≠ [] ⊦ a = x.first ∧ y = x.rest ↔ x = a + y; (elim) Used terms: x0, a, y