src/HOL/Analysis/Further_Topology.thy
changeset 73932 fd21b4a93043
parent 72245 cbe7aa1c2bdc
child 76874 d6b02d54dbf8
equal deleted inserted replaced
73866:66bff50bc5f1 73932:fd21b4a93043
  2038   moreover
  2038   moreover
  2039   have eq: "f ` U = h ` (k \<circ> f \<circ> h \<circ> k) ` U"
  2039   have eq: "f ` U = h ` (k \<circ> f \<circ> h \<circ> k) ` U"
  2040     unfolding image_comp [symmetric] using \<open>U \<subseteq> S\<close> fim
  2040     unfolding image_comp [symmetric] using \<open>U \<subseteq> S\<close> fim
  2041     by (metis homeomorphism_image2 homeomorphism_of_subsets homkh subset_image_iff)
  2041     by (metis homeomorphism_image2 homeomorphism_of_subsets homkh subset_image_iff)
  2042   ultimately show ?thesis
  2042   ultimately show ?thesis
  2043     by (metis (no_types, hide_lams) homeomorphism_imp_open_map homhk image_comp open_openin subtopology_UNIV)
  2043     by (metis (no_types, opaque_lifting) homeomorphism_imp_open_map homhk image_comp open_openin subtopology_UNIV)
  2044 qed
  2044 qed
  2045 
  2045 
  2046 lemma inv_of_domain_ss1:
  2046 lemma inv_of_domain_ss1:
  2047   fixes f :: "'a \<Rightarrow> 'a::euclidean_space"
  2047   fixes f :: "'a \<Rightarrow> 'a::euclidean_space"
  2048   assumes contf: "continuous_on U f" and injf: "inj_on f U" and fim: "f ` U \<subseteq> S"
  2048   assumes contf: "continuous_on U f" and injf: "inj_on f U" and fim: "f ` U \<subseteq> S"
  5481     using homeomorphic_ball01_UNIV homeomorphic_def by blast
  5481     using homeomorphic_ball01_UNIV homeomorphic_def by blast
  5482   then have "continuous_on (ball 0 1) (g \<circ> h)"
  5482   then have "continuous_on (ball 0 1) (g \<circ> h)"
  5483     by (meson contg continuous_on_compose continuous_on_subset homeomorphism_cont1 top_greatest)
  5483     by (meson contg continuous_on_compose continuous_on_subset homeomorphism_cont1 top_greatest)
  5484   then obtain j where contj: "continuous_on (ball 0 1) j"
  5484   then obtain j where contj: "continuous_on (ball 0 1) j"
  5485                   and j: "\<And>z. z \<in> ball 0 1 \<Longrightarrow> exp(j z) = (g \<circ> h) z"
  5485                   and j: "\<And>z. z \<in> ball 0 1 \<Longrightarrow> exp(j z) = (g \<circ> h) z"
  5486     by (metis (mono_tags, hide_lams) continuous_logarithm_on_ball comp_apply non0)
  5486     by (metis (mono_tags, opaque_lifting) continuous_logarithm_on_ball comp_apply non0)
  5487   have [simp]: "\<And>x. x \<in> S \<Longrightarrow> h (k x) = x"
  5487   have [simp]: "\<And>x. x \<in> S \<Longrightarrow> h (k x) = x"
  5488     using hk homeomorphism_apply2 by blast
  5488     using hk homeomorphism_apply2 by blast
  5489   have "\<exists>\<zeta>. continuous_on S \<zeta>\<and> (\<forall>x\<in>S. f x = exp (\<zeta> x))"
  5489   have "\<exists>\<zeta>. continuous_on S \<zeta>\<and> (\<forall>x\<in>S. f x = exp (\<zeta> x))"
  5490   proof (intro exI conjI ballI)
  5490   proof (intro exI conjI ballI)
  5491     show "continuous_on S (j \<circ> k)"
  5491     show "continuous_on S (j \<circ> k)"