equal
deleted
inserted
replaced
247 fixes z :: real |
247 fixes z :: real |
248 assumes x: "X \<noteq> {}" |
248 assumes x: "X \<noteq> {}" |
249 and z: "\<And>x. x \<in> X \<Longrightarrow> z \<le> x" |
249 and z: "\<And>x. x \<in> X \<Longrightarrow> z \<le> x" |
250 shows "z \<le> Inf X" |
250 shows "z \<le> Inf X" |
251 proof - |
251 proof - |
252 have "Sup (uminus ` X) \<le> -z" using x z by (force intro: Sup_least) |
252 have "Sup (uminus ` X) \<le> -z" using x z by force |
253 hence "z \<le> - Sup (uminus ` X)" |
253 hence "z \<le> - Sup (uminus ` X)" |
254 by simp |
254 by simp |
255 thus ?thesis |
255 thus ?thesis |
256 by (auto simp add: Inf_real_def) |
256 by (auto simp add: Inf_real_def) |
257 qed |
257 qed |
304 shows "Inf (insert a X) = min a (Inf X)" |
304 shows "Inf (insert a X) = min a (Inf X)" |
305 proof (cases "a \<le> Inf X") |
305 proof (cases "a \<le> Inf X") |
306 case True |
306 case True |
307 thus ?thesis |
307 thus ?thesis |
308 by (simp add: min_def) |
308 by (simp add: min_def) |
309 (blast intro: Inf_eq_minimum Inf_lower real_le_refl real_le_trans z) |
309 (blast intro: Inf_eq_minimum real_le_refl real_le_trans z) |
310 next |
310 next |
311 case False |
311 case False |
312 hence 1:"Inf X < a" by simp |
312 hence 1:"Inf X < a" by simp |
313 have "Inf (insert a X) \<le> Inf X" |
313 have "Inf (insert a X) \<le> Inf X" |
314 apply (rule Inf_greatest) |
314 apply (rule Inf_greatest) |
439 shows "\<exists>c. a \<le> c & c \<le> b & (\<forall>x. a \<le> x & x < c --> P x) & |
439 shows "\<exists>c. a \<le> c & c \<le> b & (\<forall>x. a \<le> x & x < c --> P x) & |
440 (\<forall>d. (\<forall>x. a \<le> x & x < d --> P x) --> d \<le> c)" |
440 (\<forall>d. (\<forall>x. a \<le> x & x < d --> P x) --> d \<le> c)" |
441 proof (rule exI [where x = "Sup {d. \<forall>x. a \<le> x & x < d --> P x}"], auto) |
441 proof (rule exI [where x = "Sup {d. \<forall>x. a \<le> x & x < d --> P x}"], auto) |
442 show "a \<le> Sup {d. \<forall>c. a \<le> c \<and> c < d \<longrightarrow> P c}" |
442 show "a \<le> Sup {d. \<forall>c. a \<le> c \<and> c < d \<longrightarrow> P c}" |
443 by (rule SupInf.Sup_upper [where z=b], auto) |
443 by (rule SupInf.Sup_upper [where z=b], auto) |
444 (metis prems real_le_linear real_less_def) |
444 (metis `a < b` `\<not> P b` real_le_linear real_less_def) |
445 next |
445 next |
446 show "Sup {d. \<forall>c. a \<le> c \<and> c < d \<longrightarrow> P c} \<le> b" |
446 show "Sup {d. \<forall>c. a \<le> c \<and> c < d \<longrightarrow> P c} \<le> b" |
447 apply (rule SupInf.Sup_least) |
447 apply (rule SupInf.Sup_least) |
448 apply (auto simp add: ) |
448 apply (auto simp add: ) |
449 apply (metis less_le_not_le) |
449 apply (metis less_le_not_le) |