906 by (simp add: lborel.emeasure_pair_measure_Times Basis_prod_def prod.union_disjoint |
906 by (simp add: lborel.emeasure_pair_measure_Times Basis_prod_def prod.union_disjoint |
907 prod.reindex ennreal_mult inner_diff_left prod_nonneg) |
907 prod.reindex ennreal_mult inner_diff_left prod_nonneg) |
908 qed (simp add: borel_prod[symmetric]) |
908 qed (simp add: borel_prod[symmetric]) |
909 |
909 |
910 (* FIXME: conversion in measurable prover *) |
910 (* FIXME: conversion in measurable prover *) |
911 lemma lborelD_Collect[measurable (raw)]: "{x\<in>space borel. P x} \<in> sets borel \<Longrightarrow> {x\<in>space lborel. P x} \<in> sets lborel" by simp |
911 lemma lborelD_Collect[measurable (raw)]: "{x\<in>space borel. P x} \<in> sets borel \<Longrightarrow> {x\<in>space lborel. P x} \<in> sets lborel" |
912 lemma lborelD[measurable (raw)]: "A \<in> sets borel \<Longrightarrow> A \<in> sets lborel" by simp |
912 by simp |
|
913 |
|
914 lemma lborelD[measurable (raw)]: "A \<in> sets borel \<Longrightarrow> A \<in> sets lborel" |
|
915 by simp |
913 |
916 |
914 lemma emeasure_bounded_finite: |
917 lemma emeasure_bounded_finite: |
915 assumes "bounded A" shows "emeasure lborel A < \<infinity>" |
918 assumes "bounded A" shows "emeasure lborel A < \<infinity>" |
916 proof - |
919 proof - |
917 from bounded_subset_cbox[OF \<open>bounded A\<close>] obtain a b where "A \<subseteq> cbox a b" |
920 obtain a b where "A \<subseteq> cbox a b" |
918 by auto |
921 by (meson bounded_subset_cbox_symmetric \<open>bounded A\<close>) |
919 then have "emeasure lborel A \<le> emeasure lborel (cbox a b)" |
922 then have "emeasure lborel A \<le> emeasure lborel (cbox a b)" |
920 by (intro emeasure_mono) auto |
923 by (intro emeasure_mono) auto |
921 then show ?thesis |
924 then show ?thesis |
922 by (auto simp: emeasure_lborel_cbox_eq prod_nonneg less_top[symmetric] top_unique split: if_split_asm) |
925 by (auto simp: emeasure_lborel_cbox_eq prod_nonneg less_top[symmetric] top_unique split: if_split_asm) |
923 qed |
926 qed |