equal
deleted
inserted
replaced
170 ultimately show "(x, y) \<in> (\<Union>(a, b)\<in>{X \<in> A \<times> B. fst X \<times> snd X \<subseteq> S}. a \<times> b)" |
170 ultimately show "(x, y) \<in> (\<Union>(a, b)\<in>{X \<in> A \<times> B. fst X \<times> snd X \<subseteq> S}. a \<times> b)" |
171 by (intro UN_I[of "(A0, B0)"]) auto |
171 by (intro UN_I[of "(A0, B0)"]) auto |
172 qed auto |
172 qed auto |
173 qed (metis A B topological_basis_open open_Times) |
173 qed (metis A B topological_basis_open open_Times) |
174 |
174 |
175 instance prod :: (countable_basis_space, countable_basis_space) countable_basis_space |
175 instance prod :: (second_countable_topology, second_countable_topology) second_countable_topology |
176 proof |
176 proof |
177 obtain A :: "'a set set" where "countable A" "topological_basis A" |
177 obtain A :: "'a set set" where "countable A" "topological_basis A" |
178 using ex_countable_basis by auto |
178 using ex_countable_basis by auto |
179 moreover |
179 moreover |
180 obtain B :: "'b set set" where "countable B" "topological_basis B" |
180 obtain B :: "'b set set" where "countable B" "topological_basis B" |
182 ultimately show "\<exists>B::('a \<times> 'b) set set. countable B \<and> topological_basis B" |
182 ultimately show "\<exists>B::('a \<times> 'b) set set. countable B \<and> topological_basis B" |
183 by (auto intro!: exI[of _ "(\<lambda>(a, b). a \<times> b) ` (A \<times> B)"] topological_basis_prod) |
183 by (auto intro!: exI[of _ "(\<lambda>(a, b). a \<times> b) ` (A \<times> B)"] topological_basis_prod) |
184 qed |
184 qed |
185 |
185 |
186 lemma borel_measurable_Pair[measurable (raw)]: |
186 lemma borel_measurable_Pair[measurable (raw)]: |
187 fixes f :: "'a \<Rightarrow> 'b::countable_basis_space" and g :: "'a \<Rightarrow> 'c::countable_basis_space" |
187 fixes f :: "'a \<Rightarrow> 'b::second_countable_topology" and g :: "'a \<Rightarrow> 'c::second_countable_topology" |
188 assumes f[measurable]: "f \<in> borel_measurable M" |
188 assumes f[measurable]: "f \<in> borel_measurable M" |
189 assumes g[measurable]: "g \<in> borel_measurable M" |
189 assumes g[measurable]: "g \<in> borel_measurable M" |
190 shows "(\<lambda>x. (f x, g x)) \<in> borel_measurable M" |
190 shows "(\<lambda>x. (f x, g x)) \<in> borel_measurable M" |
191 proof (subst borel_eq_countable_basis) |
191 proof (subst borel_eq_countable_basis) |
192 let ?B = "SOME B::'b set set. countable B \<and> topological_basis B" |
192 let ?B = "SOME B::'b set set. countable B \<and> topological_basis B" |
255 using closed_vimage_snd |
255 using closed_vimage_snd |
256 by (auto simp: continuous_on_closed closed_closedin vimage_def) |
256 by (auto simp: continuous_on_closed closed_closedin vimage_def) |
257 qed |
257 qed |
258 |
258 |
259 lemma borel_measurable_continuous_Pair: |
259 lemma borel_measurable_continuous_Pair: |
260 fixes f :: "'a \<Rightarrow> 'b::countable_basis_space" and g :: "'a \<Rightarrow> 'c::countable_basis_space" |
260 fixes f :: "'a \<Rightarrow> 'b::second_countable_topology" and g :: "'a \<Rightarrow> 'c::second_countable_topology" |
261 assumes [measurable]: "f \<in> borel_measurable M" |
261 assumes [measurable]: "f \<in> borel_measurable M" |
262 assumes [measurable]: "g \<in> borel_measurable M" |
262 assumes [measurable]: "g \<in> borel_measurable M" |
263 assumes H: "continuous_on UNIV (\<lambda>x. H (fst x) (snd x))" |
263 assumes H: "continuous_on UNIV (\<lambda>x. H (fst x) (snd x))" |
264 shows "(\<lambda>x. H (f x) (g x)) \<in> borel_measurable M" |
264 shows "(\<lambda>x. H (f x) (g x)) \<in> borel_measurable M" |
265 proof - |
265 proof - |
269 qed |
269 qed |
270 |
270 |
271 section "Borel spaces on euclidean spaces" |
271 section "Borel spaces on euclidean spaces" |
272 |
272 |
273 lemma borel_measurable_inner[measurable (raw)]: |
273 lemma borel_measurable_inner[measurable (raw)]: |
274 fixes f g :: "'a \<Rightarrow> 'b::{countable_basis_space, real_inner}" |
274 fixes f g :: "'a \<Rightarrow> 'b::{second_countable_topology, real_inner}" |
275 assumes "f \<in> borel_measurable M" |
275 assumes "f \<in> borel_measurable M" |
276 assumes "g \<in> borel_measurable M" |
276 assumes "g \<in> borel_measurable M" |
277 shows "(\<lambda>x. f x \<bullet> g x) \<in> borel_measurable M" |
277 shows "(\<lambda>x. f x \<bullet> g x) \<in> borel_measurable M" |
278 using assms |
278 using assms |
279 by (rule borel_measurable_continuous_Pair) |
279 by (rule borel_measurable_continuous_Pair) |