equal
deleted
inserted
replaced
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)" |