| # rmdup(x0) = m0 + 1 ∧ # rmdup(x0) ≠ 0, # rmdup(a0 ' + x0) = m + 1, a ∈ x0, ∀ a. a ∈ x0 → # rmdup(x0 -l a) = m0 ⊦ a = a0, # rmdup(a0 ' + (x0 -l a)) = m |
# rmdup(x0) = m0 + 1, # rmdup(a0 ' + x0) = m + 1, a ∈ x0, ∀ a. a ∈ x0 → # rmdup(x0 -l a) = m0 ⊦ a = a0, # rmdup(a0 ' + (x0 -l a)) = m, x0 = []
Used simplifier rules: rm-empty: ⊦ rmdup(x) = [] ↔ x = []; from specification list-dup%l: ⊦ # x = 0 ↔ x = []; from specification list-data