src/HOL/Lattices.thy
changeset 69593 3dda49e08b9d
parent 67727 ce3e87a51488
child 69605 a96320074298
equal deleted inserted replaced
69592:a80d8ec6c998 69593:3dda49e08b9d
   800   show "x \<nabla> y \<le> x \<squnion> y"
   800   show "x \<nabla> y \<le> x \<squnion> y"
   801     by (rule leI) simp_all
   801     by (rule leI) simp_all
   802 qed
   802 qed
   803 
   803 
   804 
   804 
   805 subsection \<open>Lattice on @{typ bool}\<close>
   805 subsection \<open>Lattice on \<^typ>\<open>bool\<close>\<close>
   806 
   806 
   807 instantiation bool :: boolean_algebra
   807 instantiation bool :: boolean_algebra
   808 begin
   808 begin
   809 
   809 
   810 definition bool_Compl_def [simp]: "uminus = Not"
   810 definition bool_Compl_def [simp]: "uminus = Not"
   827 
   827 
   828 lemma sup_boolE: "P \<squnion> Q \<Longrightarrow> (P \<Longrightarrow> R) \<Longrightarrow> (Q \<Longrightarrow> R) \<Longrightarrow> R"
   828 lemma sup_boolE: "P \<squnion> Q \<Longrightarrow> (P \<Longrightarrow> R) \<Longrightarrow> (Q \<Longrightarrow> R) \<Longrightarrow> R"
   829   by auto
   829   by auto
   830 
   830 
   831 
   831 
   832 subsection \<open>Lattice on @{typ "_ \<Rightarrow> _"}\<close>
   832 subsection \<open>Lattice on \<^typ>\<open>_ \<Rightarrow> _\<close>\<close>
   833 
   833 
   834 instantiation "fun" :: (type, semilattice_sup) semilattice_sup
   834 instantiation "fun" :: (type, semilattice_sup) semilattice_sup
   835 begin
   835 begin
   836 
   836 
   837 definition "f \<squnion> g = (\<lambda>x. f x \<squnion> g x)"
   837 definition "f \<squnion> g = (\<lambda>x. f x \<squnion> g x)"