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