equal
deleted
inserted
replaced
13 begin |
13 begin |
14 |
14 |
15 subsection \<open>Syntactic infimum and supremum operations\<close> |
15 subsection \<open>Syntactic infimum and supremum operations\<close> |
16 |
16 |
17 class Inf = |
17 class Inf = |
18 fixes Inf :: "'a set \<Rightarrow> 'a" ("\<Sqinter>_" [900] 900) |
18 fixes Inf :: "'a set \<Rightarrow> 'a" ("\<Sqinter> _" [900] 900) |
19 begin |
19 begin |
20 |
20 |
21 abbreviation (input) INFIMUM :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" \<comment> \<open>legacy\<close> |
21 abbreviation (input) INFIMUM :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" \<comment> \<open>legacy\<close> |
22 where "INFIMUM A f \<equiv> \<Sqinter>(f ` A)" |
22 where "INFIMUM A f \<equiv> \<Sqinter>(f ` A)" |
23 |
23 |
24 end |
24 end |
25 |
25 |
26 class Sup = |
26 class Sup = |
27 fixes Sup :: "'a set \<Rightarrow> 'a" ("\<Squnion>_" [900] 900) |
27 fixes Sup :: "'a set \<Rightarrow> 'a" ("\<Squnion> _" [900] 900) |
28 begin |
28 begin |
29 |
29 |
30 abbreviation (input) SUPREMUM :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" \<comment> \<open>legacy\<close> |
30 abbreviation (input) SUPREMUM :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" \<comment> \<open>legacy\<close> |
31 where "SUPREMUM A f \<equiv> \<Squnion>(f ` A)" |
31 where "SUPREMUM A f \<equiv> \<Squnion>(f ` A)" |
32 |
32 |
789 |
789 |
790 end |
790 end |
791 |
791 |
792 subsubsection \<open>Inter\<close> |
792 subsubsection \<open>Inter\<close> |
793 |
793 |
794 abbreviation Inter :: "'a set set \<Rightarrow> 'a set" ("\<Inter>_" [900] 900) |
794 abbreviation Inter :: "'a set set \<Rightarrow> 'a set" ("\<Inter> _" [900] 900) |
795 where "\<Inter>S \<equiv> \<Sqinter>S" |
795 where "\<Inter>S \<equiv> \<Sqinter>S" |
796 |
796 |
797 lemma Inter_eq: "\<Inter>A = {x. \<forall>B \<in> A. x \<in> B}" |
797 lemma Inter_eq: "\<Inter>A = {x. \<forall>B \<in> A. x \<in> B}" |
798 proof (rule set_eqI) |
798 proof (rule set_eqI) |
799 fix x |
799 fix x |
946 by blast |
946 by blast |
947 |
947 |
948 |
948 |
949 subsubsection \<open>Union\<close> |
949 subsubsection \<open>Union\<close> |
950 |
950 |
951 abbreviation Union :: "'a set set \<Rightarrow> 'a set" ("\<Union>_" [900] 900) |
951 abbreviation Union :: "'a set set \<Rightarrow> 'a set" ("\<Union> _" [900] 900) |
952 where "\<Union>S \<equiv> \<Squnion>S" |
952 where "\<Union>S \<equiv> \<Squnion>S" |
953 |
953 |
954 lemma Union_eq: "\<Union>A = {x. \<exists>B \<in> A. x \<in> B}" |
954 lemma Union_eq: "\<Union>A = {x. \<exists>B \<in> A. x \<in> B}" |
955 proof (rule set_eqI) |
955 proof (rule set_eqI) |
956 fix x |
956 fix x |