| a0 = (a0 ' + x0)[n], a0 ∈ (a0 ' + x0) -1l n, n ≤ # x0, ∀ n0, a1. n0 < # x0 → (a1 ∈ x0 -1l n0 ↔ a1 ≠ x0[n0] ∧ a1 ∈ x0) ⊦ x0 = [], a0 ∈ x0, dups(x0) |
⊦ ¬ n < # x → (x + y)[n] = y[n - # x]
¬ n < # a0 ', a0 = x0[n - # a0 '], a0 ∈ (a0 ' + x0) -1l n, n ≤ # x0, ∀ n0, a1. n0 < # x0 → (a1 ∈ x0 -1l n0 ↔ a1 ≠ x0[n0] ∧ a1 ∈ x0) ⊦ x0 = [], a0 ∈ x0, dups(x0)
Used simplifier rules: get-zero-01: ⊦ (a ' + x)[0] = a;%delpos-base: ⊦ (a ' + x) -1l 0 = x;%len-02: ⊦ # a ' = 0 +1; from specification list%one-01: ⊦ m < 1 ↔ m = 0; from specification nat-basic1%a: ⊦ (x + y) + z = x + y + z; from specification list%lez: ⊦ 0 ≤ m; from specification nat Used terms: n, x0, a0 '