src/HOL/Probability/Borel_Space.thy
changeset 50245 dea9363887a6
parent 50244 de72bbe42190
child 50387 3d8863c41fe8
equal deleted inserted replaced
50244:de72bbe42190 50245:dea9363887a6
   460     by (rule sigma_sets.Compl)
   460     by (rule sigma_sets.Compl)
   461        (auto intro!: sigma_sets.Basic simp: `closed x`)
   461        (auto intro!: sigma_sets.Basic simp: `closed x`)
   462   finally show "x \<in> sigma_sets UNIV (Collect open)" by simp
   462   finally show "x \<in> sigma_sets UNIV (Collect open)" by simp
   463 qed simp_all
   463 qed simp_all
   464 
   464 
   465 lemma borel_eq_enumerated_basis:
   465 lemma borel_eq_countable_basis:
   466   fixes f::"nat\<Rightarrow>'a::topological_space set"
   466   fixes B::"'a::topological_space set set"
   467   assumes "topological_basis (range f)"
   467   assumes "countable B"
   468   shows "borel = sigma UNIV (range f)"
   468   assumes "topological_basis B"
       
   469   shows "borel = sigma UNIV B"
   469   unfolding borel_def
   470   unfolding borel_def
   470 proof (intro sigma_eqI sigma_sets_eqI, safe)
   471 proof (intro sigma_eqI sigma_sets_eqI, safe)
   471   interpret enumerates_basis proof qed (rule assms)
   472   interpret countable_basis using assms by unfold_locales
   472   fix x::"'a set" assume "open x"
   473   fix X::"'a set" assume "open X"
   473   from open_enumerable_basisE[OF this] guess N .
   474   from open_countable_basisE[OF this] guess B' . note B' = this
   474   hence x: "x = (\<Union>n. if n \<in> N then f n else {})" by (auto split: split_if_asm)
   475   show "X \<in> sigma_sets UNIV B"
   475   also have "\<dots> \<in> sigma_sets UNIV (range f)" by (auto intro!: sigma_sets.Empty Union)
   476   proof cases
   476   finally show "x \<in> sigma_sets UNIV (range f)" .
   477     assume "B' \<noteq> {}"
       
   478     thus "X \<in> sigma_sets UNIV B" using assms B'
       
   479       by (metis from_nat_into Union_image_eq countable_subset range_from_nat_into
       
   480         in_mono sigma_sets.Basic sigma_sets.Union)
       
   481   qed (simp add: sigma_sets.Empty B')
   477 next
   482 next
   478   fix n
   483   fix b assume "b \<in> B"
   479   have "open (f n)" by (rule topological_basis_open[OF assms]) simp
   484   hence "open b" by (rule topological_basis_open[OF assms(2)])
   480   thus "f n \<in> sigma_sets UNIV (Collect open)" by auto
   485   thus "b \<in> sigma_sets UNIV (Collect open)" by auto
   481 qed simp_all
   486 qed simp_all
   482 
   487 
   483 lemma borel_eq_enum_basis:
   488 lemma borel_eq_union_closed_basis:
   484   "borel = sigma UNIV (range enum_basis)"
   489   "borel = sigma UNIV union_closed_basis"
   485   by (rule borel_eq_enumerated_basis[OF enum_basis_basis])
   490   by (rule borel_eq_countable_basis[OF countable_union_closed_basis basis_union_closed_basis])
   486 
   491 
   487 lemma borel_measurable_halfspacesI:
   492 lemma borel_measurable_halfspacesI:
   488   fixes f :: "'a \<Rightarrow> 'c\<Colon>ordered_euclidean_space"
   493   fixes f :: "'a \<Rightarrow> 'c\<Colon>ordered_euclidean_space"
   489   assumes F: "borel = sigma UNIV (range F)"
   494   assumes F: "borel = sigma UNIV (range F)"
   490   and S_eq: "\<And>a i. S a i = f -` F (a,i) \<inter> space M" 
   495   and S_eq: "\<And>a i. S a i = f -` F (a,i) \<inter> space M"