src/HOL/Analysis/Connected.thy
changeset 68527 2f4e2aab190a
parent 68302 b6567edf3b3d
child 68607 67bb59e49834
equal deleted inserted replaced
68524:f5ca4c2157a5 68527:2f4e2aab190a
  2869   case False
  2869   case False
  2870   { fix x assume "x \<in> S"
  2870   { fix x assume "x \<in> S"
  2871     then obtain C where C: "x \<in> C" "C \<in> \<C>"
  2871     then obtain C where C: "x \<in> C" "C \<in> \<C>"
  2872       using \<open>S \<subseteq> \<Union>\<C>\<close> by blast
  2872       using \<open>S \<subseteq> \<Union>\<C>\<close> by blast
  2873     then obtain r where r: "r>0" "ball x (2*r) \<subseteq> C"
  2873     then obtain r where r: "r>0" "ball x (2*r) \<subseteq> C"
  2874       by (metis mult.commute mult_2_right not_le ope openE real_sum_of_halves zero_le_numeral zero_less_mult_iff)
  2874       by (metis mult.commute mult_2_right not_le ope openE field_sum_of_halves zero_le_numeral zero_less_mult_iff)
  2875     then have "\<exists>r C. r > 0 \<and> ball x (2*r) \<subseteq> C \<and> C \<in> \<C>"
  2875     then have "\<exists>r C. r > 0 \<and> ball x (2*r) \<subseteq> C \<and> C \<in> \<C>"
  2876       using C by blast
  2876       using C by blast
  2877   }
  2877   }
  2878   then obtain r where r: "\<And>x. x \<in> S \<Longrightarrow> r x > 0 \<and> (\<exists>C \<in> \<C>. ball x (2*r x) \<subseteq> C)"
  2878   then obtain r where r: "\<And>x. x \<in> S \<Longrightarrow> r x > 0 \<and> (\<exists>C \<in> \<C>. ball x (2*r x) \<subseteq> C)"
  2879     by metis
  2879     by metis