src/HOL/Library/Multiset.thy
changeset 35273 51692ec1b220
parent 35268 04673275441a
child 35308 359e0fd38a92
equal deleted inserted replaced
35272:c283ae736bea 35273:51692ec1b220
  1204 using one_step_implies_mult_aux by blast
  1204 using one_step_implies_mult_aux by blast
  1205 
  1205 
  1206 
  1206 
  1207 subsubsection {* Partial-order properties *}
  1207 subsubsection {* Partial-order properties *}
  1208 
  1208 
  1209 definition less_multiset :: "'a\<Colon>order multiset \<Rightarrow> 'a multiset \<Rightarrow> bool" (infix "\<subset>#" 50) where
  1209 definition less_multiset :: "'a\<Colon>order multiset \<Rightarrow> 'a multiset \<Rightarrow> bool" (infix "<#" 50) where
  1210   "M' \<subset># M \<longleftrightarrow> (M', M) \<in> mult {(x', x). x' < x}"
  1210   "M' <# M \<longleftrightarrow> (M', M) \<in> mult {(x', x). x' < x}"
  1211 
  1211 
  1212 definition le_multiset :: "'a\<Colon>order multiset \<Rightarrow> 'a multiset \<Rightarrow> bool" (infix "\<subseteq>#" 50) where
  1212 definition le_multiset :: "'a\<Colon>order multiset \<Rightarrow> 'a multiset \<Rightarrow> bool" (infix "<=#" 50) where
  1213   "M' \<subseteq># M \<longleftrightarrow> M' \<subset># M \<or> M' = M"
  1213   "M' <=# M \<longleftrightarrow> M' <# M \<or> M' = M"
       
  1214 
       
  1215 notation (xsymbol) less_multiset (infix "\<subset>#" 50)
       
  1216 notation (xsymbol) le_multiset (infix "\<subseteq>#" 50)
  1214 
  1217 
  1215 interpretation multiset_order: order le_multiset less_multiset
  1218 interpretation multiset_order: order le_multiset less_multiset
  1216 proof -
  1219 proof -
  1217   have irrefl: "\<And>M :: 'a multiset. \<not> M \<subset># M"
  1220   have irrefl: "\<And>M :: 'a multiset. \<not> M \<subset># M"
  1218   proof
  1221   proof