src/HOL/Analysis/T1_Spaces.thy
changeset 78320 eb9a9690b8f5
parent 78093 cec875dcc59e
child 78336 6bae28577994
equal deleted inserted replaced
78284:9e0c035d026d 78320:eb9a9690b8f5
   449   unfolding Hausdorff_space_def
   449   unfolding Hausdorff_space_def
   450 proof clarify
   450 proof clarify
   451   fix x y
   451   fix x y
   452   assume x: "x \<in> topspace X" and y: "y \<in> topspace X" and "x \<noteq> y"
   452   assume x: "x \<in> topspace X" and y: "y \<in> topspace X" and "x \<noteq> y"
   453   then obtain U V where "openin Y U" "openin Y V" "f x \<in> U" "f y \<in> V" "disjnt U V"
   453   then obtain U V where "openin Y U" "openin Y V" "f x \<in> U" "f y \<in> V" "disjnt U V"
   454     using assms unfolding Hausdorff_space_def continuous_map_def by (meson inj_onD)
   454     using assms
       
   455     by (smt (verit, ccfv_threshold) Hausdorff_space_def continuous_map image_subset_iff inj_on_def)
   455   show "\<exists>U V. openin X U \<and> openin X V \<and> x \<in> U \<and> y \<in> V \<and> disjnt U V"
   456   show "\<exists>U V. openin X U \<and> openin X V \<and> x \<in> U \<and> y \<in> V \<and> disjnt U V"
   456   proof (intro exI conjI)
   457   proof (intro exI conjI)
   457     show "openin X {x \<in> topspace X. f x \<in> U}"
   458     show "openin X {x \<in> topspace X. f x \<in> U}"
   458       using \<open>openin Y U\<close> cmf continuous_map by fastforce
   459       using \<open>openin Y U\<close> cmf continuous_map by fastforce
   459     show "openin X {x \<in> topspace X. f x \<in> V}"
   460     show "openin X {x \<in> topspace X. f x \<in> V}"
   499   proof (intro allI impI)
   500   proof (intro allI impI)
   500     show "\<exists>U V. openin X U \<and> openin Y V \<and> x \<in> U \<and> y \<in> V \<and> U \<times> V \<subseteq> topspace (prod_topology X Y) - (\<lambda>x. (x, f x)) ` topspace X"
   501     show "\<exists>U V. openin X U \<and> openin Y V \<and> x \<in> U \<and> y \<in> V \<and> U \<times> V \<subseteq> topspace (prod_topology X Y) - (\<lambda>x. (x, f x)) ` topspace X"
   501       if "(x,y) \<in> topspace (prod_topology X Y) - (\<lambda>x. (x, f x)) ` topspace X"
   502       if "(x,y) \<in> topspace (prod_topology X Y) - (\<lambda>x. (x, f x)) ` topspace X"
   502       for x y
   503       for x y
   503     proof -
   504     proof -
   504       have "x \<in> topspace X" "y \<in> topspace Y" "y \<noteq> f x"
   505       have "x \<in> topspace X" and y: "y \<in> topspace Y" "y \<noteq> f x"
   505         using that by auto
   506         using that by auto
   506       moreover have "f x \<in> topspace Y"
   507       then have "f x \<in> topspace Y"
   507         by (meson \<open>x \<in> topspace X\<close> continuous_map_def f)
   508         using continuous_map_image_subset_topspace f by blast
   508       ultimately obtain U V where UV: "openin Y U" "openin Y V" "f x \<in> U" "y \<in> V" "disjnt U V"
   509       then obtain U V where UV: "openin Y U" "openin Y V" "f x \<in> U" "y \<in> V" "disjnt U V"
   509         using Y Hausdorff_space_def by metis
   510         using Y y Hausdorff_space_def by metis
   510       show ?thesis
   511       show ?thesis
   511       proof (intro exI conjI)
   512       proof (intro exI conjI)
   512         show "openin X {x \<in> topspace X. f x \<in> U}"
   513         show "openin X {x \<in> topspace X. f x \<in> U}"
   513           using \<open>openin Y U\<close> f openin_continuous_map_preimage by blast
   514           using \<open>openin Y U\<close> f openin_continuous_map_preimage by blast
   514         show "{x \<in> topspace X. f x \<in> U} \<times> V \<subseteq> topspace (prod_topology X Y) - (\<lambda>x. (x, f x)) ` topspace X"
   515         show "{x \<in> topspace X. f x \<in> U} \<times> V \<subseteq> topspace (prod_topology X Y) - (\<lambda>x. (x, f x)) ` topspace X"
   545   shows "continuous_map (subtopology Y S) X g"
   546   shows "continuous_map (subtopology Y S) X g"
   546 proof (rule continuous_map_from_subtopology_mono [OF _ \<open>S \<subseteq> f ` (topspace X)\<close>])
   547 proof (rule continuous_map_from_subtopology_mono [OF _ \<open>S \<subseteq> f ` (topspace X)\<close>])
   547   show "continuous_map (subtopology Y (f ` (topspace X))) X g"
   548   show "continuous_map (subtopology Y (f ` (topspace X))) X g"
   548     unfolding continuous_map_closedin
   549     unfolding continuous_map_closedin
   549   proof (intro conjI ballI allI impI)
   550   proof (intro conjI ballI allI impI)
   550     fix x
   551     show "g \<in> topspace (subtopology Y (f ` topspace X)) \<rightarrow> topspace X"
   551     assume "x \<in> topspace (subtopology Y (f ` topspace X))"
   552       using gf by auto
   552     then show "g x \<in> topspace X"
       
   553       by (auto simp: gf)
       
   554   next
   553   next
   555     fix C
   554     fix C
   556     assume C: "closedin X C"
   555     assume C: "closedin X C"
   557     show "closedin (subtopology Y (f ` topspace X))
   556     show "closedin (subtopology Y (f ` topspace X))
   558            {x \<in> topspace (subtopology Y (f ` topspace X)). g x \<in> C}"
   557            {x \<in> topspace (subtopology Y (f ` topspace X)). g x \<in> C}"