| ¬ m ≠ 0, (a ' + x0)[m] = (a ' + x0)[n], n ≤ # x0, m ≤ # x0, ∀ m0, n0. x0[m0] = x0[n0] ∧ n0 < # x0 ∧ m0 < # x0 → m0 = n0 ∨ x0 = [] ⊦ m = n, a ∈ x0, dups(x0) |
a = (a ' + x0)[n], n ≤ # x0, ∀ m0, n0. x0[m0] = x0[n0] ∧ n0 < # x0 ∧ m0 < # x0 → m0 = n0 ∨ x0 = [] ⊦ 0 = n, a ∈ x0, dups(x0)
Used simplifier rules: get-zero-01: ⊦ (a ' + x)[0] = a;%lez: ⊦ 0 ≤ m; from specification nat%a: ⊦ (x + y) + z = x + y + z; from specification list