equal
deleted
inserted
replaced
4862 |
4862 |
4863 lemma locallyE: |
4863 lemma locallyE: |
4864 assumes "locally P S" "openin (subtopology euclidean S) w" "x \<in> w" |
4864 assumes "locally P S" "openin (subtopology euclidean S) w" "x \<in> w" |
4865 obtains u v where "openin (subtopology euclidean S) u" |
4865 obtains u v where "openin (subtopology euclidean S) u" |
4866 "P v" "x \<in> u" "u \<subseteq> v" "v \<subseteq> w" |
4866 "P v" "x \<in> u" "u \<subseteq> v" "v \<subseteq> w" |
4867 using assms by (force simp: locally_def) |
4867 using assms unfolding locally_def by meson |
4868 |
4868 |
4869 lemma locally_mono: |
4869 lemma locally_mono: |
4870 assumes "locally P S" "\<And>t. P t \<Longrightarrow> Q t" |
4870 assumes "locally P S" "\<And>t. P t \<Longrightarrow> Q t" |
4871 shows "locally Q S" |
4871 shows "locally Q S" |
4872 by (metis assms locally_def) |
4872 by (metis assms locally_def) |
4979 have "f ` v \<subseteq> W" |
4979 have "f ` v \<subseteq> W" |
4980 using uv using Int_lower2 gw image_subsetI mem_Collect_eq subset_iff by auto |
4980 using uv using Int_lower2 gw image_subsetI mem_Collect_eq subset_iff by auto |
4981 have contvf: "continuous_on v f" |
4981 have contvf: "continuous_on v f" |
4982 using \<open>v \<subseteq> S\<close> continuous_on_subset f(3) by blast |
4982 using \<open>v \<subseteq> S\<close> continuous_on_subset f(3) by blast |
4983 have contvg: "continuous_on (f ` v) g" |
4983 have contvg: "continuous_on (f ` v) g" |
4984 using \<open>f ` v \<subseteq> W\<close> \<open>W \<subseteq> t\<close> continuous_on_subset g(3) by blast |
4984 using \<open>f ` v \<subseteq> W\<close> \<open>W \<subseteq> t\<close> continuous_on_subset [OF g(3)] by blast |
4985 have homv: "homeomorphism v (f ` v) f g" |
4985 have homv: "homeomorphism v (f ` v) f g" |
4986 using \<open>v \<subseteq> S\<close> \<open>W \<subseteq> t\<close> f |
4986 using \<open>v \<subseteq> S\<close> \<open>W \<subseteq> t\<close> f |
4987 apply (simp add: homeomorphism_def contvf contvg, auto) |
4987 apply (simp add: homeomorphism_def contvf contvg, auto) |
4988 by (metis f(1) rev_image_eqI rev_subsetD) |
4988 by (metis f(1) rev_image_eqI rev_subsetD) |
4989 have 1: "openin (subtopology euclidean t) (t \<inter> g -` u)" |
4989 have 1: "openin (subtopology euclidean t) (t \<inter> g -` u)" |
5901 proof - |
5901 proof - |
5902 from that \<open>?rhs\<close> [rule_format, of t x] |
5902 from that \<open>?rhs\<close> [rule_format, of t x] |
5903 obtain u where u: |
5903 obtain u where u: |
5904 "openin (subtopology euclidean S) u \<and> x \<in> u \<and> u \<subseteq> t \<and> |
5904 "openin (subtopology euclidean S) u \<and> x \<in> u \<and> u \<subseteq> t \<and> |
5905 (\<forall>y. y \<in> u \<longrightarrow> (\<exists>c. connected c \<and> c \<subseteq> t \<and> x \<in> c \<and> y \<in> c))" |
5905 (\<forall>y. y \<in> u \<longrightarrow> (\<exists>c. connected c \<and> c \<subseteq> t \<and> x \<in> c \<and> y \<in> c))" |
5906 by auto (meson subsetD in_components_subset) |
5906 using in_components_subset by auto |
5907 obtain F :: "'a set \<Rightarrow> 'a set \<Rightarrow> 'a" where |
5907 obtain F :: "'a set \<Rightarrow> 'a set \<Rightarrow> 'a" where |
5908 "\<forall>x y. (\<exists>z. z \<in> x \<and> y = connected_component_set x z) = (F x y \<in> x \<and> y = connected_component_set x (F x y))" |
5908 "\<forall>x y. (\<exists>z. z \<in> x \<and> y = connected_component_set x z) = (F x y \<in> x \<and> y = connected_component_set x (F x y))" |
5909 by moura |
5909 by moura |
5910 then have F: "F t c \<in> t \<and> c = connected_component_set t (F t c)" |
5910 then have F: "F t c \<in> t \<and> c = connected_component_set t (F t c)" |
5911 by (meson components_iff c) |
5911 by (meson components_iff c) |