equal
deleted
inserted
replaced
253 and "\<And>y. P y \<Longrightarrow> x \<le> y" |
253 and "\<And>y. P y \<Longrightarrow> x \<le> y" |
254 and "\<And>x. P x \<Longrightarrow> \<forall>y. P y \<longrightarrow> x \<le> y \<Longrightarrow> Q x" |
254 and "\<And>x. P x \<Longrightarrow> \<forall>y. P y \<longrightarrow> x \<le> y \<Longrightarrow> Q x" |
255 shows "Q (Least P)" |
255 shows "Q (Least P)" |
256 unfolding Least_def by (rule theI2) |
256 unfolding Least_def by (rule theI2) |
257 (blast intro: assms antisym)+ |
257 (blast intro: assms antisym)+ |
258 |
|
259 |
258 |
260 text \<open>Dual order\<close> |
259 text \<open>Dual order\<close> |
261 |
260 |
262 lemma dual_order: |
261 lemma dual_order: |
263 "class.order (op \<ge>) (op >)" |
262 "class.order (op \<ge>) (op >)" |
1169 by (simp add:min_def) |
1168 by (simp add:min_def) |
1170 |
1169 |
1171 lemma max_absorb1: "(y::'a::order) \<le> x \<Longrightarrow> max x y = x" |
1170 lemma max_absorb1: "(y::'a::order) \<le> x \<Longrightarrow> max x y = x" |
1172 by (simp add: max_def) |
1171 by (simp add: max_def) |
1173 |
1172 |
|
1173 lemma max_min_same [simp]: |
|
1174 fixes x y :: "'a :: linorder" |
|
1175 shows "max x (min x y) = x" "max (min x y) x = x" "max (min x y) y = y" "max y (min x y) = y" |
|
1176 by(auto simp add: max_def min_def) |
1174 |
1177 |
1175 subsection \<open>(Unique) top and bottom elements\<close> |
1178 subsection \<open>(Unique) top and bottom elements\<close> |
1176 |
1179 |
1177 class bot = |
1180 class bot = |
1178 fixes bot :: 'a ("\<bottom>") |
1181 fixes bot :: 'a ("\<bottom>") |