| m < bag0.max, bag0 = ∅ ++ bag0.max ∨ bag0.max = (bag0 -- bag0.max).max ∨ count(bag0.max, bag0) = 1 ⊦ bag0.max = ((bag0 -- bag0.max) ++ m).max, (m = bag0.max ⊃ bag0;(bag0 -- bag0.max) ++ m) = ∅, bag0 = ∅, count(bag0.max, bag0 ++ m) = 1, m = bag0.max |
m < bag0.max, bag0 = ∅ ++ bag0.max ∨ bag0.max = (bag0 -- bag0.max).max ⊦ bag0.max = (bag0 = ∅ ++ bag0.max ⊃ m;(m < (bag0 -- bag0.max).max ⊃ (bag0 -- bag0.max).max;m)), bag0 = ∅, count(bag0.max, bag0) = 1, m = bag0.max
Used simplifier rules: max-rec: ⊦ (bag ++ n).max = (bag = ∅ ⊃ n;(bag.max > n ⊃ bag.max;n));%bag-rem-empty: ⊦ bag ≠ ∅ → (bag -- n = ∅ ↔ bag = ∅ ++ n);% ⊦ m > n ↔ n < m; (s)% ⊦ bag0 ++ n ≠ ∅; (s)% ⊦ n ≠ n0 → count(n, bag0 ++ n0) = count(n, bag0); (s)