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 |