diff -r dd58f13a8eb4 -r eb85850d3eb7 src/HOL/Library/ExecutableSet.thy --- a/src/HOL/Library/ExecutableSet.thy Fri Nov 17 02:19:55 2006 +0100 +++ b/src/HOL/Library/ExecutableSet.thy Fri Nov 17 02:20:03 2006 +0100 @@ -14,7 +14,7 @@ instance set :: (eq) eq .. definition - minus_set :: "'a set \ 'a set \ 'a set" + minus_set :: "'a set \ 'a set \ 'a set" where "minus_set xs ys = ys - xs" lemma [code inline]: @@ -22,8 +22,8 @@ unfolding minus_set_def .. definition - subset :: "'a set \ 'a set \ bool" - subset_def: "subset = op \" + subset :: "'a set \ 'a set \ bool" where + "subset = op \" lemmas [symmetric, code inline] = subset_def @@ -44,8 +44,8 @@ unfolding bex_triv_one_point1 .. definition - filter_set :: "('a \ bool) \ 'a set \ 'a set" - filter_set_def: "filter_set P xs = {x\xs. P x}" + filter_set :: "('a \ bool) \ 'a set \ 'a set" where + "filter_set P xs = {x\xs. P x}" lemmas [symmetric, code inline] = filter_set_def @@ -55,11 +55,15 @@ subsection {* Basic definitions *} definition - flip :: "('a \ 'b \ 'c) \ 'b \ 'a \ 'c" + flip :: "('a \ 'b \ 'c) \ 'b \ 'a \ 'c" where "flip f a b = f b a" - member :: "'a list \ 'a \ bool" + +definition + member :: "'a list \ 'a \ bool" where "member xs x = (x \ set xs)" - insertl :: "'a \ 'a list \ 'a list" + +definition + insertl :: "'a \ 'a list \ 'a list" where "insertl x xs = (if member xs x then xs else x#xs)" lemma @@ -174,9 +178,11 @@ "intersects (x#xs) = foldr intersect xs x" definition - map_union :: "'a list \ ('a \ 'b list) \ 'b list" + map_union :: "'a list \ ('a \ 'b list) \ 'b list" where "map_union xs f = unions (map f xs)" - map_inter :: "'a list \ ('a \ 'b list) \ 'b list" + +definition + map_inter :: "'a list \ ('a \ 'b list) \ 'b list" where "map_inter xs f = intersects (map f xs)" @@ -237,9 +243,10 @@ unfolding map_inter_def iso_intersects by (induct xs) (simp_all add: iso_member, auto) definition - Blall :: "'a list \ ('a \ bool) \ bool" + Blall :: "'a list \ ('a \ bool) \ bool" where "Blall = flip list_all" - Blex :: "'a list \ ('a \ bool) \ bool" +definition + Blex :: "'a list \ ('a \ bool) \ bool" where "Blex = flip list_ex" lemma iso_Ball: