| n ≤ # x0, ∀ n0, a1. n0 < # x0 → (a1 ∈ x0 -1l n0 ↔ a1 ≠ x0[n0] ∧ a1 ∈ x0) ∨ x0 = [] ⊦ a ∈ (a0 ' + x0) -1l n ↔ a ≠ (a0 ' + x0)[n] ∧ (a = a0 ∨ a ∈ x0), a0 ∈ x0, dups(x0) |
n ≤ # x0, ∀ n0, a1. n0 < # x0 → (a1 ∈ x0 -1l n0 ↔ a1 ≠ x0[n0] ∧ a1 ∈ x0) ∨ x0 = [] ⊦ x0 = [], a ∈ (a0 ' + x0) -1l n ↔ a ≠ (a0 ' + x0)[n] ∧ (a = a0 ∨ a ∈ x0), a0 ∈ x0, dups(x0)
Used simplifier rules: delnr-one: ⊦ a ' -1l 0 = [];%one-03: ⊦ a '[0] = a;%app: ⊦ x + [] = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%in-empty: ⊦ ¬ a ∈ []; from specification list%size-01: ⊦ # [] = 0; from specification list-data%lez-01: ⊦ m ≤ 0 ↔ m = 0; from specification nat%e-01: ⊦ ¬ dups([]); from specification list-dup%zero-01: ⊦ ¬ m < 0; from specification nat-basic1 Used formulas: x0 = []