theory Radon_Nikodym imports Bochner_Integration begin
definition\<^marker>\<open>tag important\<close> diff_measure :: "'a measure \<Rightarrow> 'a measure \<Rightarrow> 'a measure" where "diff_measure M N = measure_of (space M) (sets M) (\A. emeasure M A - emeasure N A)"
lemma shows space_diff_measure[simp]: "space (diff_measure M N) = space M" and sets_diff_measure[simp]: "sets (diff_measure M N) = sets M" by (auto simp: diff_measure_def)
lemma emeasure_diff_measure: assumes fin: "finite_measure M""finite_measure N"and sets_eq: "sets M = sets N" assumes pos: "\A. A \ sets M \ emeasure N A \ emeasure M A" and A: "A \ sets M" shows"emeasure (diff_measure M N) A = emeasure M A - emeasure N A" (is"_ = ?\ A") unfolding diff_measure_def proof (rule emeasure_measure_of_sigma) show"sigma_algebra (space M) (sets M)" .. show"positive (sets M) ?\" using pos by (simp add: positive_def) show"countably_additive (sets M) ?\" proof (rule countably_additiveI) fix A :: "nat \ _" assume A: "range A \ sets M" and "disjoint_family A" thenhave suminf: "(\i. emeasure M (A i)) = emeasure M (\i. A i)" "(\i. emeasure N (A i)) = emeasure N (\i. A i)" by (simp_all add: suminf_emeasure sets_eq) with A have"(\i. emeasure M (A i) - emeasure N (A i)) =
(\<Sum>i. emeasure M (A i)) - (\<Sum>i. emeasure N (A i))" using fin pos[of "A _"] by (intro ennreal_suminf_minus)
(auto simp: sets_eq finite_measure.emeasure_eq_measure suminf_emeasure) thenshow"(\i. emeasure M (A i) - emeasure N (A i)) =
emeasure M (\<Union>i. A i) - emeasure N (\<Union>i. A i) " by (simp add: suminf) qed qed fact
text\<open>An equivalent characterization of sigma-finite spaces is the existence of integrable
positive functions (or, still equivalently, the existence of a probability measure which isin
the same measure class as the original measure).\<close>
proposition (in sigma_finite_measure) obtain_positive_integrable_function: obtains f::"'a \ real" where "f \ borel_measurable M" "\x. f x > 0" "\x. f x \ 1" "integrable M f" proof - obtain A :: "nat \ 'a set" where "range A \ sets M" "(\i. A i) = space M" "\i. emeasure M (A i) \ \" using sigma_finite by auto thenhave [measurable]:"A n \ sets M" for n by auto
define g where"g = (\x. (\n. (1/2)^(Suc n) * indicator (A n) x / (1+ measure M (A n))))" have [measurable]: "g \ borel_measurable M" unfolding g_def by auto have *: "summable (\n. (1/2)^(Suc n) * indicator (A n) x / (1+ measure M (A n)))" for x apply (rule summable_comparison_test'[of "\n. (1/2)^(Suc n)" 0]) using power_half_series summable_def by (auto simp add: indicator_def divide_simps) have"g x \ (\n. (1/2)^(Suc n))" for x unfolding g_def apply (rule suminf_le) using * power_half_series summable_def by (auto simp add: indicator_def divide_simps) thenhave g_le_1: "g x \ 1" for x using power_half_series sums_unique by fastforce
have g_pos: "g x > 0"if"x \ space M" for x unfolding g_def proof (subst suminf_pos_iff[OF *[of x]], auto) obtain i where"x \ A i" using \(\i. A i) = space M\ \x \ space M\ by auto thenhave"0 < (1 / 2) ^ Suc i * indicator (A i) x / (1 + Sigma_Algebra.measure M (A i))" unfolding indicator_def apply (auto simp add: divide_simps) using measure_nonneg[of M "A i"] by (auto, meson add_nonneg_nonneg linorder_not_le mult_nonneg_nonneg zero_le_numeral zero_le_one zero_le_power) thenshow"\i. 0 < (1 / 2) ^ i * indicator (A i) x / (2 + 2 * Sigma_Algebra.measure M (A i))" by auto qed
have"integrable M g" unfolding g_def proof (rule integrable_suminf) fix n show"integrable M (\x. (1 / 2) ^ Suc n * indicator (A n) x / (1 + Sigma_Algebra.measure M (A n)))" using\<open>emeasure M (A n) \<noteq> \<infinity>\<close> by (auto intro!: integrable_mult_right integrable_divide_zero integrable_real_indicator simp add: top.not_eq_extremum) next show"AE x in M. summable (\n. norm ((1 / 2) ^ Suc n * indicator (A n) x / (1 + Sigma_Algebra.measure M (A n))))" using * by auto show"summable (\n. (\x. norm ((1 / 2) ^ Suc n * indicator (A n) x / (1 + Sigma_Algebra.measure M (A n))) \M))" apply (rule summable_comparison_test'[of "\n. (1/2)^(Suc n)" 0], auto) using power_half_series summable_def apply auto[1] apply (auto simp add: field_split_simps) using measure_nonneg[of M] not_less by fastforce qed
define f where"f = (\x. if x \ space M then g x else 1)" have"f x > 0"for x unfolding f_def using g_pos by auto moreoverhave"f x \ 1" for x unfolding f_def using g_le_1 by auto moreoverhave [measurable]: "f \ borel_measurable M" unfolding f_def by auto moreoverhave"integrable M f" apply (subst integrable_cong[of _ _ _ g]) unfolding f_def using\<open>integrable M g\<close> by auto ultimatelyshow"(\f. f \ borel_measurable M \ (\x. 0 < f x) \ (\x. f x \ 1) \ integrable M f \ thesis) \ thesis" by (meson that) qed
lemma (in sigma_finite_measure) Ex_finite_integrable_function: "\h\borel_measurable M. integral\<^sup>N M h \ \ \ (\x\space M. 0 < h x \ h x < \)" proof - obtain A :: "nat \ 'a set" where
range[measurable]: "range A \ sets M" and
space: "(\i. A i) = space M" and
measure: "\i. emeasure M (A i) \ \" and
disjoint: "disjoint_family A" using sigma_finite_disjoint by blast let ?B = "\i. 2^Suc i * emeasure M (A i)" have [measurable]: "\i. A i \ sets M" using range by fastforce+ have"\i. \x. 0 < x \ x < inverse (?B i)" proof fix i show"\x. 0 < x \ x < inverse (?B i)" using measure[of i] by (auto intro!: dense simp: ennreal_inverse_positive ennreal_mult_eq_top_iff power_eq_top_ennreal) qed from choice[OF this] obtain n where n: "\i. 0 < n i" "\i. n i < inverse (2^Suc i * emeasure M (A i))" by auto
{ fix i have"0 \ n i" using n(1)[of i] by auto } note pos = this let ?h = "\x. \i. n i * indicator (A i) x" show ?thesis proof (safe intro!: bexI[of _ ?h] del: notI) have"integral\<^sup>N M ?h = (\i. n i * emeasure M (A i))" using pos by (simp add: nn_integral_suminf nn_integral_cmult_indicator) alsohave"\ \ (\i. ennreal ((1/2)^Suc i))" proof (intro suminf_le allI) fix N have"n N * emeasure M (A N) \ inverse (2^Suc N * emeasure M (A N)) * emeasure M (A N)" using n[of N] by (intro mult_right_mono) auto alsohave"\ = (1/2)^Suc N * (inverse (emeasure M (A N)) * emeasure M (A N))" using measure[of N] by (simp add: ennreal_inverse_power divide_ennreal_def ennreal_inverse_mult
power_eq_top_ennreal less_top[symmetric] mult_ac
del: power_Suc) alsohave"\ \ inverse (ennreal 2) ^ Suc N" using measure[of N] by (cases "emeasure M (A N)"; cases "emeasure M (A N) = 0")
(auto simp: inverse_ennreal ennreal_mult[symmetric] divide_ennreal_def simp del: power_Suc) alsohave"\ = ennreal (inverse 2 ^ Suc N)" by (subst ennreal_power[symmetric], simp) (simp add: inverse_ennreal) finallyshow"n N * emeasure M (A N) \ ennreal ((1/2)^Suc N)" by simp qed auto alsohave"\ < top" unfolding less_top[symmetric] by (rule ennreal_suminf_neq_top)
(auto simp: summable_geometric summable_Suc_iff simp del: power_Suc) finallyshow"integral\<^sup>N M ?h \ \" by (auto simp: top_unique) next
{ fix x assume"x \ space M" thenobtain i where"x \ A i" using space[symmetric] by auto with disjoint n have"?h x = n i" by (auto intro!: suminf_cmult_indicator intro: less_imp_le) thenshow"0 < ?h x"and"?h x < \" using n[of i] by (auto simp: less_top[symmetric]) } note pos = this qed measurable qed
subsection "Absolutely continuous"
definition\<^marker>\<open>tag important\<close> absolutely_continuous :: "'a measure \<Rightarrow> 'a measure \<Rightarrow> bool" where "absolutely_continuous M N \ null_sets M \ null_sets N"
lemma absolutely_continuousI_count_space: "absolutely_continuous (count_space A) M" unfolding absolutely_continuous_def by (auto simp: null_sets_count_space)
lemma absolutely_continuousI_density: "f \ borel_measurable M \ absolutely_continuous M (density M f)" by (force simp add: absolutely_continuous_def null_sets_density_iff dest: AE_not_in)
lemma absolutely_continuousI_point_measure_finite: "(\x. \ x \ A ; f x \ 0 \ \ g x \ 0) \ absolutely_continuous (point_measure A f) (point_measure A g)" unfolding absolutely_continuous_def by (force simp: null_sets_point_measure_iff)
lemma absolutely_continuousD: "absolutely_continuous M N \ A \ sets M \ emeasure M A = 0 \ emeasure N A = 0" by (auto simp: absolutely_continuous_def null_sets_def)
lemma absolutely_continuous_AE: assumes sets_eq: "sets M' = sets M" and"absolutely_continuous M M'""AE x in M. P x" shows"AE x in M'. P x" proof - from\<open>AE x in M. P x\<close> obtain N where N: "N \<in> null_sets M" "{x\<in>space M. \<not> P x} \<subseteq> N" unfolding eventually_ae_filter by auto show"AE x in M'. P x" proof (rule AE_I') show"{x\space M'. \ P x} \ N" using sets_eq_imp_space_eq[OF sets_eq] N(2) by simp from\<open>absolutely_continuous M M'\<close> show "N \<in> null_sets M'" using N unfolding absolutely_continuous_def sets_eq null_sets_def by auto qed qed
subsection "Existence of the Radon-Nikodym derivative"
proposition
(in finite_measure) Radon_Nikodym_finite_measure: assumes"finite_measure N"and sets_eq[simp]: "sets N = sets M" assumes"absolutely_continuous M N" shows"\f \ borel_measurable M. density M f = N" proof - interpret N: finite_measure N by fact
define G where"G = {g \ borel_measurable M. \A\sets M. (\\<^sup>+x. g x * indicator A x \M) \ N A}" have [measurable_dest]: "f \ G \ f \ borel_measurable M" and G_D: "\A. f \ G \ A \ sets M \ (\\<^sup>+x. f x * indicator A x \M) \ N A" for f by (auto simp: G_def) note this[measurable_dest] have"(\x. 0) \ G" unfolding G_def by auto hence"G \ {}" by auto
{ fix f g assume f[measurable]: "f \ G" and g[measurable]: "g \ G" have"(\x. max (g x) (f x)) \ G" (is "?max \ G") unfolding G_def proof safe let ?A = "{x \ space M. f x \ g x}" have"?A \ sets M" using f g unfolding G_def by auto fix A assume [measurable]: "A \ sets M" have union: "((?A \ A) \ ((space M - ?A) \ A)) = A" using sets.sets_into_space[OF \<open>A \<in> sets M\<close>] by auto have"\x. x \ space M \ max (g x) (f x) * indicator A x =
g x * indicator (?A \<inter> A) x + f x * indicator ((space M - ?A) \<inter> A) x" by (auto simp: indicator_def max_def) hence"(\\<^sup>+x. max (g x) (f x) * indicator A x \M) =
(\<integral>\<^sup>+x. g x * indicator (?A \<inter> A) x \<partial>M) +
(\<integral>\<^sup>+x. f x * indicator ((space M - ?A) \<inter> A) x \<partial>M)" by (auto cong: nn_integral_cong intro!: nn_integral_add) alsohave"\ \ N (?A \ A) + N ((space M - ?A) \ A)" using f g unfolding G_def by (auto intro!: add_mono) alsohave"\ = N A" using union by (subst plus_emeasure) auto finallyshow"(\\<^sup>+x. max (g x) (f x) * indicator A x \M) \ N A" . qed auto } note max_in_G = this
{ fix f assume"incseq f"and f: "\i. f i \ G" thenhave [measurable]: "\i. f i \ borel_measurable M" by (auto simp: G_def) have"(\x. SUP i. f i x) \ G" unfolding G_def proof safe show"(\x. SUP i. f i x) \ borel_measurable M" by measurable next fix A assume"A \ sets M" have"(\\<^sup>+x. (SUP i. f i x) * indicator A x \M) =
(\<integral>\<^sup>+x. (SUP i. f i x * indicator A x) \<partial>M)" by (intro nn_integral_cong) (simp split: split_indicator) alsohave"\ = (SUP i. (\\<^sup>+x. f i x * indicator A x \M))" using\<open>incseq f\<close> f \<open>A \<in> sets M\<close> by (intro nn_integral_monotone_convergence_SUP)
(auto simp: G_def incseq_Suc_iff le_fun_def split: split_indicator) finallyshow"(\\<^sup>+x. (SUP i. f i x) * indicator A x \M) \ N A" using f \<open>A \<in> sets M\<close> by (auto intro!: SUP_least simp: G_D) qed } note SUP_in_G = this let ?y = "SUP g \ G. integral\<^sup>N M g" have y_le: "?y \ N (space M)" unfolding G_def proof (safe intro!: SUP_least) fix g assume"\A\sets M. (\\<^sup>+x. g x * indicator A x \M) \ N A" from this[THEN bspec, OF sets.top] show"integral\<^sup>N M g \ N (space M)" by (simp cong: nn_integral_cong) qed from ennreal_SUP_countable_SUP [OF \<open>G \<noteq> {}\<close>, of "integral\<^sup>N M"] obtain ys :: "nat \ ennreal" where ys: "range ys \ integral\<^sup>N M ` G \ Sup (integral\<^sup>N M ` G) = Sup (range ys)" by auto thenhave"\n. \g. g\G \ integral\<^sup>N M g = ys n" proof safe fix n assume"range ys \ integral\<^sup>N M ` G" hence"ys n \ integral\<^sup>N M ` G" by auto thus"\g. g\G \ integral\<^sup>N M g = ys n" by auto qed from choice[OF this] obtain gs where"\i. gs i \ G" "\n. integral\<^sup>N M (gs n) = ys n" by auto hence y_eq: "?y = (SUP i. integral\<^sup>N M (gs i))" using ys by auto let ?g = "\i x. Max ((\n. gs n x) ` {..i})"
define f where [abs_def]: "f x = (SUP i. ?g i x)"for x let ?F = "\A x. f x * indicator A x" have gs_not_empty: "\i x. (\n. gs n x) ` {..i} \ {}" by auto
{ fix i have"?g i \ G" proof (induct i) case 0 thus ?caseby simp fact next case (Suc i) with Suc gs_not_empty \<open>gs (Suc i) \<in> G\<close> show ?case by (auto simp add: atMost_Suc intro!: max_in_G) qed } note g_in_G = this have"incseq ?g"using gs_not_empty by (auto intro!: incseq_SucI le_funI simp add: atMost_Suc)
from SUP_in_G[OF this g_in_G] have [measurable]: "f \ G" unfolding f_def . thenhave [measurable]: "f \ borel_measurable M" unfolding G_def by auto
have"integral\<^sup>N M f = (SUP i. integral\<^sup>N M (?g i))" unfolding f_def using g_in_G \<open>incseq ?g\<close> by (auto intro!: nn_integral_monotone_convergence_SUP simp: G_def) alsohave"\ = ?y" proof (rule antisym) show"(SUP i. integral\<^sup>N M (?g i)) \ ?y" using g_in_G by (auto intro: SUP_mono) show"?y \ (SUP i. integral\<^sup>N M (?g i))" unfolding y_eq by (auto intro!: SUP_mono nn_integral_mono Max_ge) qed finallyhave int_f_eq_y: "integral\<^sup>N M f = ?y" .
have upper_bound: "\A\sets M. N A \ density M f A" proof (rule ccontr) assume"\ ?thesis" thenobtain A where A[measurable]: "A \ sets M" and f_less_N: "density M f A < N A" by (auto simp: not_le) thenhave pos_A: "0 < M A" using\<open>absolutely_continuous M N\<close>[THEN absolutely_continuousD, OF A] by (auto simp: zero_less_iff_neq_zero)
define b where"b = (N A - density M f A) / M A / 2" with f_less_N pos_A have"0 < b""b \ top" by (auto intro!: diff_gr0_ennreal simp: zero_less_iff_neq_zero diff_eq_0_iff_ennreal ennreal_divide_eq_top_iff)
let ?f = "\x. f x + b" have"nn_integral M f \ top" using\<open>f \<in> G\<close>[THEN G_D, of "space M"] by (auto simp: top_unique cong: nn_integral_cong) with\<open>b \<noteq> top\<close> interpret Mf: finite_measure "density M ?f" by (intro finite_measureI)
(auto simp: field_simps mult_indicator_subset ennreal_mult_eq_top_iff
emeasure_density nn_integral_cmult_indicator nn_integral_add
cong: nn_integral_cong)
from unsigned_Hahn_decomposition[of "density M ?f" N A] obtain Y where [measurable]: "Y \ sets M" and [simp]: "Y \ A" and Y1: "\C. C \ sets M \ C \ Y \ density M ?f C \ N C" and Y2: "\C. C \ sets M \ C \ A \ C \ Y = {} \ N C \ density M ?f C" by auto
let ?f' = "\x. f x + b * indicator Y x" have"M Y \ 0" proof assume"M Y = 0" thenhave"N Y = 0" using\<open>absolutely_continuous M N\<close>[THEN absolutely_continuousD, of Y] by auto thenhave"N A = N (A - Y)" by (subst emeasure_Diff) auto alsohave"\ \ density M ?f (A - Y)" by (rule Y2) auto alsohave"\ \ density M ?f A - density M ?f Y" by (subst emeasure_Diff) auto alsohave"\ \ density M ?f A - 0" by (intro ennreal_minus_mono) auto alsohave"density M ?f A = b * M A + density M f A" by (simp add: emeasure_density field_simps mult_indicator_subset nn_integral_add nn_integral_cmult_indicator) alsohave"\ < N A" using f_less_N pos_A by (cases "density M f A"; cases "M A"; cases "N A")
(auto simp: b_def ennreal_less_iff ennreal_minus divide_ennreal ennreal_numeral[symmetric]
ennreal_plus[symmetric] ennreal_mult[symmetric] field_simps
simp del: ennreal_numeral ennreal_plus) finallyshow False by simp qed thenhave"nn_integral M f < nn_integral M ?f'" using\<open>0 < b\<close> \<open>nn_integral M f \<noteq> top\<close> by (simp add: nn_integral_add nn_integral_cmult_indicator ennreal_zero_less_mult_iff zero_less_iff_neq_zero) moreover have"?f' \ G" unfolding G_def proof safe fix X assume [measurable]: "X \ sets M" have"(\\<^sup>+ x. ?f' x * indicator X x \M) = density M f (X - Y) + density M ?f (X \ Y)" by (auto simp add: emeasure_density nn_integral_add[symmetric] split: split_indicator intro!: nn_integral_cong) alsohave"\ \ N (X - Y) + N (X \ Y)" using G_D[OF \<open>f \<in> G\<close>] by (intro add_mono Y1) (auto simp: emeasure_density) alsohave"\ = N X" by (subst plus_emeasure) (auto intro!: arg_cong2[where f=emeasure]) finallyshow"(\\<^sup>+ x. ?f' x * indicator X x \M) \ N X" . qed simp thenhave"nn_integral M ?f' \ ?y" by (rule SUP_upper) ultimatelyshow False by (simp add: int_f_eq_y) qed show ?thesis proof (intro bexI[of _ f] measure_eqI conjI antisym) fix A assume"A \ sets (density M f)" then show "emeasure (density M f) A \ emeasure N A" by (auto simp: emeasure_density intro!: G_D[OF \<open>f \<in> G\<close>]) next fix A assume A: "A \ sets (density M f)" then show "emeasure N A \ emeasure (density M f) A" using upper_bound by auto qed auto qed
lemma (in finite_measure) split_space_into_finite_sets_and_rest: assumes ac: "absolutely_continuous M N"and sets_eq[simp]: "sets N = sets M" shows"\B::nat\'a set. disjoint_family B \ range B \ sets M \ (\i. N (B i) \ \) \
(\<forall>A\<in>sets M. A \<inter> (\<Union>i. B i) = {} \<longrightarrow> (emeasure M A = 0 \<and> N A = 0) \<or> (emeasure M A > 0 \<and> N A = \<infinity>))" proof - let ?Q = "{Q\sets M. N Q \ \}" let ?a = "SUP Q\?Q. emeasure M Q" have"{} \ ?Q" by auto thenhave Q_not_empty: "?Q \ {}" by blast have"?a \ emeasure M (space M)" using sets.sets_into_space by (auto intro!: SUP_least emeasure_mono) thenhave"?a \ \" using finite_emeasure_space by (auto simp: less_top[symmetric] top_unique simp del: SUP_eq_top_iff Sup_eq_top_iff) from ennreal_SUP_countable_SUP [OF Q_not_empty, of "emeasure M"] obtain Q''where"range Q'' \ emeasure M ` ?Q" and a: "?a = (SUP i::nat. Q'' i)" by auto thenhave"\i. \Q'. Q'' i = emeasure M Q' \ Q' \ ?Q" by auto from choice[OF this] obtain Q' where Q': "\i. Q'' i = emeasure M (Q' i)" "\i. Q' i \?Q" by auto thenhave a_Lim: "?a = (SUP i. emeasure M (Q' i))"using a by simp let ?O = "\n. \i\n. Q' i" have Union: "(SUP i. emeasure M (?O i)) = emeasure M (\i. ?O i)" proof (rule SUP_emeasure_incseq[of ?O]) show"range ?O \ sets M" using Q' by auto show"incseq ?O"by (fastforce intro!: incseq_SucI) qed have Q'_sets[measurable]: "\i. Q' i \ sets M" using Q' by auto have O_sets: "\i. ?O i \ sets M" using Q' by auto thenhave O_in_G: "\i. ?O i \ ?Q" proof (safe del: notI) fix i have"Q' ` {..i} \ sets M" using Q' by auto thenhave"N (?O i) \ (\i\i. N (Q' i))" by (simp add: emeasure_subadditive_finite) alsohave"\ < \" using Q' by (simp add: less_top) finallyshow"N (?O i) \ \" by simp qed auto have O_mono: "\n. ?O n \ ?O (Suc n)" by fastforce have a_eq: "?a = emeasure M (\i. ?O i)" unfolding Union[symmetric] proof (rule antisym) show"?a \ (SUP i. emeasure M (?O i))" unfolding a_Lim using Q' by (auto intro!: SUP_mono emeasure_mono) show"(SUP i. emeasure M (?O i)) \ ?a" proof (safe intro!: Sup_mono, unfold bex_simps) fix i have *: "(\(Q' ` {..i})) = ?O i" by auto thenshow"\x. (x \ sets M \ N x \ \) \
emeasure M (\<Union>(Q' ` {..i})) \<le> emeasure M x" using O_in_G[of i] by (auto intro!: exI[of _ "?O i"]) qed qed let ?O_0 = "(\i. ?O i)" have"?O_0 \ sets M" using Q' by auto have"disjointed Q' i \ sets M" for i using sets.range_disjointed_sets[of Q' M] using Q'_sets by (auto simp: subset_eq) note Q_sets = this show ?thesis proof (intro bexI exI conjI ballI impI allI) show"disjoint_family (disjointed Q')" by (rule disjoint_family_disjointed) show"range (disjointed Q') \ sets M" using Q'_sets by (intro sets.range_disjointed_sets) auto
{ fix A assume A: "A \ sets M" "A \ (\i. disjointed Q' i) = {}" thenhave A1: "A \ (\i. Q' i) = {}" unfolding UN_disjointed_eq by auto show"emeasure M A = 0 \ N A = 0 \ 0 < emeasure M A \ N A = \" proof (rule disjCI, simp) assume *: "emeasure M A = 0 \ N A \ top" show"emeasure M A = 0 \ N A = 0" proof (cases "emeasure M A = 0") case True with ac A have"N A = 0" unfolding absolutely_continuous_def by auto with True show ?thesis by simp next case False with * have"N A \ \" by auto with A have"emeasure M ?O_0 + emeasure M A = emeasure M (?O_0 \ A)" using Q' A1 by (auto intro!: plus_emeasure simp: set_eq_iff) alsohave"\ = (SUP i. emeasure M (?O i \ A))" proof (rule SUP_emeasure_incseq[of "\i. ?O i \ A", symmetric, simplified]) show"range (\i. ?O i \ A) \ sets M" using\<open>N A \<noteq> \<infinity>\<close> O_sets A by auto qed (fastforce intro!: incseq_SucI) alsohave"\ \ ?a" proof (safe intro!: SUP_least) fix i have"?O i \ A \ ?Q" proof (safe del: notI) show"?O i \ A \ sets M" using O_sets A by auto from O_in_G[of i] have"N (?O i \ A) \ N (?O i) + N A" using emeasure_subadditive[of "?O i" N A] A O_sets by auto with O_in_G[of i] show"N (?O i \ A) \ \" using\<open>N A \<noteq> \<infinity>\<close> by (auto simp: top_unique) qed thenshow"emeasure M (?O i \ A) \ ?a" by (rule SUP_upper) qed finallyhave"emeasure M A = 0" unfolding a_eq using measure_nonneg[of M A] by (simp add: emeasure_eq_measure) with\<open>emeasure M A \<noteq> 0\<close> show ?thesis by auto qed qed }
{ fix i have"N (disjointed Q' i) \ N (Q' i)" by (auto intro!: emeasure_mono simp: disjointed_def) thenshow"N (disjointed Q' i) \ \" using Q'(2)[of i] by (auto simp: top_unique) } qed qed
proposition (in finite_measure) Radon_Nikodym_finite_measure_infinite: assumes"absolutely_continuous M N"and sets_eq: "sets N = sets M" shows"\f\borel_measurable M. density M f = N" proof - from split_space_into_finite_sets_and_rest[OF assms] obtain Q :: "nat \ 'a set" where Q: "disjoint_family Q""range Q \ sets M" and in_Q0: "\A. A \ sets M \ A \ (\i. Q i) = {} \ emeasure M A = 0 \ N A = 0 \ 0 < emeasure M A \N A = \" and Q_fin: "\i. N (Q i) \ \" by force from Q have Q_sets: "\i. Q i \ sets M" by auto let ?N = "\i. density N (indicator (Q i))" and ?M = "\i. density M (indicator (Q i))" have"\i. \f\borel_measurable (?M i). density (?M i) f = ?N i" proof (intro allI finite_measure.Radon_Nikodym_finite_measure) fix i from Q show"finite_measure (?M i)" by (auto intro!: finite_measureI cong: nn_integral_cong
simp add: emeasure_density subset_eq sets_eq) from Q have"emeasure (?N i) (space N) = emeasure N (Q i)" by (simp add: sets_eq[symmetric] emeasure_density subset_eq cong: nn_integral_cong) with Q_fin show"finite_measure (?N i)" by (auto intro!: finite_measureI) show"sets (?N i) = sets (?M i)"by (simp add: sets_eq) have [measurable]: "\A. A \ sets M \ A \ sets N" by (simp add: sets_eq) show"absolutely_continuous (?M i) (?N i)" using\<open>absolutely_continuous M N\<close> \<open>Q i \<in> sets M\<close> by (auto simp: absolutely_continuous_def null_sets_density_iff sets_eq
intro!: absolutely_continuous_AE[OF sets_eq]) qed from choice[OF this[unfolded Bex_def]] obtain f where borel: "\i. f i \ borel_measurable M" "\i x. 0 \ f i x" and f_density: "\i. density (?M i) (f i) = ?N i" by force
{ fix A i assume A: "A \ sets M" with Q borel have"(\\<^sup>+x. f i x * indicator (Q i \ A) x \M) = emeasure (density (?M i) (f i)) A" by (auto simp add: emeasure_density nn_integral_density subset_eq
intro!: nn_integral_cong split: split_indicator) alsohave"\ = emeasure N (Q i \ A)" using A Q by (simp add: f_density emeasure_restricted subset_eq sets_eq) finallyhave"emeasure N (Q i \ A) = (\\<^sup>+x. f i x * indicator (Q i \ A) x \M)" .. } note integral_eq = this let ?f = "\x. (\i. f i x * indicator (Q i) x) + \ * indicator (space M - (\i. Q i)) x" show ?thesis proof (safe intro!: bexI[of _ ?f]) show"?f \ borel_measurable M" using borel Q_sets by (auto intro!: measurable_If) show"density M ?f = N" proof (rule measure_eqI) fix A assume"A \ sets (density M ?f)" thenhave"A \ sets M" by simp have Qi: "\i. Q i \ sets M" using Q by auto have [intro,simp]: "\i. (\x. f i x * indicator (Q i \ A) x) \ borel_measurable M" "\i. AE x in M. 0 \ f i x * indicator (Q i \ A) x" using borel Qi \<open>A \<in> sets M\<close> by auto have"(\\<^sup>+x. ?f x * indicator A x \M) = (\\<^sup>+x. (\i. f i x * indicator (Q i \ A) x) + \ * indicator ((space M - (\i. Q i)) \ A) x \M)" using borel by (intro nn_integral_cong) (auto simp: indicator_def) alsohave"\ = (\\<^sup>+x. (\i. f i x * indicator (Q i \ A) x) \M) + \ * emeasure M ((space M - (\i. Q i)) \ A)" using borel Qi \<open>A \<in> sets M\<close> by (subst nn_integral_add)
(auto simp add: nn_integral_cmult_indicator sets.Int intro!: suminf_0_le) alsohave"\ = (\i. N (Q i \ A)) + \ * emeasure M ((space M - (\i. Q i)) \ A)" by (subst integral_eq[OF \<open>A \<in> sets M\<close>], subst nn_integral_suminf) auto finallyhave"(\\<^sup>+x. ?f x * indicator A x \M) = (\i. N (Q i \ A)) + \ * emeasure M ((space M - (\i. Q i)) \ A)" . moreoverhave"(\i. N (Q i \ A)) = N ((\i. Q i) \ A)" using Q Q_sets \<open>A \<in> sets M\<close> by (subst suminf_emeasure) (auto simp: disjoint_family_on_def sets_eq) moreover have"(space M - (\x. Q x)) \ A \ (\x. Q x) = {}" by auto thenhave"\ * emeasure M ((space M - (\i. Q i)) \ A) = N ((space M - (\i. Q i)) \ A)" using in_Q0[of "(space M - (\i. Q i)) \ A"] \A \ sets M\ Q by (auto simp: ennreal_top_mult) moreoverhave"(space M - (\i. Q i)) \ A \ sets M" "((\i. Q i) \ A) \ sets M" using Q_sets \<open>A \<in> sets M\<close> by auto moreoverhave"((\i. Q i) \ A) \ ((space M - (\i. Q i)) \ A) = A" "((\i. Q i) \ A) \ ((space M - (\i. Q i)) \ A) = {}" using\<open>A \<in> sets M\<close> sets.sets_into_space by auto ultimatelyhave"N A = (\\<^sup>+x. ?f x * indicator A x \M)" using plus_emeasure[of "(\i. Q i) \ A" N "(space M - (\i. Q i)) \ A"] by (simp add: sets_eq) with\<open>A \<in> sets M\<close> borel Q show "emeasure (density M ?f) A = N A" by (auto simp: subset_eq emeasure_density) qed (simp add: sets_eq) qed qed
theorem (in sigma_finite_measure) Radon_Nikodym: assumes ac: "absolutely_continuous M N"assumes sets_eq: "sets N = sets M" shows"\f \ borel_measurable M. density M f = N" proof - from Ex_finite_integrable_function obtain h where finite: "integral\<^sup>N M h \ \" and
borel: "h \ borel_measurable M" and
nn: "\x. 0 \ h x" and
pos: "\x. x \ space M \ 0 < h x" and "\x. x \ space M \ h x < \" by auto let ?T = "\A. (\\<^sup>+x. h x * indicator A x \M)" let ?MT = "density M h" from borel finite nn interpret T: finite_measure ?MT by (auto intro!: finite_measureI cong: nn_integral_cong simp: emeasure_density) have"absolutely_continuous ?MT N""sets N = sets ?MT" proof (unfold absolutely_continuous_def, safe) fix A assume"A \ null_sets ?MT" with borel have"A \ sets M" "AE x in M. x \ A \ h x \ 0" by (auto simp add: null_sets_density_iff) with pos sets.sets_into_space have"AE x in M. x \ A" by (elim eventually_mono) (auto simp: not_le[symmetric]) thenhave"A \ null_sets M" using\<open>A \<in> sets M\<close> by (simp add: AE_iff_null_sets) with ac show"A \ null_sets N" by (auto simp: absolutely_continuous_def) qed (auto simp add: sets_eq) from T.Radon_Nikodym_finite_measure_infinite[OF this] obtain f where f_borel: "f \ borel_measurable M" "density ?MT f = N" by auto with nn borel show ?thesis by (auto intro!: bexI[of _ "\x. h x * f x"] simp: density_density_eq) qed
subsection \<open>Uniqueness of densities\<close>
lemma finite_density_unique: assumes borel: "f \ borel_measurable M" "g \ borel_measurable M" assumes pos: "AE x in M. 0 \ f x" "AE x in M. 0 \ g x" and fin: "integral\<^sup>N M f \ \" shows"density M f = density M g \ (AE x in M. f x = g x)" proof (intro iffI ballI) fix A assume eq: "AE x in M. f x = g x" with borel show"density M f = density M g" by (auto intro: density_cong) next let ?P = "\f A. \\<^sup>+ x. f x * indicator A x \M" assume"density M f = density M g" with borel have eq: "\A\sets M. ?P f A = ?P g A" by (simp add: emeasure_density[symmetric]) from this[THEN bspec, OF sets.top] fin have g_fin: "integral\<^sup>N M g \ \" by (simp cong: nn_integral_cong)
{ fix f g assume borel: "f \ borel_measurable M" "g \ borel_measurable M" and pos: "AE x in M. 0 \ f x" "AE x in M. 0 \ g x" and g_fin: "integral\<^sup>N M g \ \" and eq: "\A\sets M. ?P f A = ?P g A" let ?N = "{x\space M. g x < f x}" have N: "?N \ sets M" using borel by simp have"?P g ?N \ integral\<^sup>N M g" using pos by (intro nn_integral_mono_AE) (auto split: split_indicator) thenhave Pg_fin: "?P g ?N \ \" using g_fin by (auto simp: top_unique) have"?P (\x. (f x - g x)) ?N = (\\<^sup>+x. f x * indicator ?N x - g x * indicator ?N x \M)" by (auto intro!: nn_integral_cong simp: indicator_def) alsohave"\ = ?P f ?N - ?P g ?N" proof (rule nn_integral_diff) show"(\x. f x * indicator ?N x) \ borel_measurable M" "(\x. g x * indicator ?N x) \ borel_measurable M" using borel N by auto show"AE x in M. g x * indicator ?N x \ f x * indicator ?N x" using pos by (auto split: split_indicator) qed fact alsohave"\ = 0" unfolding eq[THEN bspec, OF N] using Pg_fin by auto finallyhave"AE x in M. f x \ g x" using pos borel nn_integral_PInf_AE[OF borel(2) g_fin] by (subst (asm) nn_integral_0_iff_AE)
(auto split: split_indicator simp: not_less ennreal_minus_eq_0) } from this[OF borel pos g_fin eq] this[OF borel(2,1) pos(2,1) fin] eq show"AE x in M. f x = g x"by auto qed
lemma (in finite_measure) density_unique_finite_measure: assumes borel: "f \ borel_measurable M" "f' \ borel_measurable M" assumes pos: "AE x in M. 0 \ f x" "AE x in M. 0 \ f' x" assumes f: "\A. A \ sets M \ (\\<^sup>+x. f x * indicator A x \M) = (\\<^sup>+x. f' x * indicator A x \M)"
(is"\A. A \ sets M \ ?P f A = ?P f' A") shows"AE x in M. f x = f' x" proof - let ?D = "\f. density M f" let ?N = "\A. ?P f A" and ?N' = "\A. ?P f' A" let ?f = "\A x. f x * indicator A x" and ?f' = "\A x. f' x * indicator A x"
have ac: "absolutely_continuous M (density M f)""sets (density M f) = sets M" using borel by (auto intro!: absolutely_continuousI_density) from split_space_into_finite_sets_and_rest[OF this] obtain Q :: "nat \ 'a set" where Q: "disjoint_family Q""range Q \ sets M" and in_Q0: "\A. A \ sets M \ A \ (\i. Q i) = {} \ emeasure M A = 0 \ ?D f A = 0 \0 < emeasure M A \ ?D f A = \" and Q_fin: "\i. ?D f (Q i) \ \" by force with borel pos have in_Q0: "\A. A \ sets M \ A \ (\i. Q i) = {} \ emeasure M A = 0 \?N A = 0 \ 0 < emeasure M A \ ?N A = \" and Q_fin: "\i. ?N (Q i) \ \" by (auto simp: emeasure_density subset_eq)
from Q have Q_sets[measurable]: "\i. Q i \ sets M" by auto let ?D = "{x\space M. f x \ f' x}" have"?D \ sets M" using borel by auto have *: "\i x A. \y::ennreal. y * indicator (Q i) x * indicator A x = y * indicator (Q i \ A) x" unfolding indicator_def by auto have"\i. AE x in M. ?f (Q i) x = ?f' (Q i) x" using borel Q_fin Q pos by (intro finite_density_unique[THEN iffD1] allI)
(auto intro!: f measure_eqI simp: emeasure_density * subset_eq) moreoverhave"AE x in M. ?f (space M - (\i. Q i)) x = ?f' (space M - (\i. Q i)) x" proof (rule AE_I')
{ fix f :: "'a \ ennreal" assume borel: "f \ borel_measurable M" and eq: "\A. A \ sets M \ ?N A = (\\<^sup>+x. f x * indicator A x \M)" let ?A = "\i. (space M - (\i. Q i)) \ {x \ space M. f x < (i::nat)}" have"(\i. ?A i) \ null_sets M" proof (rule null_sets_UN) fix i ::nat have"?A i \ sets M" using borel by auto have"?N (?A i) \ (\\<^sup>+x. (i::ennreal) * indicator (?A i) x \M)" unfolding eq[OF \<open>?A i \<in> sets M\<close>] by (auto intro!: nn_integral_mono simp: indicator_def) alsohave"\ = i * emeasure M (?A i)" using\<open>?A i \<in> sets M\<close> by (auto intro!: nn_integral_cmult_indicator) alsohave"\ < \" using emeasure_real[of "?A i"] by (auto simp: ennreal_mult_less_top of_nat_less_top) finallyhave"?N (?A i) \ \" by simp thenshow"?A i \ null_sets M" using in_Q0[OF \?A i \ sets M\] \?A i \ sets M\ by auto qed alsohave"(\i. ?A i) = (space M - (\i. Q i)) \ {x\space M. f x \ \}" by (auto simp: ennreal_Ex_less_of_nat less_top[symmetric]) finallyhave"(space M - (\i. Q i)) \ {x\space M. f x \ \} \ null_sets M" by simp } from this[OF borel(1) refl] this[OF borel(2) f] have"(space M - (\i. Q i)) \ {x\space M. f x \ \} \ null_sets M" "(space M - (\i. Q i)) \ {x\space M. f' x \ \} \ null_sets M" by simp_all thenshow"((space M - (\i. Q i)) \ {x\space M. f x \ \}) \ ((space M - (\i. Q i)) \ {x\space M. f' x \ \}) \ null_sets M" by (rule null_sets.Un) show"{x \ space M. ?f (space M - (\i. Q i)) x \ ?f' (space M - (\i. Q i)) x} \
((space M - (\<Union>i. Q i)) \<inter> {x\<in>space M. f x \<noteq> \<infinity>}) \<union> ((space M - (\<Union>i. Q i)) \<inter> {x\<in>space M. f' x \<noteq> \<infinity>})" by (auto simp: indicator_def) qed moreoverhave"AE x in M. (?f (space M - (\i. Q i)) x = ?f' (space M - (\i. Q i)) x) \ (\i. ?f (Q i) x = ?f' (Q i) x) \
?f (space M) x = ?f' (space M) x" by (auto simp: indicator_def) ultimatelyhave"AE x in M. ?f (space M) x = ?f' (space M) x" unfolding AE_all_countable[symmetric] by eventually_elim (auto split: if_split_asm simp: indicator_def) thenshow"AE x in M. f x = f' x"by auto qed
proposition (in sigma_finite_measure) density_unique: assumes f: "f \ borel_measurable M" assumes f': "f'\<in> borel_measurable M" assumes density_eq: "density M f = density M f'" shows"AE x in M. f x = f' x" proof - obtain h where h_borel: "h \ borel_measurable M" and fin: "integral\<^sup>N M h \ \" and pos: "\x. x \ space M \ 0 < h x \ h x < \" "\x. 0 \ h x" using Ex_finite_integrable_function by auto thenhave h_nn: "AE x in M. 0 \ h x" by auto let ?H = "density M h" interpret h: finite_measure ?H using fin h_borel pos by (intro finite_measureI) (simp cong: nn_integral_cong emeasure_density add: fin) let ?fM = "density M f" let ?f'M = "density M f'"
{ fix A assume"A \ sets M" thenhave"{x \ space M. h x * indicator A x \ 0} = A" using pos(1) sets.sets_into_space by (force simp: indicator_def) thenhave"(\\<^sup>+x. h x * indicator A x \M) = 0 \ A \ null_sets M" using h_borel \<open>A \<in> sets M\<close> h_nn by (subst nn_integral_0_iff) auto } note h_null_sets = this
{ fix A assume"A \ sets M" have"(\\<^sup>+x. f x * (h x * indicator A x) \M) = (\\<^sup>+x. h x * indicator A x \?fM)" using\<open>A \<in> sets M\<close> h_borel h_nn f f' by (intro nn_integral_density[symmetric]) auto alsohave"\ = (\\<^sup>+x. h x * indicator A x \?f'M)" by (simp_all add: density_eq) alsohave"\ = (\\<^sup>+x. f' x * (h x * indicator A x) \M)" using\<open>A \<in> sets M\<close> h_borel h_nn f f' by (intro nn_integral_density) auto finallyhave"(\\<^sup>+x. h x * (f x * indicator A x) \M) = (\\<^sup>+x. h x * (f' x * indicator A x) \M)" by (simp add: ac_simps) thenhave"(\\<^sup>+x. (f x * indicator A x) \?H) = (\\<^sup>+x. (f' x * indicator A x) \?H)" using\<open>A \<in> sets M\<close> h_borel h_nn f f' by (subst (asm) (1 2) nn_integral_density[symmetric]) auto } thenhave"AE x in ?H. f x = f' x"using h_borel h_nn f f' by (intro h.density_unique_finite_measure absolutely_continuous_AE[of M]) auto with AE_space[of M] pos show"AE x in M. f x = f' x" unfolding AE_density[OF h_borel] by auto qed
lemma (in sigma_finite_measure) density_unique_iff: assumes f: "f \ borel_measurable M" and f': "f' \ borel_measurable M" shows"density M f = density M f' \ (AE x in M. f x = f' x)" using density_unique[OF assms] density_cong[OF f f'] by auto
lemma sigma_finite_density_unique: assumes borel: "f \ borel_measurable M" "g \ borel_measurable M" and fin: "sigma_finite_measure (density M f)" shows"density M f = density M g \ (AE x in M. f x = g x)" proof assume"AE x in M. f x = g x"with borel show"density M f = density M g" by (auto intro: density_cong) next assume eq: "density M f = density M g" interpret f: sigma_finite_measure "density M f"by fact from f.sigma_finite_incseq obtain A where cover: "range A \ sets (density M f)" "\ (range A) = space (density M f)" "\i. emeasure (density M f) (A i) \ \" "incseq A" by auto have"AE x in M. \i. x \ A i \ f x = g x" unfolding AE_all_countable proof fix i have"density (density M f) (indicator (A i)) = density (density M g) (indicator (A i))" unfolding eq .. moreoverhave"(\\<^sup>+x. f x * indicator (A i) x \M) \ \" using cover(1) cover(3)[of i] borel by (auto simp: emeasure_density subset_eq) ultimatelyhave"AE x in M. f x * indicator (A i) x = g x * indicator (A i) x" using borel cover(1) by (intro finite_density_unique[THEN iffD1]) (auto simp: density_density_eq subset_eq) thenshow"AE x in M. x \ A i \ f x = g x" by auto qed with AE_space show"AE x in M. f x = g x" apply eventually_elim using cover(2)[symmetric] apply auto done qed
lemma (in sigma_finite_measure) sigma_finite_iff_density_finite': assumes f: "f \ borel_measurable M" shows"sigma_finite_measure (density M f) \ (AE x in M. f x \ \)"
(is"sigma_finite_measure ?N \ _") proof assume"sigma_finite_measure ?N" theninterpret N: sigma_finite_measure ?N . from N.Ex_finite_integrable_function obtain h where
h: "h \ borel_measurable M" "integral\<^sup>N ?N h \ \" and
fin: "\x\space M. 0 < h x \ h x < \" by auto have"AE x in M. f x * h x \ \" proof (rule AE_I') have"integral\<^sup>N ?N h = (\\<^sup>+x. f x * h x \M)" using f h by (auto intro!: nn_integral_density) thenhave"(\\<^sup>+x. f x * h x \M) \ \" using h(2) by simp thenshow"(\x. f x * h x) -` {\} \ space M \ null_sets M" using f h(1) by (auto intro!: nn_integral_PInf[unfolded infinity_ennreal_def] borel_measurable_vimage) qed auto thenshow"AE x in M. f x \ \" using fin by (auto elim!: AE_Ball_mp simp: less_top ennreal_mult_less_top) next assume AE: "AE x in M. f x \ \" from sigma_finite obtain Q :: "nat \ 'a set" where Q: "range Q \ sets M" "\ (range Q) = space M" "\i. emeasure M (Q i) \ \" by auto
define A where"A i =
f -` (case i of 0 \<Rightarrow> {\<infinity>} | Suc n \<Rightarrow> {.. ennreal(of_nat (Suc n))}) \<inter> space M" for i
{ fix i j have"A i \ Q j \ sets M" unfolding A_def using f Q apply (rule_tac sets.Int) by (cases i) (auto intro: measurable_sets[OF f(1)]) } note A_in_sets = this
show"sigma_finite_measure ?N" proof (standard, intro exI conjI ballI) show"countable (range (\(i, j). A i \ Q j))" by auto show"range (\(i, j). A i \ Q j) \ sets (density M f)" using A_in_sets by auto next have"\(range (\(i, j). A i \ Q j)) = (\i j. A i \ Q j)" by auto alsohave"\ = (\i. A i) \ space M" using Q by auto alsohave"(\i. A i) = space M" proof safe fix x assume x: "x \ space M" show"x \ (\i. A i)" proof (cases "f x" rule: ennreal_cases) case top with x show ?thesis unfolding A_def by (auto intro: exI[of _ 0]) next case (real r) with ennreal_Ex_less_of_nat[of "f x"] obtain n :: nat where"f x < n" by auto alsohave"n < (Suc n :: ennreal)" by simp finallyshow ?thesis using x real by (auto simp: A_def ennreal_of_nat_eq_real_of_nat intro!: exI[of _ "Suc n"]) qed qed (auto simp: A_def) finallyshow"\(range (\(i, j). A i \ Q j)) = space ?N" by simp next fix X assume"X \ range (\(i, j). A i \ Q j)" thenobtain i j where [simp]:"X = A i \ Q j" by auto have"(\\<^sup>+x. f x * indicator (A i \ Q j) x \M) \ \" proof (cases i) case 0 have"AE x in M. f x * indicator (A i \ Q j) x = 0" using AE by (auto simp: A_def \<open>i = 0\<close>) from nn_integral_cong_AE[OF this] show ?thesis by simp next case (Suc n) thenhave"(\\<^sup>+x. f x * indicator (A i \ Q j) x \M) \
(\<integral>\<^sup>+x. (Suc n :: ennreal) * indicator (Q j) x \<partial>M)" by (auto intro!: nn_integral_mono simp: indicator_def A_def ennreal_of_nat_eq_real_of_nat) alsohave"\ = Suc n * emeasure M (Q j)" using Q by (auto intro!: nn_integral_cmult_indicator) alsohave"\ < \" using Q by (auto simp: ennreal_mult_less_top less_top of_nat_less_top) finallyshow ?thesis by simp qed thenshow"emeasure ?N X \ \" using A_in_sets Q f by (auto simp: emeasure_density) qed qed
lemma (in sigma_finite_measure) sigma_finite_iff_density_finite: "f \ borel_measurable M \ sigma_finite_measure (density M f) \ (AE x in M. f x \ \)" by (subst sigma_finite_iff_density_finite')
(auto simp: max_def intro!: measurable_If)
definition\<^marker>\<open>tag important\<close> RN_deriv :: "'a measure \<Rightarrow> 'a measure \<Rightarrow> 'a \<Rightarrow> ennreal" where "RN_deriv M N =
(if\<exists>f. f \<in> borel_measurable M \<and> density M f = N then SOME f. f \<in> borel_measurable M \<and> density M f = N
else (\<lambda>_. 0))"
lemma RN_derivI: assumes"f \ borel_measurable M" "density M f = N" shows"density M (RN_deriv M N) = N" proof - have *: "\f. f \ borel_measurable M \ density M f = N" using assms by auto thenhave"density M (SOME f. f \ borel_measurable M \ density M f = N) = N" by (rule someI2_ex) auto with * show ?thesis by (auto simp: RN_deriv_def) qed
lemma borel_measurable_RN_deriv[measurable]: "RN_deriv M N \ borel_measurable M" proof -
{ assume ex: "\f. f \ borel_measurable M \ density M f = N" have 1: "(SOME f. f \ borel_measurable M \ density M f = N) \ borel_measurable M" using ex by (rule someI2_ex) auto } from this show ?thesis by (auto simp: RN_deriv_def) qed
lemma density_RN_deriv_density: assumes f: "f \ borel_measurable M" shows"density M (RN_deriv M (density M f)) = density M f" by (rule RN_derivI[OF f]) simp
lemma (in sigma_finite_measure) density_RN_deriv: "absolutely_continuous M N \ sets N = sets M \ density M (RN_deriv M N) = N" by (metis RN_derivI Radon_Nikodym)
lemma (in sigma_finite_measure) RN_deriv_nn_integral: assumes N: "absolutely_continuous M N""sets N = sets M" and f: "f \ borel_measurable M" shows"integral\<^sup>N N f = (\\<^sup>+x. RN_deriv M N x * f x \M)" proof - have"integral\<^sup>N N f = integral\<^sup>N (density M (RN_deriv M N)) f" using N by (simp add: density_RN_deriv) alsohave"\ = (\\<^sup>+x. RN_deriv M N x * f x \M)" using f by (simp add: nn_integral_density) finallyshow ?thesis by simp qed
lemma (in sigma_finite_measure) RN_deriv_unique: assumes f: "f \ borel_measurable M" and eq: "density M f = N" shows"AE x in M. f x = RN_deriv M N x" unfolding eq[symmetric] by (intro density_unique_iff[THEN iffD1] f borel_measurable_RN_deriv
density_RN_deriv_density[symmetric])
lemma RN_deriv_unique_sigma_finite: assumes f: "f \ borel_measurable M" and eq: "density M f = N"and fin: "sigma_finite_measure N" shows"AE x in M. f x = RN_deriv M N x" using fin unfolding eq[symmetric] by (intro sigma_finite_density_unique[THEN iffD1] f borel_measurable_RN_deriv
density_RN_deriv_density[symmetric])
lemma (in sigma_finite_measure) RN_deriv_distr: fixes T :: "'a \ 'b" assumes T: "T \ measurable M M'" and T': "T' \ measurable M' M" and inv: "\x\space M. T' (T x) = x" and ac[simp]: "absolutely_continuous (distr M M' T) (distr N M' T)" and N: "sets N = sets M" shows"AE x in M. RN_deriv (distr M M' T) (distr N M' T) (T x) = RN_deriv M N x" proof (rule RN_deriv_unique) have [simp]: "sets N = sets M"by fact note sets_eq_imp_space_eq[OF N, simp] have measurable_N[simp]: "\M'. measurable N M' = measurable M M'" by (auto simp: measurable_def)
{ fix A assume"A \ sets M" with inv T T' sets.sets_into_space[OF this] have"T -` T' -` A \ T -` space M' \ space M = A" by (auto simp: measurable_def) } note eq = this[simp]
{ fix A assume"A \ sets M" with inv T T' sets.sets_into_space[OF this] have"(T' \ T) -` A \ space M = A" by (auto simp: measurable_def) } note eq2 = this[simp] let ?M' = "distr M M' T" and ?N' = "distr N M' T" interpret M': sigma_finite_measure ?M' proof from sigma_finite_countable obtain F where F: "countable F \ F \ sets M \ \ F = space M \ (\a\F. emeasure M a \ \)" .. show"\A. countable A \ A \ sets (distr M M' T) \ \A = space (distr M M' T) \ (\a\A. emeasure (distr M M' T) a \ \)" proof (intro exI conjI ballI) show *: "(\A. T' -` A \ space ?M') ` F \ sets ?M'" using F T' by (auto simp: measurable_def) show"\((\A. T' -` A \ space ?M')`F) = space ?M'" using F T'[THEN measurable_space] by (auto simp: set_eq_iff) next fix X assume"X \ (\A. T' -` A \ space ?M')`F" thenobtain A where [simp]: "X = T' -` A \ space ?M'" and "A \ F" by auto have"X \ sets M'" using F T' \A\F\ by auto moreover have Fi: "A \ sets M" using F \A\F\ by auto ultimatelyshow"emeasure ?M' X \ \" using F T T' \A\F\ by (simp add: emeasure_distr) qed (use F in auto) qed have"(RN_deriv ?M' ?N') \ T \ borel_measurable M" using T ac by measurable thenshow"(\x. RN_deriv ?M' ?N' (T x)) \ borel_measurable M" by (simp add: comp_def)
have"N = distr N M (T' \ T)" by (subst measure_of_of_measure[of N, symmetric])
(auto simp add: distr_def sets.sigma_sets_eq intro!: measure_of_eq sets.space_closed) alsohave"\ = distr (distr N M' T) M T'" using T T' by (simp add: distr_distr) alsohave"\ = distr (density (distr M M' T) (RN_deriv (distr M M' T) (distr N M' T))) M T'" using ac by (simp add: M'.density_RN_deriv) alsohave"\ = density M (RN_deriv (distr M M' T) (distr N M' T) \ T)" by (simp add: distr_density_distr[OF T T', OF inv]) finallyshow"density M (\x. RN_deriv (distr M M' T) (distr N M' T) (T x)) = N" by (simp add: comp_def) qed
lemma (in sigma_finite_measure) RN_deriv_finite: assumes N: "sigma_finite_measure N"and ac: "absolutely_continuous M N""sets N = sets M" shows"AE x in M. RN_deriv M N x \ \" proof - interpret N: sigma_finite_measure N by fact from N show ?thesis using sigma_finite_iff_density_finite[OF borel_measurable_RN_deriv, of N] density_RN_deriv[OF ac] by simp qed
lemma (in sigma_finite_measure) assumes N: "sigma_finite_measure N"and ac: "absolutely_continuous M N""sets N = sets M" and f: "f \ borel_measurable M" shows RN_deriv_integrable: "integrable N f \
integrable M (\<lambda>x. enn2real (RN_deriv M N x) * f x)" (is ?integrable) and RN_deriv_integral: "integral\<^sup>L N f = (\x. enn2real (RN_deriv M N x) * f x \M)" (is ?integral) proof - note ac(2)[simp] and sets_eq_imp_space_eq[OF ac(2), simp] interpret N: sigma_finite_measure N by fact
have eq: "density M (RN_deriv M N) = density M (\x. enn2real (RN_deriv M N x))" proof (rule density_cong) from RN_deriv_finite[OF assms(1,2,3)] show"AE x in M. RN_deriv M N x = ennreal (enn2real (RN_deriv M N x))" by eventually_elim (auto simp: less_top) qed (insert ac, auto)
show ?integrable apply (subst density_RN_deriv[OF ac, symmetric]) unfolding eq apply (intro integrable_real_density f AE_I2 enn2real_nonneg) apply (insert ac, auto) done
show ?integral apply (subst density_RN_deriv[OF ac, symmetric]) unfolding eq apply (intro integral_real_density f AE_I2 enn2real_nonneg) apply (insert ac, auto) done qed
proposition (in sigma_finite_measure) real_RN_deriv: assumes"finite_measure N" assumes ac: "absolutely_continuous M N""sets N = sets M" obtains D where"D \ borel_measurable M" and"AE x in M. RN_deriv M N x = ennreal (D x)" and"AE x in N. 0 < D x" and"\x. 0 \ D x" proof interpret N: finite_measure N by fact
show"(\x. enn2real (RN_deriv M N x)) \ borel_measurable M" using RN by auto
have"N (?RN \) = (\\<^sup>+ x. RN_deriv M N x * indicator (?RN \) x \M)" using RN(1) by (subst RN(2)[symmetric]) (auto simp: emeasure_density) alsohave"\ = (\\<^sup>+ x. \ * indicator (?RN \) x \M)" by (intro nn_integral_cong) (auto simp: indicator_def) alsohave"\ = \ * emeasure M (?RN \)" using RN by (intro nn_integral_cmult_indicator) auto finallyhave eq: "N (?RN \) = \ * emeasure M (?RN \)" . moreover have"emeasure M (?RN \) = 0" proof (rule ccontr) assume"emeasure M {x \ space M. RN_deriv M N x = \} \ 0" thenhave"0 < emeasure M {x \ space M. RN_deriv M N x = \}" by (auto simp: zero_less_iff_neq_zero) with eq have"N (?RN \) = \" by (simp add: ennreal_mult_eq_top_iff) with N.emeasure_finite[of "?RN \"] RN show False by auto qed ultimatelyhave"AE x in M. RN_deriv M N x < \" using RN by (intro AE_iff_measurable[THEN iffD2]) (auto simp: less_top[symmetric]) thenshow"AE x in M. RN_deriv M N x = ennreal (enn2real (RN_deriv M N x))" by auto thenhave eq: "AE x in N. RN_deriv M N x = ennreal (enn2real (RN_deriv M N x))" using ac absolutely_continuous_AE by auto
have"N (?RN 0) = (\\<^sup>+ x. RN_deriv M N x * indicator (?RN 0) x \M)" by (subst RN(2)[symmetric]) (auto simp: emeasure_density) alsohave"\ = (\\<^sup>+ x. 0 \M)" by (intro nn_integral_cong) (auto simp: indicator_def) finallyhave"AE x in N. RN_deriv M N x \ 0" using RN by (subst AE_iff_measurable[OF _ refl]) (auto simp: ac cong: sets_eq_imp_space_eq) with eq show"AE x in N. 0 < enn2real (RN_deriv M N x)" by (auto simp: enn2real_positive_iff less_top[symmetric] zero_less_iff_neq_zero) qed (rule enn2real_nonneg)
lemma (in sigma_finite_measure) RN_deriv_singleton: assumes ac: "absolutely_continuous M N""sets N = sets M" and x: "{x} \ sets M" shows"N {x} = RN_deriv M N x * emeasure M {x}" proof - from\<open>{x} \<in> sets M\<close> have"density M (RN_deriv M N) {x} = (\\<^sup>+w. RN_deriv M N x * indicator {x} w \M)" by (auto simp: indicator_def emeasure_density intro!: nn_integral_cong) with x density_RN_deriv[OF ac] show ?thesis by (auto simp: max_def) qed
end
¤ Dauer der Verarbeitung: 0.26 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.