175 sublocale completeable_measure_space \<subseteq> completion!: measure_space completion |
174 sublocale completeable_measure_space \<subseteq> completion!: measure_space completion |
176 where "measure completion = \<mu>'" |
175 where "measure completion = \<mu>'" |
177 proof - |
176 proof - |
178 show "measure_space completion" |
177 show "measure_space completion" |
179 proof |
178 proof |
180 show "measure completion {} = 0" by (auto simp: completion_def) |
179 show "positive completion (measure completion)" |
|
180 by (auto simp: completion_def positive_def) |
181 next |
181 next |
182 show "countably_additive completion (measure completion)" |
182 show "countably_additive completion (measure completion)" |
183 proof (intro countably_additiveI) |
183 proof (intro countably_additiveI) |
184 fix A :: "nat \<Rightarrow> 'a set" assume A: "range A \<subseteq> sets completion" "disjoint_family A" |
184 fix A :: "nat \<Rightarrow> 'a set" assume A: "range A \<subseteq> sets completion" "disjoint_family A" |
185 have "disjoint_family (\<lambda>i. main_part (A i))" |
185 have "disjoint_family (\<lambda>i. main_part (A i))" |
187 fix n m assume "A n \<inter> A m = {}" |
187 fix n m assume "A n \<inter> A m = {}" |
188 then have "(main_part (A n) \<union> null_part (A n)) \<inter> (main_part (A m) \<union> null_part (A m)) = {}" |
188 then have "(main_part (A n) \<union> null_part (A n)) \<inter> (main_part (A m) \<union> null_part (A m)) = {}" |
189 using A by (subst (1 2) main_part_null_part_Un) auto |
189 using A by (subst (1 2) main_part_null_part_Un) auto |
190 then show "main_part (A n) \<inter> main_part (A m) = {}" by auto |
190 then show "main_part (A n) \<inter> main_part (A m) = {}" by auto |
191 qed |
191 qed |
192 then have "(\<Sum>\<^isub>\<infinity>n. measure completion (A n)) = \<mu> (\<Union>i. main_part (A i))" |
192 then have "(\<Sum>n. measure completion (A n)) = \<mu> (\<Union>i. main_part (A i))" |
193 unfolding completion_def using A by (auto intro!: measure_countably_additive) |
193 unfolding completion_def using A by (auto intro!: measure_countably_additive) |
194 then show "(\<Sum>\<^isub>\<infinity>n. measure completion (A n)) = measure completion (UNION UNIV A)" |
194 then show "(\<Sum>n. measure completion (A n)) = measure completion (UNION UNIV A)" |
195 by (simp add: completion_def \<mu>_main_part_UN[OF A(1)]) |
195 by (simp add: completion_def \<mu>_main_part_UN[OF A(1)]) |
196 qed |
196 qed |
197 qed |
197 qed |
198 show "measure completion = \<mu>'" unfolding completion_def by simp |
198 show "measure completion = \<mu>'" unfolding completion_def by simp |
199 qed |
199 qed |
249 show "AE x. f x = ?f' x" |
249 show "AE x. f x = ?f' x" |
250 by (rule AE_I', rule sets) auto |
250 by (rule AE_I', rule sets) auto |
251 qed |
251 qed |
252 qed |
252 qed |
253 |
253 |
254 lemma (in completeable_measure_space) completion_ex_borel_measurable: |
254 lemma (in completeable_measure_space) completion_ex_borel_measurable_pos: |
255 fixes g :: "'a \<Rightarrow> pextreal" |
255 fixes g :: "'a \<Rightarrow> extreal" |
256 assumes g: "g \<in> borel_measurable completion" |
256 assumes g: "g \<in> borel_measurable completion" and "\<And>x. 0 \<le> g x" |
257 shows "\<exists>g'\<in>borel_measurable M. (AE x. g x = g' x)" |
257 shows "\<exists>g'\<in>borel_measurable M. (AE x. g x = g' x)" |
258 proof - |
258 proof - |
259 from g[THEN completion.borel_measurable_implies_simple_function_sequence] |
259 from g[THEN completion.borel_measurable_implies_simple_function_sequence'] guess f . note f = this |
260 obtain f where "\<And>i. simple_function completion (f i)" "f \<up> g" by auto |
260 from this(1)[THEN completion_ex_simple_function] |
261 then have "\<forall>i. \<exists>f'. simple_function M f' \<and> (AE x. f i x = f' x)" |
261 have "\<forall>i. \<exists>f'. simple_function M f' \<and> (AE x. f i x = f' x)" .. |
262 using completion_ex_simple_function by auto |
|
263 from this[THEN choice] obtain f' where |
262 from this[THEN choice] obtain f' where |
264 sf: "\<And>i. simple_function M (f' i)" and |
263 sf: "\<And>i. simple_function M (f' i)" and |
265 AE: "\<forall>i. AE x. f i x = f' i x" by auto |
264 AE: "\<forall>i. AE x. f i x = f' i x" by auto |
266 show ?thesis |
265 show ?thesis |
267 proof (intro bexI) |
266 proof (intro bexI) |
268 from AE[unfolded all_AE_countable] |
267 from AE[unfolded AE_all_countable[symmetric]] |
269 show "AE x. g x = (SUP i. f' i x)" (is "AE x. g x = ?f x") |
268 show "AE x. g x = (SUP i. f' i x)" (is "AE x. g x = ?f x") |
270 proof (elim AE_mp, safe intro!: AE_I2) |
269 proof (elim AE_mp, safe intro!: AE_I2) |
271 fix x assume eq: "\<forall>i. f i x = f' i x" |
270 fix x assume eq: "\<forall>i. f i x = f' i x" |
272 moreover have "g = SUPR UNIV f" using `f \<up> g` unfolding isoton_def by simp |
271 moreover have "g x = (SUP i. f i x)" |
273 ultimately show "g x = ?f x" by (simp add: SUPR_apply) |
272 unfolding f using `0 \<le> g x` by (auto split: split_max) |
|
273 ultimately show "g x = ?f x" by auto |
274 qed |
274 qed |
275 show "?f \<in> borel_measurable M" |
275 show "?f \<in> borel_measurable M" |
276 using sf by (auto intro: borel_measurable_simple_function) |
276 using sf by (auto intro: borel_measurable_simple_function) |
277 qed |
277 qed |
278 qed |
278 qed |
279 |
279 |
|
280 lemma (in completeable_measure_space) completion_ex_borel_measurable: |
|
281 fixes g :: "'a \<Rightarrow> extreal" |
|
282 assumes g: "g \<in> borel_measurable completion" |
|
283 shows "\<exists>g'\<in>borel_measurable M. (AE x. g x = g' x)" |
|
284 proof - |
|
285 have "(\<lambda>x. max 0 (g x)) \<in> borel_measurable completion" "\<And>x. 0 \<le> max 0 (g x)" using g by auto |
|
286 from completion_ex_borel_measurable_pos[OF this] guess g_pos .. |
|
287 moreover |
|
288 have "(\<lambda>x. max 0 (- g x)) \<in> borel_measurable completion" "\<And>x. 0 \<le> max 0 (- g x)" using g by auto |
|
289 from completion_ex_borel_measurable_pos[OF this] guess g_neg .. |
|
290 ultimately |
|
291 show ?thesis |
|
292 proof (safe intro!: bexI[of _ "\<lambda>x. g_pos x - g_neg x"]) |
|
293 show "AE x. max 0 (- g x) = g_neg x \<longrightarrow> max 0 (g x) = g_pos x \<longrightarrow> g x = g_pos x - g_neg x" |
|
294 proof (intro AE_I2 impI) |
|
295 fix x assume g: "max 0 (- g x) = g_neg x" "max 0 (g x) = g_pos x" |
|
296 show "g x = g_pos x - g_neg x" unfolding g[symmetric] |
|
297 by (cases "g x") (auto split: split_max) |
|
298 qed |
|
299 qed auto |
|
300 qed |
|
301 |
280 end |
302 end |