| ∀ a. a ∈ x0 → # rmdup(x0 -l a) = # rmdup(x0) - 1, a = a0 ∨ a ∈ x0 ⊦ # rmdup((a0 ' + x0) -l a) = # rmdup(a0 ' + x0) - 1 |
# 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
Used simplifier rules: l: ⊦ # x = 0 ↔ x = []; from specification list-data%rm-empty: ⊦ rmdup(x) = [] ↔ x = []; from specification list-dup%app-02-ant: ⊦ ¬ x + y ≠ [] ↔ x = [] ∧ y = []; from specification list%e: ⊦ a ' ≠ []; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: # rmdup(a0 ' + x0), m