diff -r 3529946fca19 -r b022c013b04b src/HOL/Analysis/Abstract_Topology.thy --- a/src/HOL/Analysis/Abstract_Topology.thy Wed Mar 19 22:18:52 2025 +0000 +++ b/src/HOL/Analysis/Abstract_Topology.thy Sun Mar 23 19:26:23 2025 +0000 @@ -1567,12 +1567,12 @@ by (smt (verit, ccfv_threshold) assms continuous_map image_eqI image_subset_iff in_closure_of mem_Collect_eq) qed -lemma continuous_map_subset_aux1: "continuous_map X Y f \ - (\S. f ` (X closure_of S) \ Y closure_of f ` S)" +lemma continuous_map_subset_aux1: + "continuous_map X Y f \ (\S. f \ (X closure_of S) \ Y closure_of f ` S)" using continuous_map_image_closure_subset by blast lemma continuous_map_subset_aux2: - assumes "\S. S \ topspace X \ f ` (X closure_of S) \ Y closure_of f ` S" + assumes "\S. S \ topspace X \ f \ (X closure_of S) \ Y closure_of f ` S" shows "continuous_map X Y f" unfolding continuous_map_closedin proof (intro conjI ballI allI impI) @@ -1598,18 +1598,18 @@ qed lemma continuous_map_eq_image_closure_subset: - "continuous_map X Y f \ (\S. f ` (X closure_of S) \ Y closure_of f ` S)" + "continuous_map X Y f \ (\S. f \ (X closure_of S) \ Y closure_of f ` S)" using continuous_map_subset_aux1 continuous_map_subset_aux2 by metis lemma continuous_map_eq_image_closure_subset_alt: - "continuous_map X Y f \ (\S. S \ topspace X \ f ` (X closure_of S) \ Y closure_of f ` S)" + "continuous_map X Y f \ (\S. S \ topspace X \ f \ (X closure_of S) \ Y closure_of f ` S)" using continuous_map_subset_aux1 continuous_map_subset_aux2 by metis lemma continuous_map_eq_image_closure_subset_gen: "continuous_map X Y f \ f \ topspace X \ topspace Y \ - (\S. f ` (X closure_of S) \ Y closure_of f ` S)" - by (meson Pi_iff continuous_map continuous_map_eq_image_closure_subset image_subset_iff) + (\S. f \ (X closure_of S) \ Y closure_of f ` S)" + by (metis continuous_map_eq_image_closure_subset continuous_map_funspace) lemma continuous_map_closure_preimage_subset: "continuous_map X Y f @@ -1697,16 +1697,18 @@ by (auto simp: elim!: continuous_map_eq) lemma continuous_map_in_subtopology: - "continuous_map X (subtopology X' S) f \ continuous_map X X' f \ f ` (topspace X) \ S" + "continuous_map X (subtopology X' S) f \ continuous_map X X' f \ f \ (topspace X) \ S" (is "?lhs = ?rhs") proof assume L: ?lhs show ?rhs proof - - have "\A. f ` (X closure_of A) \ subtopology X' S closure_of f ` A" - by (meson L continuous_map_image_closure_subset) + have "\A. f \ (X closure_of A) \ subtopology X' S closure_of f ` A" + by (metis L continuous_map_eq_image_closure_subset image_subset_iff_funcset) then show ?thesis - by (metis (no_types) closure_of_subset_subtopology closure_of_subtopology_subset closure_of_topspace continuous_map_eq_image_closure_subset order.trans) + by (metis closure_of_subset_subtopology closure_of_subtopology_subset + closure_of_topspace continuous_map_eq_image_closure_subset + image_subset_iff_funcset subset_trans) qed next assume R: ?rhs @@ -3963,7 +3965,7 @@ proof show "?lhs \ ?rhs" unfolding embedding_map_def - by (metis continuous_map_in_subtopology homeomorphic_imp_continuous_map inf_absorb2 subtopology_subtopology) + by (metis Int_subset_iff homeomorphic_imp_surjective_map inf_le1 subtopology_restrict subtopology_subtopology topspace_subtopology) qed (simp add: embedding_map_def inf.absorb_iff2 subtopology_subtopology) lemma injective_open_imp_embedding_map: @@ -4118,13 +4120,13 @@ using assms continuous_on_closed by blast lemma continuous_map_subtopology_eu [simp]: - "continuous_map (top_of_set S) (subtopology euclidean T) h \ continuous_on S h \ h ` S \ T" + "continuous_map (top_of_set S) (subtopology euclidean T) h \ continuous_on S h \ h \ S \ T" by (simp add: continuous_map_in_subtopology) lemma continuous_map_euclidean_top_of_set: assumes eq: "f -` S = UNIV" and cont: "continuous_on UNIV f" shows "continuous_map euclidean (top_of_set S) f" - by (simp add: cont continuous_map_in_subtopology eq image_subset_iff_subset_vimage) + using cont continuous_map_iff_continuous2 continuous_map_into_subtopology eq by blast subsection\<^marker>\tag unimportant\ \Half-global and completely global cases\ @@ -4166,25 +4168,14 @@ by (metis Int_commute closedin_closed continuous_on_closed_invariant) lemma continuous_open_preimage: - assumes contf: "continuous_on S f" and "open S" "open T" + assumes "continuous_on S f" and "open S" "open T" shows "open (S \ f -` T)" -proof- - obtain U where "open U" "(S \ f -` T) = S \ U" - using continuous_openin_preimage_gen[OF contf \open T\] - unfolding openin_open by auto - then show ?thesis - using open_Int[of S U, OF \open S\] by auto -qed + by (metis Int_commute assms continuous_on_open_vimage) lemma continuous_closed_preimage: - assumes contf: "continuous_on S f" and "closed S" "closed T" + assumes "continuous_on S f" and "closed S" "closed T" shows "closed (S \ f -` T)" -proof- - obtain U where "closed U" "(S \ f -` T) = S \ U" - using continuous_closedin_preimage[OF contf \closed T\] - unfolding closedin_closed by auto - then show ?thesis using closed_Int[of S U, OF \closed S\] by auto -qed + by (metis assms closed_vimage_Int inf_commute) lemma continuous_open_vimage: "open S \ (\x. continuous (at x) f) \ open (f -` S)" by (metis continuous_on_eq_continuous_within open_vimage)