src/HOL/Probability/Measure_Space.thy
changeset 57418 6ab1c7cb0b8d
parent 57276 49c51eeaa623
child 57446 06e195515deb
equal deleted inserted replaced
57417:29fe9bac501b 57418:6ab1c7cb0b8d
    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