src/HOL/SupInf.thy
changeset 35216 7641e8d831d2
parent 35037 748f0bc3f7ca
child 35581 a25e51e2d64d
equal deleted inserted replaced
35215:a03462cbf86f 35216:7641e8d831d2
   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)