| n0 = m, ∀ n. (∀ n0. count(n0, (bag0 -- n) ++ n) = count(n0, bag0)) ↔ count(n, bag0) ≠ 0 ⊦ count(n, bag0) = 0, count(n0, (bag0 -- n) ++ m ++ n) = 1 + count(n0, bag0), n = m |
∀ n. (∀ n0. count(n0, (bag0 -- n) ++ n) = count(n0, bag0)) ↔ count(n, bag0) ≠ 0 ⊦ count(n, bag0) = 0, count(m, bag0 -- n) = count(m, bag0), n = m
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m + n = m + n0 ↔ n = n0; (s)% ⊦ count(n, bag0 ++ n) = count(n, bag0) + 1; (s)% ⊦ n ≠ n0 → count(n, bag0 ++ n0) = count(n, bag0); (s)