480 and "\<And>x. x \<in> S \<Longrightarrow> norm(f x) \<le> B" |
480 and "\<And>x. x \<in> S \<Longrightarrow> norm(f x) \<le> B" |
481 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
481 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
482 "\<And>x. x \<in> U \<Longrightarrow> norm(g x) \<le> B" |
482 "\<And>x. x \<in> U \<Longrightarrow> norm(g x) \<le> B" |
483 using assms by (auto simp: image_subset_iff intro: Dugundji [of "cball 0 B" U S f]) |
483 using assms by (auto simp: image_subset_iff intro: Dugundji [of "cball 0 B" U S f]) |
484 |
484 |
485 corollary%unimportant Tietze_closed_interval: |
485 corollary\<^marker>\<open>tag unimportant\<close> Tietze_closed_interval: |
486 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> 'b::euclidean_space" |
486 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> 'b::euclidean_space" |
487 assumes "continuous_on S f" |
487 assumes "continuous_on S f" |
488 and "closedin (top_of_set U) S" |
488 and "closedin (top_of_set U) S" |
489 and "cbox a b \<noteq> {}" |
489 and "cbox a b \<noteq> {}" |
490 and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b" |
490 and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b" |
491 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
491 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
492 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b" |
492 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b" |
493 apply (rule Dugundji [of "cbox a b" U S f]) |
493 apply (rule Dugundji [of "cbox a b" U S f]) |
494 using assms by auto |
494 using assms by auto |
495 |
495 |
496 corollary%unimportant Tietze_closed_interval_1: |
496 corollary\<^marker>\<open>tag unimportant\<close> Tietze_closed_interval_1: |
497 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> real" |
497 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> real" |
498 assumes "continuous_on S f" |
498 assumes "continuous_on S f" |
499 and "closedin (top_of_set U) S" |
499 and "closedin (top_of_set U) S" |
500 and "a \<le> b" |
500 and "a \<le> b" |
501 and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b" |
501 and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> cbox a b" |
502 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
502 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
503 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b" |
503 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> cbox a b" |
504 apply (rule Dugundji [of "cbox a b" U S f]) |
504 apply (rule Dugundji [of "cbox a b" U S f]) |
505 using assms by (auto simp: image_subset_iff) |
505 using assms by (auto simp: image_subset_iff) |
506 |
506 |
507 corollary%unimportant Tietze_open_interval: |
507 corollary\<^marker>\<open>tag unimportant\<close> Tietze_open_interval: |
508 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> 'b::euclidean_space" |
508 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> 'b::euclidean_space" |
509 assumes "continuous_on S f" |
509 assumes "continuous_on S f" |
510 and "closedin (top_of_set U) S" |
510 and "closedin (top_of_set U) S" |
511 and "box a b \<noteq> {}" |
511 and "box a b \<noteq> {}" |
512 and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b" |
512 and "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b" |
513 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
513 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
514 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b" |
514 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b" |
515 apply (rule Dugundji [of "box a b" U S f]) |
515 apply (rule Dugundji [of "box a b" U S f]) |
516 using assms by auto |
516 using assms by auto |
517 |
517 |
518 corollary%unimportant Tietze_open_interval_1: |
518 corollary\<^marker>\<open>tag unimportant\<close> Tietze_open_interval_1: |
519 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> real" |
519 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> real" |
520 assumes "continuous_on S f" |
520 assumes "continuous_on S f" |
521 and "closedin (top_of_set U) S" |
521 and "closedin (top_of_set U) S" |
522 and "a < b" |
522 and "a < b" |
523 and no: "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b" |
523 and no: "\<And>x. x \<in> S \<Longrightarrow> f x \<in> box a b" |
524 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
524 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
525 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b" |
525 "\<And>x. x \<in> U \<Longrightarrow> g x \<in> box a b" |
526 apply (rule Dugundji [of "box a b" U S f]) |
526 apply (rule Dugundji [of "box a b" U S f]) |
527 using assms by (auto simp: image_subset_iff) |
527 using assms by (auto simp: image_subset_iff) |
528 |
528 |
529 corollary%unimportant Tietze_unbounded: |
529 corollary\<^marker>\<open>tag unimportant\<close> Tietze_unbounded: |
530 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> 'b::real_inner" |
530 fixes f :: "'a::{metric_space,second_countable_topology} \<Rightarrow> 'b::real_inner" |
531 assumes "continuous_on S f" |
531 assumes "continuous_on S f" |
532 and "closedin (top_of_set U) S" |
532 and "closedin (top_of_set U) S" |
533 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
533 obtains g where "continuous_on U g" "\<And>x. x \<in> S \<Longrightarrow> g x = f x" |
534 apply (rule Dugundji [of UNIV U S f]) |
534 apply (rule Dugundji [of UNIV U S f]) |