equal
deleted
inserted
replaced
26 [code del]: "eq_set = op =" |
26 [code del]: "eq_set = op =" |
27 |
27 |
28 lemma [code]: "eq_set A B \<longleftrightarrow> A \<subseteq> B \<and> B \<subseteq> A" |
28 lemma [code]: "eq_set A B \<longleftrightarrow> A \<subseteq> B \<and> B \<subseteq> A" |
29 unfolding eq_set_def by auto |
29 unfolding eq_set_def by auto |
30 |
30 |
|
31 (* FIXME allow for Stefan's code generator: |
|
32 declare set_eq_subset[code unfold] |
|
33 *) |
|
34 |
31 lemma [code]: |
35 lemma [code]: |
32 "a \<in> A \<longleftrightarrow> (\<exists>x\<in>A. x = a)" |
36 "a \<in> A \<longleftrightarrow> (\<exists>x\<in>A. x = a)" |
33 unfolding bex_triv_one_point1 .. |
37 unfolding bex_triv_one_point1 .. |
34 |
38 |
35 definition filter_set :: "('a \<Rightarrow> bool) \<Rightarrow> 'a set \<Rightarrow> 'a set" where |
39 definition filter_set :: "('a \<Rightarrow> bool) \<Rightarrow> 'a set \<Rightarrow> 'a set" where |
36 "filter_set P xs = {x\<in>xs. P x}" |
40 "filter_set P xs = {x\<in>xs. P x}" |
|
41 |
|
42 declare filter_set_def[symmetric, code unfold] |
37 |
43 |
38 |
44 |
39 subsection {* Operations on lists *} |
45 subsection {* Operations on lists *} |
40 |
46 |
41 subsubsection {* Basic definitions *} |
47 subsubsection {* Basic definitions *} |
267 UNION ("{*map_union*}") |
273 UNION ("{*map_union*}") |
268 INTER ("{*map_inter*}") |
274 INTER ("{*map_inter*}") |
269 Ball ("{*Blall*}") |
275 Ball ("{*Blall*}") |
270 Bex ("{*Blex*}") |
276 Bex ("{*Blex*}") |
271 filter_set ("{*filter*}") |
277 filter_set ("{*filter*}") |
|
278 fold ("{* foldl *}") |
|
279 |
272 |
280 |
273 end |
281 end |