equal
deleted
inserted
replaced
1083 interpretation mset_order: order ["op \<le>#" "op <#"] |
1083 interpretation mset_order: order ["op \<le>#" "op <#"] |
1084 proof qed (auto intro: order.intro mset_le_refl mset_le_antisym |
1084 proof qed (auto intro: order.intro mset_le_refl mset_le_antisym |
1085 mset_le_trans simp: mset_less_def) |
1085 mset_le_trans simp: mset_less_def) |
1086 |
1086 |
1087 interpretation mset_order_cancel_semigroup: |
1087 interpretation mset_order_cancel_semigroup: |
1088 pordered_cancel_ab_semigroup_add ["op +" "op \<le>#" "op <#"] |
1088 pordered_cancel_ab_semigroup_add ["op +" "op \<le>#" "op <#"] |
1089 proof qed (erule mset_le_mono_add [OF mset_le_refl]) |
1089 proof qed (erule mset_le_mono_add [OF mset_le_refl]) |
1090 |
1090 |
1091 interpretation mset_order_semigroup_cancel: |
1091 interpretation mset_order_semigroup_cancel: |
1092 pordered_ab_semigroup_add_imp_le ["op +" "op \<le>#" "op <#"] |
1092 pordered_ab_semigroup_add_imp_le ["op +" "op \<le>#" "op <#"] |
1093 proof qed simp |
1093 proof qed simp |
1094 |
1094 |
1095 |
1095 |
1096 lemma mset_lessD: "A \<subset># B \<Longrightarrow> x \<in># A \<Longrightarrow> x \<in># B" |
1096 lemma mset_lessD: "A \<subset># B \<Longrightarrow> x \<in># A \<Longrightarrow> x \<in># B" |
1097 apply (clarsimp simp: mset_le_def mset_less_def) |
1097 apply (clarsimp simp: mset_le_def mset_less_def) |
1435 |
1435 |
1436 definition [code del]: |
1436 definition [code del]: |
1437 "image_mset f = fold_mset (op + o single o f) {#}" |
1437 "image_mset f = fold_mset (op + o single o f) {#}" |
1438 |
1438 |
1439 interpretation image_left_comm: left_commutative ["op + o single o f"] |
1439 interpretation image_left_comm: left_commutative ["op + o single o f"] |
1440 by (unfold_locales) (simp add:union_ac) |
1440 proof qed (simp add:union_ac) |
1441 |
1441 |
1442 lemma image_mset_empty [simp]: "image_mset f {#} = {#}" |
1442 lemma image_mset_empty [simp]: "image_mset f {#} = {#}" |
1443 by (simp add: image_mset_def) |
1443 by (simp add: image_mset_def) |
1444 |
1444 |
1445 lemma image_mset_single [simp]: "image_mset f {#x#} = {#f x#}" |
1445 lemma image_mset_single [simp]: "image_mset f {#x#} = {#f x#}" |