src/HOL/Complete_Lattices.thy
changeset 68980 5717fbc55521
parent 68860 f443ec10447d
child 69020 4f94e262976d
equal deleted inserted replaced
68979:e2244e5707dd 68980:5717fbc55521
    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