equal
deleted
inserted
replaced
120 by (simp add: plus_multiset.rep_eq) |
120 by (simp add: plus_multiset.rep_eq) |
121 |
121 |
122 |
122 |
123 subsubsection {* Difference *} |
123 subsubsection {* Difference *} |
124 |
124 |
125 instantiation multiset :: (type) minus |
125 instantiation multiset :: (type) comm_monoid_diff |
126 begin |
126 begin |
127 |
127 |
128 lift_definition minus_multiset :: "'a multiset => 'a multiset => 'a multiset" is "\<lambda> M N. \<lambda>a. M a - N a" |
128 lift_definition minus_multiset :: "'a multiset => 'a multiset => 'a multiset" is "\<lambda> M N. \<lambda>a. M a - N a" |
129 by (rule diff_preserves_multiset) |
129 by (rule diff_preserves_multiset) |
130 |
130 |
131 instance .. |
131 instance |
|
132 by default (transfer, simp add: fun_eq_iff)+ |
132 |
133 |
133 end |
134 end |
134 |
135 |
135 lemma count_diff [simp]: "count (M - N) a = count M a - count N a" |
136 lemma count_diff [simp]: "count (M - N) a = count M a - count N a" |
136 by (simp add: minus_multiset.rep_eq) |
137 by (simp add: minus_multiset.rep_eq) |
159 "(M::'a multiset) - N - Q = M - Q - N" |
160 "(M::'a multiset) - N - Q = M - Q - N" |
160 by (auto simp add: multiset_eq_iff) |
161 by (auto simp add: multiset_eq_iff) |
161 |
162 |
162 lemma diff_add: |
163 lemma diff_add: |
163 "(M::'a multiset) - (N + Q) = M - N - Q" |
164 "(M::'a multiset) - (N + Q) = M - N - Q" |
|
165 find_theorems solves |
164 by (simp add: multiset_eq_iff) |
166 by (simp add: multiset_eq_iff) |
165 |
167 |
166 lemma diff_union_swap: |
168 lemma diff_union_swap: |
167 "a \<noteq> b \<Longrightarrow> M - {#a#} + {#b#} = M + {#b#} - {#a#}" |
169 "a \<noteq> b \<Longrightarrow> M - {#a#} + {#b#} = M + {#b#} - {#a#}" |
168 by (auto simp add: multiset_eq_iff) |
170 by (auto simp add: multiset_eq_iff) |
1911 Nitpick_Model.register_term_postprocessor @{typ "'a multiset"} |
1913 Nitpick_Model.register_term_postprocessor @{typ "'a multiset"} |
1912 multiset_postproc |
1914 multiset_postproc |
1913 *} |
1915 *} |
1914 |
1916 |
1915 end |
1917 end |
|
1918 |