187 show ?thesis |
187 show ?thesis |
188 proof (safe intro!: bexI[of _ "space M - A n"]) |
188 proof (safe intro!: bexI[of _ "space M - A n"]) |
189 fix B assume "B \<in> sets M" "B \<subseteq> space M - A n" |
189 fix B assume "B \<in> sets M" "B \<subseteq> space M - A n" |
190 from B[OF this] show "-e < ?d B" . |
190 from B[OF this] show "-e < ?d B" . |
191 next |
191 next |
192 show "space M - A n \<in> sets M" by (rule compl_sets) fact |
192 show "space M - A n \<in> sets M" by (rule sets.compl_sets) fact |
193 next |
193 next |
194 show "?d (space M) \<le> ?d (space M - A n)" |
194 show "?d (space M) \<le> ?d (space M - A n)" |
195 proof (induct n) |
195 proof (induct n) |
196 fix n assume "?d (space M) \<le> ?d (space M - A n)" |
196 fix n assume "?d (space M) \<le> ?d (space M - A n)" |
197 also have "\<dots> \<le> ?d (space M - A (Suc n))" |
197 also have "\<dots> \<le> ?d (space M - A (Suc n))" |
198 using A_in_sets sets_into_space dA_mono[of n] finite_measure_compl M'.finite_measure_compl |
198 using A_in_sets sets.sets_into_space dA_mono[of n] finite_measure_compl M'.finite_measure_compl |
199 by (simp del: A_simps add: sets_eq sets_eq_imp_space_eq[OF sets_eq]) |
199 by (simp del: A_simps add: sets_eq sets_eq_imp_space_eq[OF sets_eq]) |
200 finally show "?d (space M) \<le> ?d (space M - A (Suc n))" . |
200 finally show "?d (space M) \<le> ?d (space M - A (Suc n))" . |
201 qed simp |
201 qed simp |
202 qed |
202 qed |
203 next |
203 next |
239 then have "finite_measure (density M (indicator S))" "0 < 1 / real (Suc n)" |
239 then have "finite_measure (density M (indicator S))" "0 < 1 / real (Suc n)" |
240 "finite_measure (density N (indicator S))" "sets (density N (indicator S)) = sets (density M (indicator S))" |
240 "finite_measure (density N (indicator S))" "sets (density N (indicator S)) = sets (density M (indicator S))" |
241 by (auto simp: finite_measure_restricted N.finite_measure_restricted sets_eq) |
241 by (auto simp: finite_measure_restricted N.finite_measure_restricted sets_eq) |
242 from finite_measure.Radon_Nikodym_aux_epsilon[OF this] guess X .. note X = this |
242 from finite_measure.Radon_Nikodym_aux_epsilon[OF this] guess X .. note X = this |
243 with S have "?P (S \<inter> X) S n" |
243 with S have "?P (S \<inter> X) S n" |
244 by (simp add: measure_restricted sets_eq Int) (metis inf_absorb2) |
244 by (simp add: measure_restricted sets_eq sets.Int) (metis inf_absorb2) |
245 hence "\<exists>A. ?P A S n" .. } |
245 hence "\<exists>A. ?P A S n" .. } |
246 note Ex_P = this |
246 note Ex_P = this |
247 def A \<equiv> "nat_rec (space M) (\<lambda>n A. SOME B. ?P B A n)" |
247 def A \<equiv> "nat_rec (space M) (\<lambda>n A. SOME B. ?P B A n)" |
248 have A_Suc: "\<And>n. A (Suc n) = (SOME B. ?P B (A n) n)" by (simp add: A_def) |
248 have A_Suc: "\<And>n. A (Suc n) = (SOME B. ?P B (A n) n)" by (simp add: A_def) |
249 have A_0[simp]: "A 0 = space M" unfolding A_def by simp |
249 have A_0[simp]: "A 0 = space M" unfolding A_def by simp |
307 have "?A \<in> sets M" using f g unfolding G_def by auto |
307 have "?A \<in> sets M" using f g unfolding G_def by auto |
308 fix A assume "A \<in> sets M" |
308 fix A assume "A \<in> sets M" |
309 hence sets: "?A \<inter> A \<in> sets M" "(space M - ?A) \<inter> A \<in> sets M" using `?A \<in> sets M` by auto |
309 hence sets: "?A \<inter> A \<in> sets M" "(space M - ?A) \<inter> A \<in> sets M" using `?A \<in> sets M` by auto |
310 hence sets': "?A \<inter> A \<in> sets N" "(space M - ?A) \<inter> A \<in> sets N" by (auto simp: sets_eq) |
310 hence sets': "?A \<inter> A \<in> sets N" "(space M - ?A) \<inter> A \<in> sets N" by (auto simp: sets_eq) |
311 have union: "((?A \<inter> A) \<union> ((space M - ?A) \<inter> A)) = A" |
311 have union: "((?A \<inter> A) \<union> ((space M - ?A) \<inter> A)) = A" |
312 using sets_into_space[OF `A \<in> sets M`] by auto |
312 using sets.sets_into_space[OF `A \<in> sets M`] by auto |
313 have "\<And>x. x \<in> space M \<Longrightarrow> max (g x) (f x) * indicator A x = |
313 have "\<And>x. x \<in> space M \<Longrightarrow> max (g x) (f x) * indicator A x = |
314 g x * indicator (?A \<inter> A) x + f x * indicator ((space M - ?A) \<inter> A) x" |
314 g x * indicator (?A \<inter> A) x + f x * indicator ((space M - ?A) \<inter> A) x" |
315 by (auto simp: indicator_def max_def) |
315 by (auto simp: indicator_def max_def) |
316 hence "(\<integral>\<^isup>+x. max (g x) (f x) * indicator A x \<partial>M) = |
316 hence "(\<integral>\<^isup>+x. max (g x) (f x) * indicator A x \<partial>M) = |
317 (\<integral>\<^isup>+x. g x * indicator (?A \<inter> A) x \<partial>M) + |
317 (\<integral>\<^isup>+x. g x * indicator (?A \<inter> A) x \<partial>M) + |
349 note SUP_in_G = this |
349 note SUP_in_G = this |
350 let ?y = "SUP g : G. integral\<^isup>P M g" |
350 let ?y = "SUP g : G. integral\<^isup>P M g" |
351 have y_le: "?y \<le> N (space M)" unfolding G_def |
351 have y_le: "?y \<le> N (space M)" unfolding G_def |
352 proof (safe intro!: SUP_least) |
352 proof (safe intro!: SUP_least) |
353 fix g assume "\<forall>A\<in>sets M. (\<integral>\<^isup>+x. g x * indicator A x \<partial>M) \<le> N A" |
353 fix g assume "\<forall>A\<in>sets M. (\<integral>\<^isup>+x. g x * indicator A x \<partial>M) \<le> N A" |
354 from this[THEN bspec, OF top] show "integral\<^isup>P M g \<le> N (space M)" |
354 from this[THEN bspec, OF sets.top] show "integral\<^isup>P M g \<le> N (space M)" |
355 by (simp cong: positive_integral_cong) |
355 by (simp cong: positive_integral_cong) |
356 qed |
356 qed |
357 from SUPR_countable_SUPR[OF `G \<noteq> {}`, of "integral\<^isup>P M"] guess ys .. note ys = this |
357 from SUPR_countable_SUPR[OF `G \<noteq> {}`, of "integral\<^isup>P M"] guess ys .. note ys = this |
358 then have "\<forall>n. \<exists>g. g\<in>G \<and> integral\<^isup>P M g = ys n" |
358 then have "\<forall>n. \<exists>g. g\<in>G \<and> integral\<^isup>P M g = ys n" |
359 proof safe |
359 proof safe |
505 then have "0 < emeasure M A0" using emeasure_nonneg[of M A0] by auto |
505 then have "0 < emeasure M A0" using emeasure_nonneg[of M A0] by auto |
506 hence "0 < b * emeasure M A0" using b by (auto simp: ereal_zero_less_0_iff) |
506 hence "0 < b * emeasure M A0" using b by (auto simp: ereal_zero_less_0_iff) |
507 with int_f_finite have "?y + 0 < integral\<^isup>P M f + b * emeasure M A0" unfolding int_f_eq_y |
507 with int_f_finite have "?y + 0 < integral\<^isup>P M f + b * emeasure M A0" unfolding int_f_eq_y |
508 using `f \<in> G` |
508 using `f \<in> G` |
509 by (intro ereal_add_strict_mono) (auto intro!: SUP_upper2 positive_integral_positive) |
509 by (intro ereal_add_strict_mono) (auto intro!: SUP_upper2 positive_integral_positive) |
510 also have "\<dots> = integral\<^isup>P M ?f0" using f0_eq[OF top] `A0 \<in> sets M` sets_into_space |
510 also have "\<dots> = integral\<^isup>P M ?f0" using f0_eq[OF sets.top] `A0 \<in> sets M` sets.sets_into_space |
511 by (simp cong: positive_integral_cong) |
511 by (simp cong: positive_integral_cong) |
512 finally have "?y < integral\<^isup>P M ?f0" by simp |
512 finally have "?y < integral\<^isup>P M ?f0" by simp |
513 moreover from `?f0 \<in> G` have "integral\<^isup>P M ?f0 \<le> ?y" by (auto intro!: SUP_upper) |
513 moreover from `?f0 \<in> G` have "integral\<^isup>P M ?f0 \<le> ?y" by (auto intro!: SUP_upper) |
514 ultimately show False by auto |
514 ultimately show False by auto |
515 qed |
515 qed |
534 proof - |
534 proof - |
535 let ?Q = "{Q\<in>sets M. N Q \<noteq> \<infinity>}" |
535 let ?Q = "{Q\<in>sets M. N Q \<noteq> \<infinity>}" |
536 let ?a = "SUP Q:?Q. emeasure M Q" |
536 let ?a = "SUP Q:?Q. emeasure M Q" |
537 have "{} \<in> ?Q" by auto |
537 have "{} \<in> ?Q" by auto |
538 then have Q_not_empty: "?Q \<noteq> {}" by blast |
538 then have Q_not_empty: "?Q \<noteq> {}" by blast |
539 have "?a \<le> emeasure M (space M)" using sets_into_space |
539 have "?a \<le> emeasure M (space M)" using sets.sets_into_space |
540 by (auto intro!: SUP_least emeasure_mono) |
540 by (auto intro!: SUP_least emeasure_mono) |
541 then have "?a \<noteq> \<infinity>" using finite_emeasure_space |
541 then have "?a \<noteq> \<infinity>" using finite_emeasure_space |
542 by auto |
542 by auto |
543 from SUPR_countable_SUPR[OF Q_not_empty, of "emeasure M"] |
543 from SUPR_countable_SUPR[OF Q_not_empty, of "emeasure M"] |
544 obtain Q'' where "range Q'' \<subseteq> emeasure M ` ?Q" and a: "?a = (SUP i::nat. Q'' i)" |
544 obtain Q'' where "range Q'' \<subseteq> emeasure M ` ?Q" and a: "?a = (SUP i::nat. Q'' i)" |
599 unfolding absolutely_continuous_def by auto |
599 unfolding absolutely_continuous_def by auto |
600 ultimately show ?thesis by simp |
600 ultimately show ?thesis by simp |
601 next |
601 next |
602 assume "emeasure M A \<noteq> 0" with * have "N A \<noteq> \<infinity>" using emeasure_nonneg[of M A] by auto |
602 assume "emeasure M A \<noteq> 0" with * have "N A \<noteq> \<infinity>" using emeasure_nonneg[of M A] by auto |
603 with A have "emeasure M ?O_0 + emeasure M A = emeasure M (?O_0 \<union> A)" |
603 with A have "emeasure M ?O_0 + emeasure M A = emeasure M (?O_0 \<union> A)" |
604 using Q' by (auto intro!: plus_emeasure countable_UN) |
604 using Q' by (auto intro!: plus_emeasure sets.countable_UN) |
605 also have "\<dots> = (SUP i. emeasure M (?O i \<union> A))" |
605 also have "\<dots> = (SUP i. emeasure M (?O i \<union> A))" |
606 proof (rule SUP_emeasure_incseq[of "\<lambda>i. ?O i \<union> A", symmetric, simplified]) |
606 proof (rule SUP_emeasure_incseq[of "\<lambda>i. ?O i \<union> A", symmetric, simplified]) |
607 show "range (\<lambda>i. ?O i \<union> A) \<subseteq> sets M" |
607 show "range (\<lambda>i. ?O i \<union> A) \<subseteq> sets M" |
608 using `N A \<noteq> \<infinity>` O_sets A by auto |
608 using `N A \<noteq> \<infinity>` O_sets A by auto |
609 qed (fastforce intro!: incseq_SucI) |
609 qed (fastforce intro!: incseq_SucI) |
710 have "(\<integral>\<^isup>+x. ?f x * indicator A x \<partial>M) = (\<integral>\<^isup>+x. (\<Sum>i. f i x * indicator (Q i \<inter> A) x) + \<infinity> * indicator (Q0 \<inter> A) x \<partial>M)" |
710 have "(\<integral>\<^isup>+x. ?f x * indicator A x \<partial>M) = (\<integral>\<^isup>+x. (\<Sum>i. f i x * indicator (Q i \<inter> A) x) + \<infinity> * indicator (Q0 \<inter> A) x \<partial>M)" |
711 using borel by (intro positive_integral_cong) (auto simp: indicator_def) |
711 using borel by (intro positive_integral_cong) (auto simp: indicator_def) |
712 also have "\<dots> = (\<integral>\<^isup>+x. (\<Sum>i. f i x * indicator (Q i \<inter> A) x) \<partial>M) + \<infinity> * emeasure M (Q0 \<inter> A)" |
712 also have "\<dots> = (\<integral>\<^isup>+x. (\<Sum>i. f i x * indicator (Q i \<inter> A) x) \<partial>M) + \<infinity> * emeasure M (Q0 \<inter> A)" |
713 using borel Qi Q0(1) `A \<in> sets M` |
713 using borel Qi Q0(1) `A \<in> sets M` |
714 by (subst positive_integral_add) (auto simp del: ereal_infty_mult |
714 by (subst positive_integral_add) (auto simp del: ereal_infty_mult |
715 simp add: positive_integral_cmult_indicator Int intro!: suminf_0_le) |
715 simp add: positive_integral_cmult_indicator sets.Int intro!: suminf_0_le) |
716 also have "\<dots> = (\<Sum>i. N (Q i \<inter> A)) + \<infinity> * emeasure M (Q0 \<inter> A)" |
716 also have "\<dots> = (\<Sum>i. N (Q i \<inter> A)) + \<infinity> * emeasure M (Q0 \<inter> A)" |
717 by (subst integral_eq[OF `A \<in> sets M`], subst positive_integral_suminf) auto |
717 by (subst integral_eq[OF `A \<in> sets M`], subst positive_integral_suminf) auto |
718 finally have "(\<integral>\<^isup>+x. ?f x * indicator A x \<partial>M) = (\<Sum>i. N (Q i \<inter> A)) + \<infinity> * emeasure M (Q0 \<inter> A)" . |
718 finally have "(\<integral>\<^isup>+x. ?f x * indicator A x \<partial>M) = (\<Sum>i. N (Q i \<inter> A)) + \<infinity> * emeasure M (Q0 \<inter> A)" . |
719 moreover have "(\<Sum>i. N (Q i \<inter> A)) = N ((\<Union>i. Q i) \<inter> A)" |
719 moreover have "(\<Sum>i. N (Q i \<inter> A)) = N ((\<Union>i. Q i) \<inter> A)" |
720 using Q Q_sets `A \<in> sets M` |
720 using Q Q_sets `A \<in> sets M` |
725 from in_Q0[OF this] show ?thesis by auto |
725 from in_Q0[OF this] show ?thesis by auto |
726 qed |
726 qed |
727 moreover have "Q0 \<inter> A \<in> sets M" "((\<Union>i. Q i) \<inter> A) \<in> sets M" |
727 moreover have "Q0 \<inter> A \<in> sets M" "((\<Union>i. Q i) \<inter> A) \<in> sets M" |
728 using Q_sets `A \<in> sets M` Q0(1) by auto |
728 using Q_sets `A \<in> sets M` Q0(1) by auto |
729 moreover have "((\<Union>i. Q i) \<inter> A) \<union> (Q0 \<inter> A) = A" "((\<Union>i. Q i) \<inter> A) \<inter> (Q0 \<inter> A) = {}" |
729 moreover have "((\<Union>i. Q i) \<inter> A) \<union> (Q0 \<inter> A) = A" "((\<Union>i. Q i) \<inter> A) \<inter> (Q0 \<inter> A) = {}" |
730 using `A \<in> sets M` sets_into_space Q0 by auto |
730 using `A \<in> sets M` sets.sets_into_space Q0 by auto |
731 ultimately have "N A = (\<integral>\<^isup>+x. ?f x * indicator A x \<partial>M)" |
731 ultimately have "N A = (\<integral>\<^isup>+x. ?f x * indicator A x \<partial>M)" |
732 using plus_emeasure[of "(\<Union>i. Q i) \<inter> A" N "Q0 \<inter> A"] by (simp add: sets_eq) |
732 using plus_emeasure[of "(\<Union>i. Q i) \<inter> A" N "Q0 \<inter> A"] by (simp add: sets_eq) |
733 with `A \<in> sets M` borel Q Q0(1) show "emeasure (density M ?f) A = N A" |
733 with `A \<in> sets M` borel Q Q0(1) show "emeasure (density M ?f) A = N A" |
734 by (auto simp: subset_eq emeasure_density) |
734 by (auto simp: subset_eq emeasure_density) |
735 qed (simp add: sets_eq) |
735 qed (simp add: sets_eq) |
753 have "absolutely_continuous ?MT N" "sets N = sets ?MT" |
753 have "absolutely_continuous ?MT N" "sets N = sets ?MT" |
754 proof (unfold absolutely_continuous_def, safe) |
754 proof (unfold absolutely_continuous_def, safe) |
755 fix A assume "A \<in> null_sets ?MT" |
755 fix A assume "A \<in> null_sets ?MT" |
756 with borel have "A \<in> sets M" "AE x in M. x \<in> A \<longrightarrow> h x \<le> 0" |
756 with borel have "A \<in> sets M" "AE x in M. x \<in> A \<longrightarrow> h x \<le> 0" |
757 by (auto simp add: null_sets_density_iff) |
757 by (auto simp add: null_sets_density_iff) |
758 with pos sets_into_space have "AE x in M. x \<notin> A" |
758 with pos sets.sets_into_space have "AE x in M. x \<notin> A" |
759 by (elim eventually_elim1) (auto simp: not_le[symmetric]) |
759 by (elim eventually_elim1) (auto simp: not_le[symmetric]) |
760 then have "A \<in> null_sets M" |
760 then have "A \<in> null_sets M" |
761 using `A \<in> sets M` by (simp add: AE_iff_null_sets) |
761 using `A \<in> sets M` by (simp add: AE_iff_null_sets) |
762 with ac show "A \<in> null_sets N" |
762 with ac show "A \<in> null_sets N" |
763 by (auto simp: absolutely_continuous_def) |
763 by (auto simp: absolutely_continuous_def) |
782 next |
782 next |
783 let ?P = "\<lambda>f A. \<integral>\<^isup>+ x. f x * indicator A x \<partial>M" |
783 let ?P = "\<lambda>f A. \<integral>\<^isup>+ x. f x * indicator A x \<partial>M" |
784 assume "density M f = density M g" |
784 assume "density M f = density M g" |
785 with borel have eq: "\<forall>A\<in>sets M. ?P f A = ?P g A" |
785 with borel have eq: "\<forall>A\<in>sets M. ?P f A = ?P g A" |
786 by (simp add: emeasure_density[symmetric]) |
786 by (simp add: emeasure_density[symmetric]) |
787 from this[THEN bspec, OF top] fin |
787 from this[THEN bspec, OF sets.top] fin |
788 have g_fin: "integral\<^isup>P M g \<noteq> \<infinity>" by (simp cong: positive_integral_cong) |
788 have g_fin: "integral\<^isup>P M g \<noteq> \<infinity>" by (simp cong: positive_integral_cong) |
789 { fix f g assume borel: "f \<in> borel_measurable M" "g \<in> borel_measurable M" |
789 { fix f g assume borel: "f \<in> borel_measurable M" "g \<in> borel_measurable M" |
790 and pos: "AE x in M. 0 \<le> f x" "AE x in M. 0 \<le> g x" |
790 and pos: "AE x in M. 0 \<le> f x" "AE x in M. 0 \<le> g x" |
791 and g_fin: "integral\<^isup>P M g \<noteq> \<infinity>" and eq: "\<forall>A\<in>sets M. ?P f A = ?P g A" |
791 and g_fin: "integral\<^isup>P M g \<noteq> \<infinity>" and eq: "\<forall>A\<in>sets M. ?P f A = ?P g A" |
792 let ?N = "{x\<in>space M. g x < f x}" |
792 let ?N = "{x\<in>space M. g x < f x}" |
896 by (intro finite_measureI) (simp cong: positive_integral_cong emeasure_density add: fin) |
896 by (intro finite_measureI) (simp cong: positive_integral_cong emeasure_density add: fin) |
897 let ?fM = "density M f" |
897 let ?fM = "density M f" |
898 let ?f'M = "density M f'" |
898 let ?f'M = "density M f'" |
899 { fix A assume "A \<in> sets M" |
899 { fix A assume "A \<in> sets M" |
900 then have "{x \<in> space M. h x * indicator A x \<noteq> 0} = A" |
900 then have "{x \<in> space M. h x * indicator A x \<noteq> 0} = A" |
901 using pos(1) sets_into_space by (force simp: indicator_def) |
901 using pos(1) sets.sets_into_space by (force simp: indicator_def) |
902 then have "(\<integral>\<^isup>+x. h x * indicator A x \<partial>M) = 0 \<longleftrightarrow> A \<in> null_sets M" |
902 then have "(\<integral>\<^isup>+x. h x * indicator A x \<partial>M) = 0 \<longleftrightarrow> A \<in> null_sets M" |
903 using h_borel `A \<in> sets M` h_nn by (subst positive_integral_0_iff) auto } |
903 using h_borel `A \<in> sets M` h_nn by (subst positive_integral_0_iff) auto } |
904 note h_null_sets = this |
904 note h_null_sets = this |
905 { fix A assume "A \<in> sets M" |
905 { fix A assume "A \<in> sets M" |
906 have "(\<integral>\<^isup>+x. f x * (h x * indicator A x) \<partial>M) = (\<integral>\<^isup>+x. h x * indicator A x \<partial>?fM)" |
906 have "(\<integral>\<^isup>+x. f x * (h x * indicator A x) \<partial>M) = (\<integral>\<^isup>+x. h x * indicator A x \<partial>?fM)" |
992 assume AE: "AE x in M. f x \<noteq> \<infinity>" |
992 assume AE: "AE x in M. f x \<noteq> \<infinity>" |
993 from sigma_finite guess Q .. note Q = this |
993 from sigma_finite guess Q .. note Q = this |
994 def A \<equiv> "\<lambda>i. f -` (case i of 0 \<Rightarrow> {\<infinity>} | Suc n \<Rightarrow> {.. ereal(of_nat (Suc n))}) \<inter> space M" |
994 def A \<equiv> "\<lambda>i. f -` (case i of 0 \<Rightarrow> {\<infinity>} | Suc n \<Rightarrow> {.. ereal(of_nat (Suc n))}) \<inter> space M" |
995 { fix i j have "A i \<inter> Q j \<in> sets M" |
995 { fix i j have "A i \<inter> Q j \<in> sets M" |
996 unfolding A_def using f Q |
996 unfolding A_def using f Q |
997 apply (rule_tac Int) |
997 apply (rule_tac sets.Int) |
998 by (cases i) (auto intro: measurable_sets[OF f(1)]) } |
998 by (cases i) (auto intro: measurable_sets[OF f(1)]) } |
999 note A_in_sets = this |
999 note A_in_sets = this |
1000 let ?A = "\<lambda>n. case prod_decode n of (i,j) \<Rightarrow> A i \<inter> Q j" |
1000 let ?A = "\<lambda>n. case prod_decode n of (i,j) \<Rightarrow> A i \<inter> Q j" |
1001 show "sigma_finite_measure ?N" |
1001 show "sigma_finite_measure ?N" |
1002 proof (default, intro exI conjI subsetI allI) |
1002 proof (default, intro exI conjI subsetI allI) |
1131 proof (rule RN_deriv_unique) |
1131 proof (rule RN_deriv_unique) |
1132 have [simp]: "sets N = sets M" by fact |
1132 have [simp]: "sets N = sets M" by fact |
1133 note sets_eq_imp_space_eq[OF N, simp] |
1133 note sets_eq_imp_space_eq[OF N, simp] |
1134 have measurable_N[simp]: "\<And>M'. measurable N M' = measurable M M'" by (auto simp: measurable_def) |
1134 have measurable_N[simp]: "\<And>M'. measurable N M' = measurable M M'" by (auto simp: measurable_def) |
1135 { fix A assume "A \<in> sets M" |
1135 { fix A assume "A \<in> sets M" |
1136 with inv T T' sets_into_space[OF this] |
1136 with inv T T' sets.sets_into_space[OF this] |
1137 have "T -` T' -` A \<inter> T -` space M' \<inter> space M = A" |
1137 have "T -` T' -` A \<inter> T -` space M' \<inter> space M = A" |
1138 by (auto simp: measurable_def) } |
1138 by (auto simp: measurable_def) } |
1139 note eq = this[simp] |
1139 note eq = this[simp] |
1140 { fix A assume "A \<in> sets M" |
1140 { fix A assume "A \<in> sets M" |
1141 with inv T T' sets_into_space[OF this] |
1141 with inv T T' sets.sets_into_space[OF this] |
1142 have "(T' \<circ> T) -` A \<inter> space M = A" |
1142 have "(T' \<circ> T) -` A \<inter> space M = A" |
1143 by (auto simp: measurable_def) } |
1143 by (auto simp: measurable_def) } |
1144 note eq2 = this[simp] |
1144 note eq2 = this[simp] |
1145 let ?M' = "distr M M' T" and ?N' = "distr N M' T" |
1145 let ?M' = "distr M M' T" and ?N' = "distr N M' T" |
1146 interpret M': sigma_finite_measure ?M' |
1146 interpret M': sigma_finite_measure ?M' |
1166 by (simp add: comp_def) |
1166 by (simp add: comp_def) |
1167 show "AE x in M. 0 \<le> RN_deriv ?M' ?N' (T x)" using M'.RN_deriv_nonneg[OF ac] by auto |
1167 show "AE x in M. 0 \<le> RN_deriv ?M' ?N' (T x)" using M'.RN_deriv_nonneg[OF ac] by auto |
1168 |
1168 |
1169 have "N = distr N M (T' \<circ> T)" |
1169 have "N = distr N M (T' \<circ> T)" |
1170 by (subst measure_of_of_measure[of N, symmetric]) |
1170 by (subst measure_of_of_measure[of N, symmetric]) |
1171 (auto simp add: distr_def sigma_sets_eq intro!: measure_of_eq space_closed) |
1171 (auto simp add: distr_def sets.sigma_sets_eq intro!: measure_of_eq sets.space_closed) |
1172 also have "\<dots> = distr (distr N M' T) M T'" |
1172 also have "\<dots> = distr (distr N M' T) M T'" |
1173 using T T' by (simp add: distr_distr) |
1173 using T T' by (simp add: distr_distr) |
1174 also have "\<dots> = distr (density (distr M M' T) (RN_deriv (distr M M' T) (distr N M' T))) M T'" |
1174 also have "\<dots> = distr (density (distr M M' T) (RN_deriv (distr M M' T) (distr N M' T))) M T'" |
1175 using ac by (simp add: M'.density_RN_deriv) |
1175 using ac by (simp add: M'.density_RN_deriv) |
1176 also have "\<dots> = density M (RN_deriv (distr M M' T) (distr N M' T) \<circ> T)" |
1176 also have "\<dots> = density M (RN_deriv (distr M M' T) (distr N M' T) \<circ> T)" |