1060 apply (auto simp: max_def intro!: measurable_If) |
1060 apply (auto simp: max_def intro!: measurable_If) |
1061 done |
1061 done |
1062 |
1062 |
1063 section "Radon-Nikodym derivative" |
1063 section "Radon-Nikodym derivative" |
1064 |
1064 |
1065 definition |
1065 definition RN_deriv :: "'a measure \<Rightarrow> 'a measure \<Rightarrow> 'a \<Rightarrow> ereal" where |
1066 "RN_deriv M N \<equiv> SOME f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N" |
1066 "RN_deriv M N = |
1067 |
1067 (if \<exists>f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N |
1068 lemma |
1068 then SOME f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N |
|
1069 else (\<lambda>_. 0))" |
|
1070 |
|
1071 lemma RN_derivI: |
|
1072 assumes "f \<in> borel_measurable M" "\<And>x. 0 \<le> f x" "density M f = N" |
|
1073 shows "density M (RN_deriv M N) = N" |
|
1074 proof - |
|
1075 have "\<exists>f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N" |
|
1076 using assms by auto |
|
1077 moreover then have "density M (SOME f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N) = N" |
|
1078 by (rule someI2_ex) auto |
|
1079 ultimately show ?thesis |
|
1080 by (auto simp: RN_deriv_def) |
|
1081 qed |
|
1082 |
|
1083 lemma |
|
1084 shows borel_measurable_RN_deriv[measurable]: "RN_deriv M N \<in> borel_measurable M" (is ?m) |
|
1085 and RN_deriv_nonneg: "0 \<le> RN_deriv M N x" (is ?nn) |
|
1086 proof - |
|
1087 { assume ex: "\<exists>f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N" |
|
1088 have 1: "(SOME f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N) \<in> borel_measurable M" |
|
1089 using ex by (rule someI2_ex) auto |
|
1090 moreover |
|
1091 have 2: "0 \<le> (SOME f. f \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> f x) \<and> density M f = N) x" |
|
1092 using ex by (rule someI2_ex) auto |
|
1093 note 1 2 } |
|
1094 from this show ?m ?nn |
|
1095 by (auto simp: RN_deriv_def) |
|
1096 qed |
|
1097 |
|
1098 lemma density_RN_deriv_density: |
1069 assumes f: "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" |
1099 assumes f: "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" |
1070 shows borel_measurable_RN_deriv_density: "RN_deriv M (density M f) \<in> borel_measurable M" (is ?borel) |
1100 shows "density M (RN_deriv M (density M f)) = density M f" |
1071 and density_RN_deriv_density: "density M (RN_deriv M (density M f)) = density M f" (is ?density) |
1101 proof (rule RN_derivI) |
1072 and RN_deriv_density_nonneg: "0 \<le> RN_deriv M (density M f) x" (is ?pos) |
1102 show "(\<lambda>x. max 0 (f x)) \<in> borel_measurable M" "\<And>x. 0 \<le> max 0 (f x)" |
1073 proof - |
1103 using f by auto |
1074 let ?f = "\<lambda>x. max 0 (f x)" |
1104 show "density M (\<lambda>x. max 0 (f x)) = density M f" |
1075 let ?P = "\<lambda>g. g \<in> borel_measurable M \<and> (\<forall>x. 0 \<le> g x) \<and> density M g = density M f" |
1105 using f by (intro density_cong) (auto simp: max_def) |
1076 from f have "?P ?f" using f by (auto intro!: density_cong simp: split: split_max) |
1106 qed |
1077 then have "?P (RN_deriv M (density M f))" |
1107 |
1078 unfolding RN_deriv_def by (rule someI[where P="?P"]) |
1108 lemma (in sigma_finite_measure) density_RN_deriv: |
1079 then show ?borel ?density ?pos by auto |
1109 "absolutely_continuous M N \<Longrightarrow> sets N = sets M \<Longrightarrow> density M (RN_deriv M N) = N" |
1080 qed |
1110 by (metis RN_derivI Radon_Nikodym) |
1081 |
|
1082 lemma (in sigma_finite_measure) RN_deriv: |
|
1083 assumes "absolutely_continuous M N" "sets N = sets M" |
|
1084 shows borel_measurable_RN_deriv[measurable]: "RN_deriv M N \<in> borel_measurable M" (is ?borel) |
|
1085 and density_RN_deriv: "density M (RN_deriv M N) = N" (is ?density) |
|
1086 and RN_deriv_nonneg: "0 \<le> RN_deriv M N x" (is ?pos) |
|
1087 proof - |
|
1088 note Ex = Radon_Nikodym[OF assms, unfolded Bex_def] |
|
1089 from Ex show ?borel unfolding RN_deriv_def by (rule someI2_ex) simp |
|
1090 from Ex show ?density unfolding RN_deriv_def by (rule someI2_ex) simp |
|
1091 from Ex show ?pos unfolding RN_deriv_def by (rule someI2_ex) simp |
|
1092 qed |
|
1093 |
1111 |
1094 lemma (in sigma_finite_measure) RN_deriv_positive_integral: |
1112 lemma (in sigma_finite_measure) RN_deriv_positive_integral: |
1095 assumes N: "absolutely_continuous M N" "sets N = sets M" |
1113 assumes N: "absolutely_continuous M N" "sets N = sets M" |
1096 and f: "f \<in> borel_measurable M" |
1114 and f: "f \<in> borel_measurable M" |
1097 shows "integral\<^sup>P N f = (\<integral>\<^sup>+x. RN_deriv M N x * f x \<partial>M)" |
1115 shows "integral\<^sup>P N f = (\<integral>\<^sup>+x. RN_deriv M N x * f x \<partial>M)" |
1098 proof - |
1116 proof - |
1099 have "integral\<^sup>P N f = integral\<^sup>P (density M (RN_deriv M N)) f" |
1117 have "integral\<^sup>P N f = integral\<^sup>P (density M (RN_deriv M N)) f" |
1100 using N by (simp add: density_RN_deriv) |
1118 using N by (simp add: density_RN_deriv) |
1101 also have "\<dots> = (\<integral>\<^sup>+x. RN_deriv M N x * f x \<partial>M)" |
1119 also have "\<dots> = (\<integral>\<^sup>+x. RN_deriv M N x * f x \<partial>M)" |
1102 using RN_deriv(1,3)[OF N] f by (simp add: positive_integral_density) |
1120 using f by (simp add: positive_integral_density RN_deriv_nonneg) |
1103 finally show ?thesis by simp |
1121 finally show ?thesis by simp |
1104 qed |
1122 qed |
1105 |
1123 |
1106 lemma null_setsD_AE: "N \<in> null_sets M \<Longrightarrow> AE x in M. x \<notin> N" |
1124 lemma null_setsD_AE: "N \<in> null_sets M \<Longrightarrow> AE x in M. x \<notin> N" |
1107 using AE_iff_null_sets[of N M] by auto |
1125 using AE_iff_null_sets[of N M] by auto |
1109 lemma (in sigma_finite_measure) RN_deriv_unique: |
1127 lemma (in sigma_finite_measure) RN_deriv_unique: |
1110 assumes f: "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" |
1128 assumes f: "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" |
1111 and eq: "density M f = N" |
1129 and eq: "density M f = N" |
1112 shows "AE x in M. f x = RN_deriv M N x" |
1130 shows "AE x in M. f x = RN_deriv M N x" |
1113 unfolding eq[symmetric] |
1131 unfolding eq[symmetric] |
1114 by (intro density_unique_iff[THEN iffD1] f borel_measurable_RN_deriv_density |
1132 by (intro density_unique_iff[THEN iffD1] f borel_measurable_RN_deriv |
1115 RN_deriv_density_nonneg[THEN AE_I2] density_RN_deriv_density[symmetric]) |
1133 RN_deriv_nonneg[THEN AE_I2] density_RN_deriv_density[symmetric]) |
1116 |
1134 |
1117 lemma RN_deriv_unique_sigma_finite: |
1135 lemma RN_deriv_unique_sigma_finite: |
1118 assumes f: "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" |
1136 assumes f: "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" |
1119 and eq: "density M f = N" and fin: "sigma_finite_measure N" |
1137 and eq: "density M f = N" and fin: "sigma_finite_measure N" |
1120 shows "AE x in M. f x = RN_deriv M N x" |
1138 shows "AE x in M. f x = RN_deriv M N x" |
1121 using fin unfolding eq[symmetric] |
1139 using fin unfolding eq[symmetric] |
1122 by (intro sigma_finite_density_unique[THEN iffD1] f borel_measurable_RN_deriv_density |
1140 by (intro sigma_finite_density_unique[THEN iffD1] f borel_measurable_RN_deriv |
1123 RN_deriv_density_nonneg[THEN AE_I2] density_RN_deriv_density[symmetric]) |
1141 RN_deriv_nonneg[THEN AE_I2] density_RN_deriv_density[symmetric]) |
1124 |
1142 |
1125 lemma (in sigma_finite_measure) RN_deriv_distr: |
1143 lemma (in sigma_finite_measure) RN_deriv_distr: |
1126 fixes T :: "'a \<Rightarrow> 'b" |
1144 fixes T :: "'a \<Rightarrow> 'b" |
1127 assumes T: "T \<in> measurable M M'" and T': "T' \<in> measurable M' M" |
1145 assumes T: "T \<in> measurable M M'" and T': "T' \<in> measurable M' M" |
1128 and inv: "\<forall>x\<in>space M. T' (T x) = x" |
1146 and inv: "\<forall>x\<in>space M. T' (T x) = x" |
1163 qed |
1181 qed |
1164 have "(RN_deriv ?M' ?N') \<circ> T \<in> borel_measurable M" |
1182 have "(RN_deriv ?M' ?N') \<circ> T \<in> borel_measurable M" |
1165 using T ac by measurable |
1183 using T ac by measurable |
1166 then show "(\<lambda>x. RN_deriv ?M' ?N' (T x)) \<in> borel_measurable M" |
1184 then show "(\<lambda>x. RN_deriv ?M' ?N' (T x)) \<in> borel_measurable M" |
1167 by (simp add: comp_def) |
1185 by (simp add: comp_def) |
1168 show "AE x in M. 0 \<le> RN_deriv ?M' ?N' (T x)" using M'.RN_deriv_nonneg[OF ac] by auto |
1186 show "AE x in M. 0 \<le> RN_deriv ?M' ?N' (T x)" by (auto intro: RN_deriv_nonneg) |
1169 |
1187 |
1170 have "N = distr N M (T' \<circ> T)" |
1188 have "N = distr N M (T' \<circ> T)" |
1171 by (subst measure_of_of_measure[of N, symmetric]) |
1189 by (subst measure_of_of_measure[of N, symmetric]) |
1172 (auto simp add: distr_def sets.sigma_sets_eq intro!: measure_of_eq sets.space_closed) |
1190 (auto simp add: distr_def sets.sigma_sets_eq intro!: measure_of_eq sets.space_closed) |
1173 also have "\<dots> = distr (distr N M' T) M T'" |
1191 also have "\<dots> = distr (distr N M' T) M T'" |
1174 using T T' by (simp add: distr_distr) |
1192 using T T' by (simp add: distr_distr) |
1175 also have "\<dots> = distr (density (distr M M' T) (RN_deriv (distr M M' T) (distr N M' T))) M T'" |
1193 also have "\<dots> = distr (density (distr M M' T) (RN_deriv (distr M M' T) (distr N M' T))) M T'" |
1176 using ac by (simp add: M'.density_RN_deriv) |
1194 using ac by (simp add: M'.density_RN_deriv) |
1177 also have "\<dots> = density M (RN_deriv (distr M M' T) (distr N M' T) \<circ> T)" |
1195 also have "\<dots> = density M (RN_deriv (distr M M' T) (distr N M' T) \<circ> T)" |
1178 using M'.borel_measurable_RN_deriv[OF ac] by (simp add: distr_density_distr[OF T T', OF inv]) |
1196 by (simp add: distr_density_distr[OF T T', OF inv]) |
1179 finally show "density M (\<lambda>x. RN_deriv (distr M M' T) (distr N M' T) (T x)) = N" |
1197 finally show "density M (\<lambda>x. RN_deriv (distr M M' T) (distr N M' T) (T x)) = N" |
1180 by (simp add: comp_def) |
1198 by (simp add: comp_def) |
1181 qed |
1199 qed |
1182 |
1200 |
1183 lemma (in sigma_finite_measure) RN_deriv_finite: |
1201 lemma (in sigma_finite_measure) RN_deriv_finite: |
1184 assumes N: "sigma_finite_measure N" and ac: "absolutely_continuous M N" "sets N = sets M" |
1202 assumes N: "sigma_finite_measure N" and ac: "absolutely_continuous M N" "sets N = sets M" |
1185 shows "AE x in M. RN_deriv M N x \<noteq> \<infinity>" |
1203 shows "AE x in M. RN_deriv M N x \<noteq> \<infinity>" |
1186 proof - |
1204 proof - |
1187 interpret N: sigma_finite_measure N by fact |
1205 interpret N: sigma_finite_measure N by fact |
1188 from N show ?thesis |
1206 from N show ?thesis |
1189 using sigma_finite_iff_density_finite[OF RN_deriv(1)[OF ac]] RN_deriv(2,3)[OF ac] by simp |
1207 using sigma_finite_iff_density_finite[OF borel_measurable_RN_deriv, of N] |
|
1208 density_RN_deriv[OF ac] |
|
1209 by (simp add: RN_deriv_nonneg) |
1190 qed |
1210 qed |
1191 |
1211 |
1192 lemma (in sigma_finite_measure) |
1212 lemma (in sigma_finite_measure) |
1193 assumes N: "sigma_finite_measure N" and ac: "absolutely_continuous M N" "sets N = sets M" |
1213 assumes N: "sigma_finite_measure N" and ac: "absolutely_continuous M N" "sets N = sets M" |
1194 and f: "f \<in> borel_measurable M" |
1214 and f: "f \<in> borel_measurable M" |
1195 shows RN_deriv_integrable: "integrable N f \<longleftrightarrow> |
1215 shows RN_deriv_integrable: "integrable N f \<longleftrightarrow> |
1196 integrable M (\<lambda>x. real (RN_deriv M N x) * f x)" (is ?integrable) |
1216 integrable M (\<lambda>x. real (RN_deriv M N x) * f x)" (is ?integrable) |
1197 and RN_deriv_integral: "integral\<^sup>L N f = |
1217 and RN_deriv_integral: "integral\<^sup>L N f = (\<integral>x. real (RN_deriv M N x) * f x \<partial>M)" (is ?integral) |
1198 (\<integral>x. real (RN_deriv M N x) * f x \<partial>M)" (is ?integral) |
|
1199 proof - |
1218 proof - |
1200 note ac(2)[simp] and sets_eq_imp_space_eq[OF ac(2), simp] |
1219 note ac(2)[simp] and sets_eq_imp_space_eq[OF ac(2), simp] |
1201 interpret N: sigma_finite_measure N by fact |
1220 interpret N: sigma_finite_measure N by fact |
1202 have minus_cong: "\<And>A B A' B'::ereal. A = A' \<Longrightarrow> B = B' \<Longrightarrow> real A - real B = real A' - real B'" by simp |
1221 |
1203 have f': "(\<lambda>x. - f x) \<in> borel_measurable M" using f by auto |
1222 have eq: "density M (RN_deriv M N) = density M (\<lambda>x. real (RN_deriv M N x))" |
1204 have Nf: "f \<in> borel_measurable N" using f by (simp add: measurable_def) |
1223 proof (rule density_cong) |
1205 { fix f :: "'a \<Rightarrow> real" |
1224 from RN_deriv_finite[OF assms(1,2,3)] |
1206 { fix x assume *: "RN_deriv M N x \<noteq> \<infinity>" |
1225 show "AE x in M. RN_deriv M N x = ereal (real (RN_deriv M N x))" |
1207 have "ereal (real (RN_deriv M N x)) * ereal (f x) = ereal (real (RN_deriv M N x) * f x)" |
1226 by eventually_elim (insert RN_deriv_nonneg[of M N], auto simp: ereal_real) |
1208 by (simp add: mult_le_0_iff) |
1227 qed (insert ac, auto) |
1209 then have "RN_deriv M N x * ereal (f x) = ereal (real (RN_deriv M N x) * f x)" |
1228 |
1210 using RN_deriv(3)[OF ac] * by (auto simp add: ereal_real split: split_if_asm) } |
1229 show ?integrable |
1211 then have "(\<integral>\<^sup>+x. ereal (real (RN_deriv M N x) * f x) \<partial>M) = (\<integral>\<^sup>+x. RN_deriv M N x * ereal (f x) \<partial>M)" |
1230 apply (subst density_RN_deriv[OF ac, symmetric]) |
1212 "(\<integral>\<^sup>+x. ereal (- (real (RN_deriv M N x) * f x)) \<partial>M) = (\<integral>\<^sup>+x. RN_deriv M N x * ereal (- f x) \<partial>M)" |
1231 unfolding eq |
1213 using RN_deriv_finite[OF N ac] unfolding ereal_mult_minus_right uminus_ereal.simps(1)[symmetric] |
1232 apply (intro integrable_real_density f AE_I2 real_of_ereal_pos RN_deriv_nonneg) |
1214 by (auto intro!: positive_integral_cong_AE) } |
1233 apply (insert ac, auto) |
1215 note * = this |
1234 done |
1216 show ?integral ?integrable |
1235 |
1217 unfolding lebesgue_integral_def integrable_def * |
1236 show ?integral |
1218 using Nf f RN_deriv(1)[OF ac] |
1237 apply (subst density_RN_deriv[OF ac, symmetric]) |
1219 by (auto simp: RN_deriv_positive_integral[OF ac]) |
1238 unfolding eq |
|
1239 apply (intro integral_real_density f AE_I2 real_of_ereal_pos RN_deriv_nonneg) |
|
1240 apply (insert ac, auto) |
|
1241 done |
1220 qed |
1242 qed |
1221 |
1243 |
1222 lemma (in sigma_finite_measure) real_RN_deriv: |
1244 lemma (in sigma_finite_measure) real_RN_deriv: |
1223 assumes "finite_measure N" |
1245 assumes "finite_measure N" |
1224 assumes ac: "absolutely_continuous M N" "sets N = sets M" |
1246 assumes ac: "absolutely_continuous M N" "sets N = sets M" |