src/HOL/Topological_Spaces.thy
changeset 64845 e5d4bc2016a6
parent 64773 223b2ebdda79
child 64969 a6953714799d
equal deleted inserted replaced
64844:bb70dc05cd38 64845:e5d4bc2016a6
  2100   assumes "compact S" "S \<subseteq> \<Union>\<T>" "\<And>B. B \<in> \<T> \<Longrightarrow> open B"
  2100   assumes "compact S" "S \<subseteq> \<Union>\<T>" "\<And>B. B \<in> \<T> \<Longrightarrow> open B"
  2101   obtains \<T>' where "\<T>' \<subseteq> \<T>" "finite \<T>'" "S \<subseteq> \<Union>\<T>'"
  2101   obtains \<T>' where "\<T>' \<subseteq> \<T>" "finite \<T>'" "S \<subseteq> \<Union>\<T>'"
  2102   by (meson assms compact_eq_heine_borel)
  2102   by (meson assms compact_eq_heine_borel)
  2103 
  2103 
  2104 lemma compactE_image:
  2104 lemma compactE_image:
  2105   assumes "compact s"
  2105   assumes "compact S"
  2106     and "\<forall>t\<in>C. open (f t)"
  2106     and "\<forall>T\<in>C. open (f T)"
  2107     and "s \<subseteq> (\<Union>c\<in>C. f c)"
  2107     and "S \<subseteq> (\<Union>c\<in>C. f c)"
  2108   obtains C' where "C' \<subseteq> C" and "finite C'" and "s \<subseteq> (\<Union>c\<in>C'. f c)"
  2108   obtains C' where "C' \<subseteq> C" and "finite C'" and "S \<subseteq> (\<Union>c\<in>C'. f c)"
  2109   using assms unfolding ball_simps [symmetric]
  2109   using assms unfolding ball_simps [symmetric]
  2110   by (metis (lifting) finite_subset_image compact_eq_heine_borel[of s])
  2110   by (metis (lifting) finite_subset_image compact_eq_heine_borel[of S])
  2111 
  2111 
  2112 lemma compact_Int_closed [intro]:
  2112 lemma compact_Int_closed [intro]:
  2113   assumes "compact s"
  2113   assumes "compact S"
  2114     and "closed t"
  2114     and "closed T"
  2115   shows "compact (s \<inter> t)"
  2115   shows "compact (S \<inter> T)"
  2116 proof (rule compactI)
  2116 proof (rule compactI)
  2117   fix C
  2117   fix C
  2118   assume C: "\<forall>c\<in>C. open c"
  2118   assume C: "\<forall>c\<in>C. open c"
  2119   assume cover: "s \<inter> t \<subseteq> \<Union>C"
  2119   assume cover: "S \<inter> T \<subseteq> \<Union>C"
  2120   from C \<open>closed t\<close> have "\<forall>c\<in>C \<union> {- t}. open c"
  2120   from C \<open>closed T\<close> have "\<forall>c\<in>C \<union> {- T}. open c"
  2121     by auto
  2121     by auto
  2122   moreover from cover have "s \<subseteq> \<Union>(C \<union> {- t})"
  2122   moreover from cover have "S \<subseteq> \<Union>(C \<union> {- T})"
  2123     by auto
  2123     by auto
  2124   ultimately have "\<exists>D\<subseteq>C \<union> {- t}. finite D \<and> s \<subseteq> \<Union>D"
  2124   ultimately have "\<exists>D\<subseteq>C \<union> {- T}. finite D \<and> S \<subseteq> \<Union>D"
  2125     using \<open>compact s\<close> unfolding compact_eq_heine_borel by auto
  2125     using \<open>compact S\<close> unfolding compact_eq_heine_borel by auto
  2126   then obtain D where "D \<subseteq> C \<union> {- t} \<and> finite D \<and> s \<subseteq> \<Union>D" ..
  2126   then obtain D where "D \<subseteq> C \<union> {- T} \<and> finite D \<and> S \<subseteq> \<Union>D" ..
  2127   then show "\<exists>D\<subseteq>C. finite D \<and> s \<inter> t \<subseteq> \<Union>D"
  2127   then show "\<exists>D\<subseteq>C. finite D \<and> S \<inter> T \<subseteq> \<Union>D"
  2128     by (intro exI[of _ "D - {-t}"]) auto
  2128     by (intro exI[of _ "D - {-T}"]) auto
  2129 qed
  2129 qed
       
  2130 
       
  2131 lemma compact_diff: "\<lbrakk>compact S; open T\<rbrakk> \<Longrightarrow> compact(S - T)"
       
  2132   by (simp add: Diff_eq compact_Int_closed open_closed)
  2130 
  2133 
  2131 lemma inj_setminus: "inj_on uminus (A::'a set set)"
  2134 lemma inj_setminus: "inj_on uminus (A::'a set set)"
  2132   by (auto simp: inj_on_def)
  2135   by (auto simp: inj_on_def)
  2133 
  2136 
  2134 
  2137