# HG changeset patch # User nipkow # Date 1606900922 -3600 # Node ID 9bd2ed5e83f3859c3716b9e3a219c632d9db2fb8 # Parent e732c98b02e63da6c0185792ecaa570234e5e848 added abbrev diff -r e732c98b02e6 -r 9bd2ed5e83f3 src/HOL/Data_Structures/Sorting.thy --- a/src/HOL/Data_Structures/Sorting.thy Tue Dec 01 15:29:54 2020 +0100 +++ b/src/HOL/Data_Structures/Sorting.thy Wed Dec 02 10:22:02 2020 +0100 @@ -271,16 +271,19 @@ subsubsection "Functional Correctness" +abbreviation mset_mset :: "'a list list \ 'a multiset" where +"mset_mset xss \ \# (image_mset mset (mset xss))" + lemma mset_merge_adj: - "\# (image_mset mset (mset (merge_adj xss))) = \# (image_mset mset (mset xss))" + "mset_mset (merge_adj xss) = mset_mset xss" by(induction xss rule: merge_adj.induct) (auto simp: mset_merge) lemma mset_merge_all: - "mset (merge_all xss) = (\# (mset (map mset xss)))" + "mset (merge_all xss) = mset_mset xss" by(induction xss rule: merge_all.induct) (auto simp: mset_merge mset_merge_adj) lemma mset_msort_bu: "mset (msort_bu xs) = mset xs" -by(simp add: msort_bu_def mset_merge_all comp_def) +by(simp add: msort_bu_def mset_merge_all multiset.map_comp comp_def) lemma sorted_merge_adj: "\xs \ set xss. sorted xs \ \xs \ set (merge_adj xss). sorted xs"