equal
deleted
inserted
replaced
49 shows "(\<Sum>n. f n * indicator (A n) x) = f i" |
49 shows "(\<Sum>n. f n * indicator (A n) x) = f i" |
50 proof - |
50 proof - |
51 have **: "\<And>n. f n * indicator (A n) x = (if n = i then f n else 0 :: ereal)" |
51 have **: "\<And>n. f n * indicator (A n) x = (if n = i then f n else 0 :: ereal)" |
52 using `x \<in> A i` assms unfolding disjoint_family_on_def indicator_def by auto |
52 using `x \<in> A i` assms unfolding disjoint_family_on_def indicator_def by auto |
53 then have "\<And>n. (\<Sum>j<n. f j * indicator (A j) x) = (if i < n then f i else 0 :: ereal)" |
53 then have "\<And>n. (\<Sum>j<n. f j * indicator (A j) x) = (if i < n then f i else 0 :: ereal)" |
54 by (auto simp: setsum_cases) |
54 by (auto simp: setsum.If_cases) |
55 moreover have "(SUP n. if i < n then f i else 0) = (f i :: ereal)" |
55 moreover have "(SUP n. if i < n then f i else 0) = (f i :: ereal)" |
56 proof (rule SUP_eqI) |
56 proof (rule SUP_eqI) |
57 fix y :: ereal assume "\<And>n. n \<in> UNIV \<Longrightarrow> (if i < n then f i else 0) \<le> y" |
57 fix y :: ereal assume "\<And>n. n \<in> UNIV \<Longrightarrow> (if i < n then f i else 0) \<le> y" |
58 from this[of "Suc i"] show "f i \<le> y" by auto |
58 from this[of "Suc i"] show "f i \<le> y" by auto |
59 qed (insert assms, simp) |
59 qed (insert assms, simp) |
285 using disj by (auto simp: disjoint_family_on_def) |
285 using disj by (auto simp: disjoint_family_on_def) |
286 |
286 |
287 from fin_not_0 have "(\<Sum>i. \<mu> (F i)) = (\<Sum>i | \<mu> (F i) \<noteq> 0. \<mu> (F i))" |
287 from fin_not_0 have "(\<Sum>i. \<mu> (F i)) = (\<Sum>i | \<mu> (F i) \<noteq> 0. \<mu> (F i))" |
288 by (rule suminf_finite) auto |
288 by (rule suminf_finite) auto |
289 also have "\<dots> = (\<Sum>i | F i \<noteq> {}. \<mu> (F i))" |
289 also have "\<dots> = (\<Sum>i | F i \<noteq> {}. \<mu> (F i))" |
290 using fin_not_empty F_subset by (rule setsum_mono_zero_left) auto |
290 using fin_not_empty F_subset by (rule setsum.mono_neutral_left) auto |
291 also have "\<dots> = \<mu> (\<Union>i\<in>{i. F i \<noteq> {}}. F i)" |
291 also have "\<dots> = \<mu> (\<Union>i\<in>{i. F i \<noteq> {}}. F i)" |
292 using `positive M \<mu>` `additive M \<mu>` fin_not_empty disj_not_empty F by (intro additive_sum) auto |
292 using `positive M \<mu>` `additive M \<mu>` fin_not_empty disj_not_empty F by (intro additive_sum) auto |
293 also have "\<dots> = \<mu> (\<Union>i. F i)" |
293 also have "\<dots> = \<mu> (\<Union>i. F i)" |
294 by (rule arg_cong[where f=\<mu>]) auto |
294 by (rule arg_cong[where f=\<mu>]) auto |
295 finally show "(\<Sum>i. \<mu> (F i)) = \<mu> (\<Union>i. F i)" . |
295 finally show "(\<Sum>i. \<mu> (F i)) = \<mu> (\<Union>i. F i)" . |
666 fix X assume "X \<in> sets M" |
666 fix X assume "X \<in> sets M" |
667 then have X: "X \<subseteq> A" by auto |
667 then have X: "X \<subseteq> A" by auto |
668 then have "emeasure M X = (\<Sum>a\<in>X. emeasure M {a})" |
668 then have "emeasure M X = (\<Sum>a\<in>X. emeasure M {a})" |
669 using `finite A` by (subst emeasure_eq_setsum_singleton) (auto dest: finite_subset) |
669 using `finite A` by (subst emeasure_eq_setsum_singleton) (auto dest: finite_subset) |
670 also have "\<dots> = (\<Sum>a\<in>X. emeasure N {a})" |
670 also have "\<dots> = (\<Sum>a\<in>X. emeasure N {a})" |
671 using X eq by (auto intro!: setsum_cong) |
671 using X eq by (auto intro!: setsum.cong) |
672 also have "\<dots> = emeasure N X" |
672 also have "\<dots> = emeasure N X" |
673 using X `finite A` by (subst emeasure_eq_setsum_singleton) (auto dest: finite_subset) |
673 using X `finite A` by (subst emeasure_eq_setsum_singleton) (auto dest: finite_subset) |
674 finally show "emeasure M X = emeasure N X" . |
674 finally show "emeasure M X = emeasure N X" . |
675 qed simp |
675 qed simp |
676 |
676 |