src/HOL/Analysis/Continuous_Extension.thy
changeset 69518 bf88364c9e94
parent 69508 2a4c8a2a3f8e
child 69918 eddcc7c726f3
equal deleted inserted replaced
69517:dc20f278e8f3 69518:bf88364c9e94
   295           "\<And>x. x \<in> S \<Longrightarrow> f x = a"
   295           "\<And>x. x \<in> S \<Longrightarrow> f x = a"
   296           "\<And>x. x \<in> T \<Longrightarrow> f x = b"
   296           "\<And>x. x \<in> T \<Longrightarrow> f x = b"
   297   using assms by (auto intro: Urysohn_local [of UNIV S T a b])
   297   using assms by (auto intro: Urysohn_local [of UNIV S T a b])
   298 
   298 
   299 
   299 
   300 subsection\<open>The Dugundji Extension Theorem and Tietze Variants\<close>
   300 subsection\<open>Dugundji's Extension Theorem and Tietze Variants\<close>
   301 
   301 
   302 text%important\<open>J. Dugundji. An extension of Tietze's theorem. Pacific J. Math. Volume 1, Number 3 (1951), 353-367.
   302 text \<open>See \cite{dugundji}.\<close>
   303 https://projecteuclid.org/euclid.pjm/1103052106\<close>
       
   304 
   303 
   305 theorem Dugundji:
   304 theorem Dugundji:
   306   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::real_inner"
   305   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::real_inner"
   307   assumes "convex C" "C \<noteq> {}"
   306   assumes "convex C" "C \<noteq> {}"
   308       and cloin: "closedin (subtopology euclidean U) S"
   307       and cloin: "closedin (subtopology euclidean U) S"
   486   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   485   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   487                   "\<And>x. x \<in> U \<Longrightarrow> norm(g x) \<le> B"
   486                   "\<And>x. x \<in> U \<Longrightarrow> norm(g x) \<le> B"
   488   using assms
   487   using assms
   489 by (auto simp: image_subset_iff intro: Dugundji [of "cball 0 B" U S f])
   488 by (auto simp: image_subset_iff intro: Dugundji [of "cball 0 B" U S f])
   490 
   489 
   491 corollary Tietze_closed_interval:
   490 corollary%unimportant Tietze_closed_interval:
   492   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
   491   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
   493   assumes "continuous_on S f"
   492   assumes "continuous_on S f"
   494       and "closedin (subtopology euclidean U) S"
   493       and "closedin (subtopology euclidean U) S"
   495       and "cbox a b \<noteq> {}"
   494       and "cbox a b \<noteq> {}"
   496       and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b"
   495       and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b"
   497   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   496   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   498                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b"
   497                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b"
   499 apply (rule Dugundji [of "cbox a b" U S f])
   498 apply (rule Dugundji [of "cbox a b" U S f])
   500 using assms by auto
   499 using assms by auto
   501 
   500 
   502 corollary Tietze_closed_interval_1:
   501 corollary%unimportant Tietze_closed_interval_1:
   503   fixes f :: "'a::euclidean_space \<Rightarrow> real"
   502   fixes f :: "'a::euclidean_space \<Rightarrow> real"
   504   assumes "continuous_on S f"
   503   assumes "continuous_on S f"
   505       and "closedin (subtopology euclidean U) S"
   504       and "closedin (subtopology euclidean U) S"
   506       and "a \<le> b"
   505       and "a \<le> b"
   507       and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b"
   506       and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b"
   508   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   507   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   509                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b"
   508                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b"
   510 apply (rule Dugundji [of "cbox a b" U S f])
   509 apply (rule Dugundji [of "cbox a b" U S f])
   511 using assms by (auto simp: image_subset_iff)
   510 using assms by (auto simp: image_subset_iff)
   512 
   511 
   513 corollary Tietze_open_interval:
   512 corollary%unimportant Tietze_open_interval:
   514   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
   513   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
   515   assumes "continuous_on S f"
   514   assumes "continuous_on S f"
   516       and "closedin (subtopology euclidean U) S"
   515       and "closedin (subtopology euclidean U) S"
   517       and "box a b \<noteq> {}"
   516       and "box a b \<noteq> {}"
   518       and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b"
   517       and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b"
   519   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   518   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   520                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b"
   519                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b"
   521 apply (rule Dugundji [of "box a b" U S f])
   520 apply (rule Dugundji [of "box a b" U S f])
   522 using assms by auto
   521 using assms by auto
   523 
   522 
   524 corollary Tietze_open_interval_1:
   523 corollary%unimportant Tietze_open_interval_1:
   525   fixes f :: "'a::euclidean_space \<Rightarrow> real"
   524   fixes f :: "'a::euclidean_space \<Rightarrow> real"
   526   assumes "continuous_on S f"
   525   assumes "continuous_on S f"
   527       and "closedin (subtopology euclidean U) S"
   526       and "closedin (subtopology euclidean U) S"
   528       and "a < b"
   527       and "a < b"
   529       and no: "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b"
   528       and no: "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b"
   530   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   529   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   531                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b"
   530                   "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b"
   532 apply (rule Dugundji [of "box a b" U S f])
   531 apply (rule Dugundji [of "box a b" U S f])
   533 using assms by (auto simp: image_subset_iff)
   532 using assms by (auto simp: image_subset_iff)
   534 
   533 
   535 corollary Tietze_unbounded:
   534 corollary%unimportant Tietze_unbounded:
   536   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::real_inner"
   535   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::real_inner"
   537   assumes "continuous_on S f"
   536   assumes "continuous_on S f"
   538       and "closedin (subtopology euclidean U) S"
   537       and "closedin (subtopology euclidean U) S"
   539   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   538   obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x"
   540 apply (rule Dugundji [of UNIV U S f])
   539 apply (rule Dugundji [of UNIV U S f])