src/HOL/Probability/Measure_Space.thy
changeset 60727 53697011b03a
parent 60715 ee0afee54b1d
child 60772 a0cfa9050fa8
equal deleted inserted replaced
60726:6d500a224cbe 60727:53697011b03a
    38   assume *: "x \<in> (\<Union>i. A i)"
    38   assume *: "x \<in> (\<Union>i. A i)"
    39   then obtain i where "x \<in> A i" by auto
    39   then obtain i where "x \<in> A i" by auto
    40   from suminf_cmult_indicator[OF assms(1), OF `x \<in> A i`, of "\<lambda>k. 1"]
    40   from suminf_cmult_indicator[OF assms(1), OF `x \<in> A i`, of "\<lambda>k. 1"]
    41   show ?thesis using * by simp
    41   show ?thesis using * by simp
    42 qed simp
    42 qed simp
       
    43 
       
    44 lemma setsum_indicator_disjoint_family:
       
    45   fixes f :: "'d \<Rightarrow> 'e::semiring_1"
       
    46   assumes d: "disjoint_family_on A P" and "x \<in> A j" and "finite P" and "j \<in> P"
       
    47   shows "(\<Sum>i\<in>P. f i * indicator (A i) x) = f j"
       
    48 proof -
       
    49   have "P \<inter> {i. x \<in> A i} = {j}"
       
    50     using d `x \<in> A j` `j \<in> P` unfolding disjoint_family_on_def
       
    51     by auto
       
    52   thus ?thesis
       
    53     unfolding indicator_def
       
    54     by (simp add: if_distrib setsum.If_cases[OF `finite P`])
       
    55 qed
    43 
    56 
    44 text {*
    57 text {*
    45   The type for emeasure spaces is already defined in @{theory Sigma_Algebra}, as it is also used to
    58   The type for emeasure spaces is already defined in @{theory Sigma_Algebra}, as it is also used to
    46   represent sigma algebras (with an arbitrary emeasure).
    59   represent sigma algebras (with an arbitrary emeasure).
    47 *}
    60 *}
   117 proof (induct n)
   130 proof (induct n)
   118   case (Suc n)
   131   case (Suc n)
   119   then have "(\<Sum>i\<le>Suc n. f (disjointed A i)) = f (A n) + f (disjointed A (Suc n))"
   132   then have "(\<Sum>i\<le>Suc n. f (disjointed A i)) = f (A n) + f (disjointed A (Suc n))"
   120     by simp
   133     by simp
   121   also have "\<dots> = f (A n \<union> disjointed A (Suc n))"
   134   also have "\<dots> = f (A n \<union> disjointed A (Suc n))"
   122     using A by (subst f(2)[THEN additiveD]) (auto simp: disjointed_incseq)
   135     using A by (subst f(2)[THEN additiveD]) (auto simp: disjointed_mono)
   123   also have "A n \<union> disjointed A (Suc n) = A (Suc n)"
   136   also have "A n \<union> disjointed A (Suc n) = A (Suc n)"
   124     using `incseq A` by (auto dest: incseq_SucD simp: disjointed_incseq)
   137     using `incseq A` by (auto dest: incseq_SucD simp: disjointed_mono)
   125   finally show ?case .
   138   finally show ?case .
   126 qed simp
   139 qed simp
   127 
   140 
   128 lemma (in ring_of_sets) additive_sum:
   141 lemma (in ring_of_sets) additive_sum:
   129   fixes A:: "'i \<Rightarrow> 'a set"
   142   fixes A:: "'i \<Rightarrow> 'a set"