diff -r fc571ebb04e1 -r 6eb0725503fc src/HOL/Probability/Sigma_Algebra.thy --- a/src/HOL/Probability/Sigma_Algebra.thy Thu Nov 13 14:40:06 2014 +0100 +++ b/src/HOL/Probability/Sigma_Algebra.thy Thu Nov 13 17:19:52 2014 +0100 @@ -1732,6 +1732,12 @@ lemma measure_of_subset: "M \ Pow \ \ M' \ M \ sets (measure_of \ M' \) \ sets (measure_of \ M \')" by (auto intro!: sigma_sets_subseteq) +lemma emeasure_sigma: "emeasure (sigma \ A) = (\x. 0)" + unfolding measure_of_def emeasure_def + by (subst Abs_measure_inverse) + (auto simp: measure_space_def positive_def countably_additive_def + intro!: sigma_algebra_sigma_sets sigma_algebra_trivial) + lemma sigma_sets_mono'': assumes "A \ sigma_sets C D" assumes "B \ D" @@ -1839,10 +1845,6 @@ by (simp add: measure_measure) qed -lemma emeasure_sigma: "A \ Pow \ \ emeasure (sigma \ A) = (\_. 0)" - using measure_space_0[of A \] - by (simp add: measure_of_def emeasure_def Abs_measure_inverse) - lemma sigma_eqI: assumes [simp]: "M \ Pow \" "N \ Pow \" "sigma_sets \ M = sigma_sets \ N" shows "sigma \ M = sigma \ N" @@ -2115,22 +2117,30 @@ unfolding measurable_def by auto qed -lemma measurable_compose_countable: - assumes f: "\i::'i::countable. (\x. f i x) \ measurable M N" and g: "g \ measurable M (count_space UNIV)" +lemma measurable_compose_countable': + assumes f: "\i. i \ I \ (\x. f i x) \ measurable M N" + and g: "g \ measurable M (count_space I)" and I: "countable I" shows "(\x. f (g x) x) \ measurable M N" unfolding measurable_def proof safe fix x assume "x \ space M" then show "f (g x) x \ space N" - using f[THEN measurable_space] g[THEN measurable_space] by auto + using measurable_space[OF f] g[THEN measurable_space] by auto next fix A assume A: "A \ sets N" - have "(\x. f (g x) x) -` A \ space M = (\i. (g -` {i} \ space M) \ (f i -` A \ space M))" - by auto - also have "\ \ sets M" using f[THEN measurable_sets, OF A] g[THEN measurable_sets] - by (auto intro!: sets.countable_UN measurable_sets) + have "(\x. f (g x) x) -` A \ space M = (\i\I. (g -` {i} \ space M) \ (f i -` A \ space M))" + using measurable_space[OF g] by auto + also have "\ \ sets M" using f[THEN measurable_sets, OF _ A] g[THEN measurable_sets] + apply (auto intro!: sets.countable_UN' measurable_sets I) + apply (rule sets.Int) + apply auto + done finally show "(\x. f (g x) x) -` A \ space M \ sets M" . qed +lemma measurable_compose_countable: + assumes f: "\i::'i::countable. (\x. f i x) \ measurable M N" and g: "g \ measurable M (count_space UNIV)" + shows "(\x. f (g x) x) \ measurable M N" + by (rule measurable_compose_countable'[OF assms]) auto lemma measurable_count_space_const: "(\x. c) \ measurable M (count_space UNIV)" by (simp add: measurable_const) @@ -2241,6 +2251,10 @@ lemma in_Sup_sigma: "m \ M \ A \ sets m \ A \ sets (Sup_sigma M)" unfolding sets_Sup_sigma by auto +lemma SUP_sigma_cong: + assumes *: "\i. i \ I \ sets (M i) = sets (N i)" shows "sets (\\<^sub>\ i\I. M i) = sets (\\<^sub>\ i\I. N i)" + using * sets_eq_imp_space_eq[OF *] by (simp add: Sup_sigma_def) + lemma sets_Sup_in_sets: assumes "M \ {}" assumes "\m. m \ M \ space m = space N" @@ -2290,6 +2304,9 @@ using sigma_sets_vimage_commute[of f X "space M" "sets M"] unfolding sets_vimage_algebra sets.sigma_sets_eq by simp +lemma vimage_algebra_cong: "sets M = sets N \ sets (vimage_algebra X f M) = sets (vimage_algebra X f N)" + by (simp add: sets_vimage_algebra) + lemma in_vimage_algebra: "A \ sets M \ f -` A \ X \ sets (vimage_algebra X f M)" by (auto simp: vimage_algebra_def) @@ -2318,6 +2335,34 @@ finally show "g -` A \ space N \ sets N" . qed (insert g, auto) +lemma vimage_algebra_vimage_algebra_eq: + assumes *: "f \ X \ Y" "g \ Y \ space M" + shows "vimage_algebra X f (vimage_algebra Y g M) = vimage_algebra X (\x. g (f x)) M" + (is "?VV = ?V") +proof (rule measure_eqI) + have "(\x. g (f x)) \ X \ space M" "\A. A \ f -` Y \ X = A \ X" + using * by auto + with * show "sets ?VV = sets ?V" + by (simp add: sets_vimage_algebra2 ex_simps[symmetric] vimage_comp comp_def del: ex_simps) +qed (simp add: vimage_algebra_def emeasure_sigma) + +lemma sets_vimage_Sup_eq: + assumes *: "M \ {}" "\m. m \ M \ f \ X \ space m" + shows "sets (vimage_algebra X f (Sup_sigma M)) = sets (\\<^sub>\ m \ M. vimage_algebra X f m)" + (is "?IS = ?SI") +proof + show "?IS \ ?SI" + by (intro sets_image_in_sets measurable_Sup_sigma2 measurable_Sup_sigma1) + (auto simp: space_Sup_sigma measurable_vimage_algebra1 *) + { fix m assume "m \ M" + moreover then have "f \ X \ space (Sup_sigma M)" "f \ X \ space m" + using * by (auto simp: space_Sup_sigma) + ultimately have "f \ measurable (vimage_algebra X f (Sup_sigma M)) m" + by (auto simp add: measurable_def sets_vimage_algebra2 intro: in_Sup_sigma) } + then show "?SI \ ?IS" + by (auto intro!: sets_image_in_sets sets_Sup_in_sets del: subsetI simp: *) +qed + subsubsection {* Restricted Space Sigma Algebra *} definition restrict_space where @@ -2358,6 +2403,27 @@ by auto qed auto +lemma sets_restrict_space_cong: "sets M = sets N \ sets (restrict_space M \) = sets (restrict_space N \)" + by (simp add: sets_restrict_space) + +lemma restrict_space_eq_vimage_algebra: + "\ \ space M \ sets (restrict_space M \) = sets (vimage_algebra \ (\x. x) M)" + unfolding restrict_space_def + apply (subst sets_measure_of) + apply (auto simp add: image_subset_iff dest: sets.sets_into_space) [] + apply (auto simp add: sets_vimage_algebra intro!: arg_cong2[where f=sigma_sets]) + done + +lemma sets_Collect_restrict_space_iff: + assumes "S \ sets M" + shows "{x\space (restrict_space M S). P x} \ sets (restrict_space M S) \ {x\space M. x \ S \ P x} \ sets M" +proof - + have "{x\S. P x} = {x\space M. x \ S \ P x}" + using sets.sets_into_space[OF assms] by auto + then show ?thesis + by (subst sets_restrict_space_iff) (auto simp add: space_restrict_space assms) +qed + lemma measurable_restrict_space1: assumes \: "\ \ space M \ sets M" and f: "f \ measurable M N" shows "f \ measurable (restrict_space M \) N"