src/HOL/Probability/Borel_Space.thy
changeset 50881 ae630bab13da
parent 50526 899c9c4e4a4c
child 50882 a382bf90867e
equal deleted inserted replaced
50880:b22ecedde1c7 50881:ae630bab13da
   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)