| ∀ bag0. bag ⊆ bag0 → #(bag0 \ bag) = # bag0 - # bag, bag ++ a ⊆ bag0 ⊦ #(bag0 \ (bag ++ a)) = # bag0 - #(bag ++ a) |
bag ⊆ bag1, ∀ bag0. bag ⊆ bag0 → #(bag0 \ bag) = # bag0 - # bag ⊦ #(bag1 \ bag) = # bag1 - # bag
Used simplifier rules: diff-rec: ⊦ bag0 \ (bag1 ++ a) = (bag0 -- a) \ bag1;%size-rec: ⊦ #(bag ++ a) = # bag + 1;%subset-plus: ⊦ ¬ ¬ bag0 ++ a ⊆ bag1 ↔ (∃ bag2. bag1 = bag2 ++ a ∧ bag0 ⊆ bag2);%del-rec: ⊦ (bag ++ a) -- b = (a = b ⊃ bag;(bag -- b) ++ a);%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%cancel-01: ⊦ m + n - n + n1 = m - n1; from specification nat