src/HOL/Lattices.thy
changeset 70490 c42a0a0a9a8d
parent 69605 a96320074298
child 71013 bfa1017b4553
equal deleted inserted replaced
70489:12d1e6e2c1d0 70490:c42a0a0a9a8d
   691 lemma inf_compl_bot_right [simp]: "inf x (inf y (- x)) = bot"
   691 lemma inf_compl_bot_right [simp]: "inf x (inf y (- x)) = bot"
   692   by (subst inf_left_commute) simp
   692   by (subst inf_left_commute) simp
   693 
   693 
   694 end
   694 end
   695 
   695 
       
   696 locale boolean_algebra_cancel
       
   697 begin
       
   698 
       
   699 lemma sup1: "(A::'a::semilattice_sup) \<equiv> sup k a \<Longrightarrow> sup A b \<equiv> sup k (sup a b)"
       
   700   by (simp only: ac_simps)
       
   701 
       
   702 lemma sup2: "(B::'a::semilattice_sup) \<equiv> sup k b \<Longrightarrow> sup a B \<equiv> sup k (sup a b)"
       
   703   by (simp only: ac_simps)
       
   704 
       
   705 lemma sup0: "(a::'a::bounded_semilattice_sup_bot) \<equiv> sup a bot"
       
   706   by simp
       
   707 
       
   708 lemma inf1: "(A::'a::semilattice_inf) \<equiv> inf k a \<Longrightarrow> inf A b \<equiv> inf k (inf a b)"
       
   709   by (simp only: ac_simps)
       
   710 
       
   711 lemma inf2: "(B::'a::semilattice_inf) \<equiv> inf k b \<Longrightarrow> inf a B \<equiv> inf k (inf a b)"
       
   712   by (simp only: ac_simps)
       
   713 
       
   714 lemma inf0: "(a::'a::bounded_semilattice_inf_top) \<equiv> inf a top"
       
   715   by simp
       
   716 
       
   717 end
       
   718 
   696 ML_file \<open>Tools/boolean_algebra_cancel.ML\<close>
   719 ML_file \<open>Tools/boolean_algebra_cancel.ML\<close>
   697 
   720 
   698 simproc_setup boolean_algebra_cancel_sup ("sup a b::'a::boolean_algebra") =
   721 simproc_setup boolean_algebra_cancel_sup ("sup a b::'a::boolean_algebra") =
   699   \<open>fn phi => fn ss => try Boolean_Algebra_Cancel.cancel_sup_conv\<close>
   722   \<open>fn phi => fn ss => try Boolean_Algebra_Cancel.cancel_sup_conv\<close>
   700 
   723