src/HOL/Analysis/Weierstrass_Theorems.thy
changeset 72380 becf08cb81e1
parent 72379 504fe7365820
child 76037 f3f1cf4711d7
equal deleted inserted replaced
72379:504fe7365820 72380:becf08cb81e1
  1196 
  1196 
  1197 proposition connected_open_polynomial_connected:
  1197 proposition connected_open_polynomial_connected:
  1198   fixes S :: "'a::euclidean_space set"
  1198   fixes S :: "'a::euclidean_space set"
  1199   assumes S: "open S" "connected S"
  1199   assumes S: "open S" "connected S"
  1200       and "x \<in> S" "y \<in> S"
  1200       and "x \<in> S" "y \<in> S"
  1201     obtains g where "polynomial_function g" "path_image g \<subseteq> S" "pathstart g = x" "pathfinish g = y"
  1201     shows "\<exists>g. polynomial_function g \<and> path_image g \<subseteq> S \<and> pathstart g = x \<and> pathfinish g = y"
  1202 proof -
  1202 proof -
  1203   have "path_connected S" using assms
  1203   have "path_connected S" using assms
  1204     by (simp add: connected_open_path_connected)
  1204     by (simp add: connected_open_path_connected)
  1205   with \<open>x \<in> S\<close> \<open>y \<in> S\<close> obtain p where p: "path p" "path_image p \<subseteq> S" "pathstart p = x" "pathfinish p = y"
  1205   with \<open>x \<in> S\<close> \<open>y \<in> S\<close> obtain p where p: "path p" "path_image p \<subseteq> S" "pathstart p = x" "pathfinish p = y"
  1206     by (force simp: path_connected_def)
  1206     by (force simp: path_connected_def)
  1222   then obtain e where "0 < e"and eb: "\<And>x. x \<in> path_image p \<Longrightarrow> ball x e \<subseteq> S"
  1222   then obtain e where "0 < e"and eb: "\<And>x. x \<in> path_image p \<Longrightarrow> ball x e \<subseteq> S"
  1223     by auto
  1223     by auto
  1224   obtain pf where "polynomial_function pf" and pf: "pathstart pf = pathstart p" "pathfinish pf = pathfinish p"
  1224   obtain pf where "polynomial_function pf" and pf: "pathstart pf = pathstart p" "pathfinish pf = pathfinish p"
  1225                    and pf_e: "\<And>t. t \<in> {0..1} \<Longrightarrow> norm(pf t - p t) < e"
  1225                    and pf_e: "\<And>t. t \<in> {0..1} \<Longrightarrow> norm(pf t - p t) < e"
  1226     using path_approx_polynomial_function [OF \<open>path p\<close> \<open>0 < e\<close>] by blast
  1226     using path_approx_polynomial_function [OF \<open>path p\<close> \<open>0 < e\<close>] by blast
  1227   show thesis 
  1227   show ?thesis 
  1228   proof
  1228   proof (intro exI conjI)
  1229     show "polynomial_function pf"
  1229     show "polynomial_function pf"
  1230       by fact
  1230       by fact
  1231     show "pathstart pf = x" "pathfinish pf = y"
  1231     show "pathstart pf = x" "pathfinish pf = y"
  1232       by (simp_all add: p pf)
  1232       by (simp_all add: p pf)
  1233     show "path_image pf \<subseteq> S"
  1233     show "path_image pf \<subseteq> S"