diff -r 1d25ca718790 -r 8355a6e2df79 src/HOL/Library/Multiset_Order.thy --- a/src/HOL/Library/Multiset_Order.thy Sat Dec 17 15:22:00 2016 +0100 +++ b/src/HOL/Library/Multiset_Order.thy Sat Dec 17 15:22:13 2016 +0100 @@ -49,7 +49,7 @@ definition less_multiset\<^sub>D\<^sub>M where "less_multiset\<^sub>D\<^sub>M M N \ - (\X Y. X \ {#} \ X \# N \ M = (N - X) + Y \ (\k. k \# Y \ (\a. a \# X \ k < a)))" + (\X Y. X \ {#} \ X \# N \ M = (N - X) + Y \ (\k. k \# Y \ (\a. a \# X \ k < a)))" text \The Huet--Oppen ordering:\ @@ -123,11 +123,11 @@ proof - assume "less_multiset\<^sub>D\<^sub>M M N" then obtain X Y where - "X \ {#}" and "X \# N" and "M = N - X + Y" and "\k. k \# Y \ (\a. a \# X \ k < a)" + "X \ {#}" and "X \# N" and "M = N - X + Y" and "\k. k \# Y \ (\a. a \# X \ k < a)" unfolding less_multiset\<^sub>D\<^sub>M_def by blast then have "(N - X + Y, N - X + X) \ mult {(x, y). x < y}" by (intro one_step_implies_mult) (auto simp: Bex_def trans_def) - with \M = N - X + Y\ \X \# N\ show "(M, N) \ mult {(x, y). x < y}" + with \M = N - X + Y\ \X \# N\ show "(M, N) \ mult {(x, y). x < y}" by (metis subset_mset.diff_add) qed @@ -140,7 +140,7 @@ define X where "X = N - M" define Y where "Y = M - N" from z show "X \ {#}" unfolding X_def by (auto simp: multiset_eq_iff not_less_eq_eq Suc_le_eq) - from z show "X \# N" unfolding X_def by auto + from z show "X \# N" unfolding X_def by auto show "M = (N - X) + Y" unfolding X_def Y_def multiset_eq_iff count_union count_diff by force show "\k. k \# Y \ (\a. a \# X \ k < a)" proof (intro allI impI) @@ -175,7 +175,7 @@ lemmas less_multiset\<^sub>H\<^sub>O = mult\<^sub>H\<^sub>O[folded less_multiset_def] lemma subset_eq_imp_le_multiset: - shows "M \# N \ M \ N" + shows "M \# N \ M \ N" unfolding less_eq_multiset_def less_multiset\<^sub>H\<^sub>O by (simp add: less_le_not_le subseteq_mset_def) @@ -201,7 +201,7 @@ lemma le_multiset_empty_right[simp]: "\ M < {#}" using subset_mset.le_zero_eq less_multiset\<^sub>D\<^sub>M by blast -lemma union_le_diff_plus: "P \# M \ N < P \ M - P + N < M" +lemma union_le_diff_plus: "P \# M \ N < P \ M - P + N < M" by (drule subset_mset.diff_add[symmetric]) (metis union_le_mono2) instantiation multiset :: (preorder) ordered_ab_semigroup_monoid_add_imp_le