# HG changeset patch # User hoelzl # Date 1298457617 -3600 # Node ID 27cb9113b1a0760c51ae6be97b953a595b697907 # Parent 91a2b435dd7a82299eb4cb09a7803e1a5e0f1924 add lemma RN_deriv_vimage diff -r 91a2b435dd7a -r 27cb9113b1a0 src/HOL/Probability/Radon_Nikodym.thy --- a/src/HOL/Probability/Radon_Nikodym.thy Wed Feb 23 11:40:12 2011 +0100 +++ b/src/HOL/Probability/Radon_Nikodym.thy Wed Feb 23 11:40:17 2011 +0100 @@ -74,7 +74,7 @@ definition (in measure_space) "absolutely_continuous \ = (\N\null_sets. \ N = (0 :: pextreal))" -lemma (in sigma_finite_measure) absolutely_continuous_AE: +lemma (in measure_space) absolutely_continuous_AE: assumes "measure_space M'" and [simp]: "sets M' = sets M" "space M' = space M" and "absolutely_continuous (measure M')" "AE x. P x" shows "measure_space.almost_everywhere M' P" @@ -1113,6 +1113,76 @@ unfolding eq[OF A, symmetric] RN_deriv(2)[OF \ A, symmetric] .. qed +lemma (in sigma_finite_measure) RN_deriv_vimage: + assumes T: "T \ measure_preserving M M'" + and T': "T' \ measure_preserving (M'\ measure := \' \) (M\ measure := \ \)" + and inv: "\x. x \ space M \ T' (T x) = x" + and \': "measure_space (M'\measure := \'\)" "measure_space.absolutely_continuous M' \'" + shows "AE x. RN_deriv M' \' (T x) = RN_deriv M \ x" +proof (rule RN_deriv_unique) + interpret \': measure_space "M'\measure := \'\" by fact + show "measure_space (M\ measure := \\)" + by (rule \'.measure_space_vimage[OF _ T'], simp) default + interpret M': measure_space M' + proof (rule measure_space_vimage) + have "sigma_algebra (M'\ measure := \'\)" by default + then show "sigma_algebra M'" by simp + qed fact + show "absolutely_continuous \" unfolding absolutely_continuous_def + proof safe + fix N assume N: "N \ sets M" and N_0: "\ N = 0" + then have N': "T' -` N \ space M' \ sets M'" + using T' by (auto simp: measurable_def measure_preserving_def) + have "T -` (T' -` N \ space M') \ space M = N" + using inv T N sets_into_space[OF N] by (auto simp: measurable_def measure_preserving_def) + then have "measure M' (T' -` N \ space M') = 0" + using measure_preservingD[OF T N'] N_0 by auto + with \'(2) N' show "\ N = 0" using measure_preservingD[OF T', of N] N + unfolding M'.absolutely_continuous_def measurable_def by auto + qed + interpret M': sigma_finite_measure M' + proof + from sigma_finite guess F .. note F = this + show "\A::nat \ 'c set. range A \ sets M' \ (\i. A i) = space M' \ (\i. M'.\ (A i) \ \)" + proof (intro exI conjI allI) + show *: "range (\i. T' -` F i \ space M') \ sets M'" + using F T' by (auto simp: measurable_def measure_preserving_def) + show "(\i. T' -` F i \ space M') = space M'" + using F T' by (force simp: measurable_def measure_preserving_def) + fix i + have "T' -` F i \ space M' \ sets M'" using * by auto + note measure_preservingD[OF T this, symmetric] + moreover + have Fi: "F i \ sets M" using F by auto + then have "T -` (T' -` F i \ space M') \ space M = F i" + using T inv sets_into_space[OF Fi] + by (auto simp: measurable_def measure_preserving_def) + ultimately show "measure M' (T' -` F i \ space M') \ \" + using F by simp + qed + qed + have "(RN_deriv M' \') \ T \ borel_measurable M" + by (intro measurable_comp[where b=M'] M'.RN_deriv(1) measure_preservingD2[OF T]) fact+ + then show "(\x. RN_deriv M' \' (T x)) \ borel_measurable M" + by (simp add: comp_def) + fix A let ?A = "T' -` A \ space M'" + assume A: "A \ sets M" + then have A': "?A \ sets M'" using T' unfolding measurable_def measure_preserving_def + by auto + from A have "\ A = \' ?A" using T'[THEN measure_preservingD] by simp + also have "\ = \\<^isup>+ x. RN_deriv M' \' x * indicator ?A x \M'" + using A' by (rule M'.RN_deriv(2)[OF \']) + also have "\ = \\<^isup>+ x. RN_deriv M' \' (T x) * indicator ?A (T x) \M" + proof (rule positive_integral_vimage) + show "sigma_algebra M'" by default + show "(\x. RN_deriv M' \' x * indicator (T' -` A \ space M') x) \ borel_measurable M'" + by (auto intro!: A' M'.RN_deriv(1)[OF \']) + qed fact + also have "\ = \\<^isup>+ x. RN_deriv M' \' (T x) * indicator A x \M" + using T inv by (auto intro!: positive_integral_cong simp: measure_preserving_def measurable_def indicator_def) + finally show "\ A = \\<^isup>+ x. RN_deriv M' \' (T x) * indicator A x \M" . +qed + lemma (in sigma_finite_measure) RN_deriv_finite: assumes sfm: "sigma_finite_measure (M\measure := \\)" and ac: "absolutely_continuous \" shows "AE x. RN_deriv M \ x \ \"