equal
deleted
inserted
replaced
891 by (metis compactE_image) |
891 by (metis compactE_image) |
892 from \<open>finite D\<close> have "bounded (\<Union>x\<in>D. ball x 1)" |
892 from \<open>finite D\<close> have "bounded (\<Union>x\<in>D. ball x 1)" |
893 by (simp add: bounded_UN) |
893 by (simp add: bounded_UN) |
894 then show "bounded U" using \<open>U \<subseteq> (\<Union>x\<in>D. ball x 1)\<close> |
894 then show "bounded U" using \<open>U \<subseteq> (\<Union>x\<in>D. ball x 1)\<close> |
895 by (rule bounded_subset) |
895 by (rule bounded_subset) |
|
896 qed |
|
897 |
|
898 lemma continuous_on_compact_bound: |
|
899 assumes "compact A" "continuous_on A f" |
|
900 obtains B where "B \<ge> 0" "\<And>x. x \<in> A \<Longrightarrow> norm (f x) \<le> B" |
|
901 proof - |
|
902 have "compact (f ` A)" by (metis assms compact_continuous_image) |
|
903 then obtain B where "\<forall>x\<in>A. norm (f x) \<le> B" |
|
904 by (auto dest!: compact_imp_bounded simp: bounded_iff) |
|
905 hence "max B 0 \<ge> 0" and "\<forall>x\<in>A. norm (f x) \<le> max B 0" by auto |
|
906 thus ?thesis using that by blast |
896 qed |
907 qed |
897 |
908 |
898 lemma closure_Int_ball_not_empty: |
909 lemma closure_Int_ball_not_empty: |
899 assumes "S \<subseteq> closure T" "x \<in> S" "r > 0" |
910 assumes "S \<subseteq> closure T" "x \<in> S" "r > 0" |
900 shows "T \<inter> ball x r \<noteq> {}" |
911 shows "T \<inter> ball x r \<noteq> {}" |