| n ≤ # x0, (a0 ' + x0)[n] ∈ (a0 ' + x0) -1l n, (a0 ' + x0)[n] ∈ x0, ∀ n0, a1. n0 < # x0 → (a1 ∈ x0 -1l n0 ↔ a1 ≠ x0[n0] ∧ a1 ∈ x0) ⊦ x0 = [], dups(x0), a0 ∈ x0 |
⊦ ¬ n < # x → (x + y)[n] = y[n - # x]
¬ n < # a0 ', n ≤ # x0, x0[n - # a0 '] ∈ (a0 ' + x0) -1l n, x0[n - # a0 '] ∈ x0, ∀ n0, a1. n0 < # x0 → (a1 ∈ x0 -1l n0 ↔ a1 ≠ x0[n0] ∧ a1 ∈ x0) ⊦ x0 = [], dups(x0), a0 ∈ x0
Used simplifier rules: get-zero-01: ⊦ (a ' + x)[0] = a;%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 Used terms: n, x0, a0 '