src/HOL/Probability/Infinite_Product_Measure.thy
changeset 71938 e1b262e7480c
parent 67399 eab6ce8368fa
child 73253 f6bb31879698
equal deleted inserted replaced
71937:92de7d74b8f8 71938:e1b262e7480c
   351     using J by (intro P.emeasure_pair_measure_Times)  (auto intro!: sets_PiM_I finite_vimageI simp: inj_on_def)
   351     using J by (intro P.emeasure_pair_measure_Times)  (auto intro!: sets_PiM_I finite_vimageI simp: inj_on_def)
   352   also have "emeasure S ?F = (\<Prod>j\<in>((+) i) -` J. emeasure M (E (i + j)))"
   352   also have "emeasure S ?F = (\<Prod>j\<in>((+) i) -` J. emeasure M (E (i + j)))"
   353     using J by (intro emeasure_PiM_emb) (simp_all add: finite_vimageI inj_on_def)
   353     using J by (intro emeasure_PiM_emb) (simp_all add: finite_vimageI inj_on_def)
   354   also have "\<dots> = (\<Prod>j\<in>J - (J \<inter> {..<i}). emeasure M (E j))"
   354   also have "\<dots> = (\<Prod>j\<in>J - (J \<inter> {..<i}). emeasure M (E j))"
   355     by (rule prod.reindex_cong [of "\<lambda>x. x - i"])
   355     by (rule prod.reindex_cong [of "\<lambda>x. x - i"])
   356        (auto simp: image_iff Bex_def not_less nat_eq_diff_eq ac_simps cong: conj_cong intro!: inj_onI)
   356       (auto simp: image_iff ac_simps nat_eq_diff_eq cong: conj_cong intro!: inj_onI)
   357   also have "emeasure S ?E = (\<Prod>j\<in>J \<inter> {..<i}. emeasure M (E j))"
   357   also have "emeasure S ?E = (\<Prod>j\<in>J \<inter> {..<i}. emeasure M (E j))"
   358     using J by (intro emeasure_PiM_emb) simp_all
   358     using J by (intro emeasure_PiM_emb) simp_all
   359   also have "(\<Prod>j\<in>J \<inter> {..<i}. emeasure M (E j)) * (\<Prod>j\<in>J - (J \<inter> {..<i}). emeasure M (E j)) = (\<Prod>j\<in>J. emeasure M (E j))"
   359   also have "(\<Prod>j\<in>J \<inter> {..<i}. emeasure M (E j)) * (\<Prod>j\<in>J - (J \<inter> {..<i}). emeasure M (E j)) = (\<Prod>j\<in>J. emeasure M (E j))"
   360     by (subst mult.commute) (auto simp: J prod.subset_diff[symmetric])
   360     by (subst mult.commute) (auto simp: J prod.subset_diff[symmetric])
   361   finally show "emeasure ?D ?X = (\<Prod>j\<in>J. emeasure M (E j))" .
   361   finally show "emeasure ?D ?X = (\<Prod>j\<in>J. emeasure M (E j))" .
   382     using J by (intro P.emeasure_pair_measure_Times) (auto intro!: sets_PiM_I finite_vimageI)
   382     using J by (intro P.emeasure_pair_measure_Times) (auto intro!: sets_PiM_I finite_vimageI)
   383   also have "emeasure S ?F = (\<Prod>j\<in>Suc -` J. emeasure M (E (Suc j)))"
   383   also have "emeasure S ?F = (\<Prod>j\<in>Suc -` J. emeasure M (E (Suc j)))"
   384     using J by (intro emeasure_PiM_emb) (simp_all add: finite_vimageI)
   384     using J by (intro emeasure_PiM_emb) (simp_all add: finite_vimageI)
   385   also have "\<dots> = (\<Prod>j\<in>J - {0}. emeasure M (E j))"
   385   also have "\<dots> = (\<Prod>j\<in>J - {0}. emeasure M (E j))"
   386     by (rule prod.reindex_cong [of "\<lambda>x. x - 1"])
   386     by (rule prod.reindex_cong [of "\<lambda>x. x - 1"])
   387        (auto simp: image_iff Bex_def not_less nat_eq_diff_eq ac_simps cong: conj_cong intro!: inj_onI)
   387       (auto simp: image_iff nat_eq_diff_eq ac_simps cong: conj_cong intro!: inj_onI)
   388   also have "emeasure M ?E * (\<Prod>j\<in>J - {0}. emeasure M (E j)) = (\<Prod>j\<in>J. emeasure M (E j))"
   388   also have "emeasure M ?E * (\<Prod>j\<in>J - {0}. emeasure M (E j)) = (\<Prod>j\<in>J. emeasure M (E j))"
   389     by (auto simp: M.emeasure_space_1 prod.remove J)
   389     by (auto simp: M.emeasure_space_1 prod.remove J)
   390   finally show "emeasure ?D ?X = (\<Prod>j\<in>J. emeasure M (E j))" .
   390   finally show "emeasure ?D ?X = (\<Prod>j\<in>J. emeasure M (E j))" .
   391 qed simp_all
   391 qed simp_all
   392 
   392