src/HOL/ex/Quicksort.thy
changeset 68990 a319e3c522ba
parent 68985 5d35fd21a0b9
equal deleted inserted replaced
68989:d6d5fb521896 68990:a319e3c522ba
    20   "quicksort (x#xs) = quicksort [y\<leftarrow>xs. y<x] @ [x] @ quicksort [y\<leftarrow>xs. x\<le>y]"
    20   "quicksort (x#xs) = quicksort [y\<leftarrow>xs. y<x] @ [x] @ quicksort [y\<leftarrow>xs. x\<le>y]"
    21   by (simp_all add: not_le)
    21   by (simp_all add: not_le)
    22 
    22 
    23 lemma quicksort_permutes [simp]:
    23 lemma quicksort_permutes [simp]:
    24   "mset (quicksort xs) = mset xs"
    24   "mset (quicksort xs) = mset xs"
    25   by (induct xs rule: quicksort.induct) (simp_all add: mset_compl_union ac_simps)
    25 by (induction xs rule: quicksort.induct) (simp_all)
    26 
    26 
    27 lemma set_quicksort [simp]: "set (quicksort xs) = set xs"
    27 lemma set_quicksort [simp]: "set (quicksort xs) = set xs"
    28 proof -
    28 proof -
    29   have "set_mset (mset (quicksort xs)) = set_mset (mset xs)"
    29   have "set_mset (mset (quicksort xs)) = set_mset (mset xs)"
    30     by simp
    30     by simp