equal
deleted
inserted
replaced
3431 instance |
3431 instance |
3432 proof intro_classes |
3432 proof intro_classes |
3433 fix M N :: "'a multiset" |
3433 fix M N :: "'a multiset" |
3434 show "(M < N) = (M \<le> N \<and> \<not> N \<le> M)" |
3434 show "(M < N) = (M \<le> N \<and> \<not> N \<le> M)" |
3435 unfolding less_eq_multiset_def less_multiset_def |
3435 unfolding less_eq_multiset_def less_multiset_def |
3436 by (metis irreflp_def irreflp_less irreflp_multp transpE transp_less transp_multp) |
3436 by (metis irreflp_def irreflp_on_less irreflp_multp transpE transp_less transp_multp) |
3437 next |
3437 next |
3438 fix M :: "'a multiset" |
3438 fix M :: "'a multiset" |
3439 show "M \<le> M" |
3439 show "M \<le> M" |
3440 unfolding less_eq_multiset_def |
3440 unfolding less_eq_multiset_def |
3441 by simp |
3441 by simp |
3448 next |
3448 next |
3449 fix M N :: "'a multiset" |
3449 fix M N :: "'a multiset" |
3450 show "M \<le> N \<Longrightarrow> N \<le> M \<Longrightarrow> M = N" |
3450 show "M \<le> N \<Longrightarrow> N \<le> M \<Longrightarrow> M = N" |
3451 unfolding less_eq_multiset_def less_multiset_def |
3451 unfolding less_eq_multiset_def less_multiset_def |
3452 using transp_multp[OF transp_less, THEN transpD] |
3452 using transp_multp[OF transp_less, THEN transpD] |
3453 using irreflp_multp[OF transp_less irreflp_less, unfolded irreflp_def, rule_format] |
3453 using irreflp_multp[OF transp_less irreflp_on_less, unfolded irreflp_def, rule_format] |
3454 by blast |
3454 by blast |
3455 qed |
3455 qed |
3456 |
3456 |
3457 end |
3457 end |
3458 |
3458 |