src/HOL/Analysis/Path_Connected.thy
changeset 66955 289f390c4e57
parent 66939 04678058308f
child 67237 1fe0ec14a90a
equal deleted inserted replaced
66954:0230af0f3c59 66955:289f390c4e57
  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)