| #((x ∪ y) ∪ z) < #(x ∪ y) ⊦ |
# rmdup((x + y) + z) < # rmdup(x + y) ⊦ x + y = []
Used simplifier rules: union: ⊦ x ∪ y = rmdup(x + y);%assoc: ⊦ (x ∪ y) ∪ z = x ∪ y ∪ z;% ⊦ rmdup(x) = [] ↔ x = []; (s)% ⊦ # x = 0 ↔ x = []; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ rmdup(rmdup(x) + y) = rmdup(x + y); (s)