src/HOL/Lattices.thy
changeset 61169 4de9ff3ea29a
parent 61076 bdc1e2f0a86a
child 61605 1bf7b186542e
equal deleted inserted replaced
61168:dcdfb6355a05 61169:4de9ff3ea29a
   143 
   143 
   144 locale semilattice_neutr_order = semilattice_neutr + semilattice_order
   144 locale semilattice_neutr_order = semilattice_neutr + semilattice_order
   145 begin
   145 begin
   146 
   146 
   147 sublocale ordering_top less_eq less 1
   147 sublocale ordering_top less_eq less 1
   148   by default (simp add: order_iff)
   148   by standard (simp add: order_iff)
   149 
   149 
   150 end
   150 end
   151 
   151 
   152 notation times (infixl "*" 70)
   152 notation times (infixl "*" 70)
   153 notation Groups.one ("1")
   153 notation Groups.one ("1")
   281   show "a \<sqinter> a = a"
   281   show "a \<sqinter> a = a"
   282     by (rule antisym) (auto simp add: le_inf_iff)
   282     by (rule antisym) (auto simp add: le_inf_iff)
   283 qed
   283 qed
   284 
   284 
   285 sublocale inf!: semilattice_order inf less_eq less
   285 sublocale inf!: semilattice_order inf less_eq less
   286   by default (auto simp add: le_iff_inf less_le)
   286   by standard (auto simp add: le_iff_inf less_le)
   287 
   287 
   288 lemma inf_assoc: "(x \<sqinter> y) \<sqinter> z = x \<sqinter> (y \<sqinter> z)"
   288 lemma inf_assoc: "(x \<sqinter> y) \<sqinter> z = x \<sqinter> (y \<sqinter> z)"
   289   by (fact inf.assoc)
   289   by (fact inf.assoc)
   290 
   290 
   291 lemma inf_commute: "(x \<sqinter> y) = (y \<sqinter> x)"
   291 lemma inf_commute: "(x \<sqinter> y) = (y \<sqinter> x)"
   326   show "a \<squnion> a = a"
   326   show "a \<squnion> a = a"
   327     by (rule antisym) (auto simp add: le_sup_iff)
   327     by (rule antisym) (auto simp add: le_sup_iff)
   328 qed
   328 qed
   329 
   329 
   330 sublocale sup!: semilattice_order sup greater_eq greater
   330 sublocale sup!: semilattice_order sup greater_eq greater
   331   by default (auto simp add: le_iff_sup sup.commute less_le)
   331   by standard (auto simp add: le_iff_sup sup.commute less_le)
   332 
   332 
   333 lemma sup_assoc: "(x \<squnion> y) \<squnion> z = x \<squnion> (y \<squnion> z)"
   333 lemma sup_assoc: "(x \<squnion> y) \<squnion> z = x \<squnion> (y \<squnion> z)"
   334   by (fact sup.assoc)
   334   by (fact sup.assoc)
   335 
   335 
   336 lemma sup_commute: "(x \<squnion> y) = (y \<squnion> x)"
   336 lemma sup_commute: "(x \<squnion> y) = (y \<squnion> x)"
   715 context linorder
   715 context linorder
   716 begin
   716 begin
   717 
   717 
   718 sublocale min!: semilattice_order min less_eq less
   718 sublocale min!: semilattice_order min less_eq less
   719   + max!: semilattice_order max greater_eq greater
   719   + max!: semilattice_order max greater_eq greater
   720   by default (auto simp add: min_def max_def)
   720   by standard (auto simp add: min_def max_def)
   721 
   721 
   722 lemma min_le_iff_disj:
   722 lemma min_le_iff_disj:
   723   "min x y \<le> z \<longleftrightarrow> x \<le> z \<or> y \<le> z"
   723   "min x y \<le> z \<longleftrightarrow> x \<le> z \<or> y \<le> z"
   724   unfolding min_def using linear by (auto intro: order_trans)
   724   unfolding min_def using linear by (auto intro: order_trans)
   725 
   725