| ¬ n < # a0 ', n < # x0, a ∈ x0, n ≤ pos(a, x0), ∀ a1, n0. a1 ∈ x0 ∧ n0 + 1 < # x0 → (x0 \ a1 ')[n0] = (n0 < pos(a1, x0) ⊃ x0[n0];x0[n0 + 1]) ⊦ x0 = [], (x0 \ a ')[n - # a0 '] = (a0 ' + x0)[n], dups(x0), a0 ∈ x0 |
n < # x0, a ∈ x0, n ≤ pos(a, x0), ∀ a1, n0. a1 ∈ x0 ∧ n0 + 1 < # x0 → (x0 \ a1 ')[n0] = (n0 < pos(a1, x0) ⊃ x0[n0];x0[n0 + 1]) ⊦ x0 = [], (x0 \ a ')[n - 1] = x0[n - 1], n = 0, dups(x0), a0 ∈ x0
Used simplifier rules: one-01: ⊦ m < 1 ↔ m = 0; from specification nat-basic1%a: ⊦ (x + y) + z = x + y + z; from specification list%get-append-grt: ⊦ ¬ n < # x → (x + y)[n] = y[n - # x]; from specification list-del%len-02: ⊦ # a ' = 0 +1; from specification list