src/HOL/Probability/Infinite_Product_Measure.thy
changeset 50244 de72bbe42190
parent 50123 69b35a75caf3
child 50252 4aa34bd43228
equal deleted inserted replaced
50243:0d97ef1d6de9 50244:de72bbe42190
   309     from assms show "(J \<noteq> {} \<or> I = {}) \<and> finite J \<and> J \<subseteq> I \<and> X \<in> (\<Pi> j\<in>J. sets (M j))"
   309     from assms show "(J \<noteq> {} \<or> I = {}) \<and> finite J \<and> J \<subseteq> I \<and> X \<in> (\<Pi> j\<in>J. sets (M j))"
   310       by (simp add: Pi_iff)
   310       by (simp add: Pi_iff)
   311   next
   311   next
   312     fix J X assume J: "(J \<noteq> {} \<or> I = {}) \<and> finite J \<and> J \<subseteq> I \<and> X \<in> (\<Pi> j\<in>J. sets (M j))"
   312     fix J X assume J: "(J \<noteq> {} \<or> I = {}) \<and> finite J \<and> J \<subseteq> I \<and> X \<in> (\<Pi> j\<in>J. sets (M j))"
   313     then show "emb I J (Pi\<^isub>E J X) \<in> Pow (\<Pi>\<^isub>E i\<in>I. space (M i))"
   313     then show "emb I J (Pi\<^isub>E J X) \<in> Pow (\<Pi>\<^isub>E i\<in>I. space (M i))"
   314       by (auto simp: Pi_iff prod_emb_def dest: sets_into_space)
   314       by (auto simp: Pi_iff prod_emb_def dest: sets.sets_into_space)
   315     have "emb I J (Pi\<^isub>E J X) \<in> generator"
   315     have "emb I J (Pi\<^isub>E J X) \<in> generator"
   316       using J `I \<noteq> {}` by (intro generatorI') (auto simp: Pi_iff)
   316       using J `I \<noteq> {}` by (intro generatorI') (auto simp: Pi_iff)
   317     then have "\<mu> (emb I J (Pi\<^isub>E J X)) = \<mu>G (emb I J (Pi\<^isub>E J X))"
   317     then have "\<mu> (emb I J (Pi\<^isub>E J X)) = \<mu>G (emb I J (Pi\<^isub>E J X))"
   318       using \<mu> by simp
   318       using \<mu> by simp
   319     also have "\<dots> = (\<Prod> j\<in>J. if j \<in> J then emeasure (M j) (X j) else emeasure (M j) (space (M j)))"
   319     also have "\<dots> = (\<Prod> j\<in>J. if j \<in> J then emeasure (M j) (X j) else emeasure (M j) (space (M j)))"
   391   using sets_Collect_single[of i I "{x\<in>space (M i). P x}" M]
   391   using sets_Collect_single[of i I "{x\<in>space (M i). P x}" M]
   392   by (simp add: space_PiM PiE_iff cong: conj_cong)
   392   by (simp add: space_PiM PiE_iff cong: conj_cong)
   393 
   393 
   394 lemma (in finite_product_prob_space) finite_measure_PiM_emb:
   394 lemma (in finite_product_prob_space) finite_measure_PiM_emb:
   395   "(\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> measure (PiM I M) (Pi\<^isub>E I A) = (\<Prod>i\<in>I. measure (M i) (A i))"
   395   "(\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> measure (PiM I M) (Pi\<^isub>E I A) = (\<Prod>i\<in>I. measure (M i) (A i))"
   396   using measure_PiM_emb[of I A] finite_index prod_emb_PiE_same_index[OF sets_into_space, of I A M]
   396   using measure_PiM_emb[of I A] finite_index prod_emb_PiE_same_index[OF sets.sets_into_space, of I A M]
   397   by auto
   397   by auto
   398 
   398 
   399 lemma (in product_prob_space) PiM_component:
   399 lemma (in product_prob_space) PiM_component:
   400   assumes "i \<in> I"
   400   assumes "i \<in> I"
   401   shows "distr (PiM I M) (M i) (\<lambda>\<omega>. \<omega> i) = M i"
   401   shows "distr (PiM I M) (M i) (\<lambda>\<omega>. \<omega> i) = M i"
   463     by (auto simp: space_pair_measure space_PiM PiE_iff split: split_comb_seq)
   463     by (auto simp: space_pair_measure space_PiM PiE_iff split: split_comb_seq)
   464   fix j :: nat and A assume A: "A \<in> sets M"
   464   fix j :: nat and A assume A: "A \<in> sets M"
   465   then have *: "{\<omega> \<in> space ((\<Pi>\<^isub>M i\<in>UNIV. M) \<Otimes>\<^isub>M (\<Pi>\<^isub>M i\<in>UNIV. M)). prod_case (comb_seq i) \<omega> j \<in> A} =
   465   then have *: "{\<omega> \<in> space ((\<Pi>\<^isub>M i\<in>UNIV. M) \<Otimes>\<^isub>M (\<Pi>\<^isub>M i\<in>UNIV. M)). prod_case (comb_seq i) \<omega> j \<in> A} =
   466     (if j < i then {\<omega> \<in> space (\<Pi>\<^isub>M i\<in>UNIV. M). \<omega> j \<in> A} \<times> space (\<Pi>\<^isub>M i\<in>UNIV. M)
   466     (if j < i then {\<omega> \<in> space (\<Pi>\<^isub>M i\<in>UNIV. M). \<omega> j \<in> A} \<times> space (\<Pi>\<^isub>M i\<in>UNIV. M)
   467               else space (\<Pi>\<^isub>M i\<in>UNIV. M) \<times> {\<omega> \<in> space (\<Pi>\<^isub>M i\<in>UNIV. M). \<omega> (j - i) \<in> A})"
   467               else space (\<Pi>\<^isub>M i\<in>UNIV. M) \<times> {\<omega> \<in> space (\<Pi>\<^isub>M i\<in>UNIV. M). \<omega> (j - i) \<in> A})"
   468     by (auto simp: space_PiM space_pair_measure comb_seq_def dest: sets_into_space)
   468     by (auto simp: space_PiM space_pair_measure comb_seq_def dest: sets.sets_into_space)
   469   show "{\<omega> \<in> space ((\<Pi>\<^isub>M i\<in>UNIV. M) \<Otimes>\<^isub>M (\<Pi>\<^isub>M i\<in>UNIV. M)). prod_case (comb_seq i) \<omega> j \<in> A} \<in> sets ((\<Pi>\<^isub>M i\<in>UNIV. M) \<Otimes>\<^isub>M (\<Pi>\<^isub>M i\<in>UNIV. M))"
   469   show "{\<omega> \<in> space ((\<Pi>\<^isub>M i\<in>UNIV. M) \<Otimes>\<^isub>M (\<Pi>\<^isub>M i\<in>UNIV. M)). prod_case (comb_seq i) \<omega> j \<in> A} \<in> sets ((\<Pi>\<^isub>M i\<in>UNIV. M) \<Otimes>\<^isub>M (\<Pi>\<^isub>M i\<in>UNIV. M))"
   470     unfolding * by (auto simp: A intro!: sets_Collect_single)
   470     unfolding * by (auto simp: A intro!: sets_Collect_single)
   471 qed
   471 qed
   472 
   472 
   473 lemma measurable_comb_seq'[measurable (raw)]:
   473 lemma measurable_comb_seq'[measurable (raw)]:
   505 lemma infprod_in_sets[intro]:
   505 lemma infprod_in_sets[intro]:
   506   fixes E :: "nat \<Rightarrow> 'a set" assumes E: "\<And>i. E i \<in> sets M"
   506   fixes E :: "nat \<Rightarrow> 'a set" assumes E: "\<And>i. E i \<in> sets M"
   507   shows "Pi UNIV E \<in> sets S"
   507   shows "Pi UNIV E \<in> sets S"
   508 proof -
   508 proof -
   509   have "Pi UNIV E = (\<Inter>i. emb UNIV {..i} (\<Pi>\<^isub>E j\<in>{..i}. E j))"
   509   have "Pi UNIV E = (\<Inter>i. emb UNIV {..i} (\<Pi>\<^isub>E j\<in>{..i}. E j))"
   510     using E E[THEN sets_into_space]
   510     using E E[THEN sets.sets_into_space]
   511     by (auto simp: prod_emb_def Pi_iff extensional_def) blast
   511     by (auto simp: prod_emb_def Pi_iff extensional_def) blast
   512   with E show ?thesis by auto
   512   with E show ?thesis by auto
   513 qed
   513 qed
   514 
   514 
   515 lemma measure_PiM_countable:
   515 lemma measure_PiM_countable:
   518 proof -
   518 proof -
   519   let ?E = "\<lambda>n. emb UNIV {..n} (Pi\<^isub>E {.. n} E)"
   519   let ?E = "\<lambda>n. emb UNIV {..n} (Pi\<^isub>E {.. n} E)"
   520   have "\<And>n. (\<Prod>i\<le>n. measure M (E i)) = measure S (?E n)"
   520   have "\<And>n. (\<Prod>i\<le>n. measure M (E i)) = measure S (?E n)"
   521     using E by (simp add: measure_PiM_emb)
   521     using E by (simp add: measure_PiM_emb)
   522   moreover have "Pi UNIV E = (\<Inter>n. ?E n)"
   522   moreover have "Pi UNIV E = (\<Inter>n. ?E n)"
   523     using E E[THEN sets_into_space]
   523     using E E[THEN sets.sets_into_space]
   524     by (auto simp: prod_emb_def extensional_def Pi_iff) blast
   524     by (auto simp: prod_emb_def extensional_def Pi_iff) blast
   525   moreover have "range ?E \<subseteq> sets S"
   525   moreover have "range ?E \<subseteq> sets S"
   526     using E by auto
   526     using E by auto
   527   moreover have "decseq ?E"
   527   moreover have "decseq ?E"
   528     by (auto simp: prod_emb_def Pi_iff decseq_def)
   528     by (auto simp: prod_emb_def Pi_iff decseq_def)
   542   let "distr _ _ ?f" = "?D"
   542   let "distr _ _ ?f" = "?D"
   543 
   543 
   544   fix J E assume J: "finite J" "J \<subseteq> ?I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets M"
   544   fix J E assume J: "finite J" "J \<subseteq> ?I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets M"
   545   let ?X = "prod_emb ?I ?M J (\<Pi>\<^isub>E j\<in>J. E j)"
   545   let ?X = "prod_emb ?I ?M J (\<Pi>\<^isub>E j\<in>J. E j)"
   546   have "\<And>j x. j \<in> J \<Longrightarrow> x \<in> E j \<Longrightarrow> x \<in> space M"
   546   have "\<And>j x. j \<in> J \<Longrightarrow> x \<in> E j \<Longrightarrow> x \<in> space M"
   547     using J(3)[THEN sets_into_space] by (auto simp: space_PiM Pi_iff subset_eq)
   547     using J(3)[THEN sets.sets_into_space] by (auto simp: space_PiM Pi_iff subset_eq)
   548   with J have "?f -` ?X \<inter> space (S \<Otimes>\<^isub>M S) =
   548   with J have "?f -` ?X \<inter> space (S \<Otimes>\<^isub>M S) =
   549     (prod_emb ?I ?M (J \<inter> {..<i}) (PIE j:J \<inter> {..<i}. E j)) \<times>
   549     (prod_emb ?I ?M (J \<inter> {..<i}) (PIE j:J \<inter> {..<i}. E j)) \<times>
   550     (prod_emb ?I ?M ((op + i) -` J) (PIE j:(op + i) -` J. E (i + j)))" (is "_ = ?E \<times> ?F")
   550     (prod_emb ?I ?M ((op + i) -` J) (PIE j:(op + i) -` J. E (i + j)))" (is "_ = ?E \<times> ?F")
   551    by (auto simp: space_pair_measure space_PiM prod_emb_def all_conj_distrib PiE_iff
   551    by (auto simp: space_pair_measure space_PiM prod_emb_def all_conj_distrib PiE_iff
   552                split: split_comb_seq split_comb_seq_asm)
   552                split: split_comb_seq split_comb_seq_asm)
   574   let "distr _ _ ?f" = "?D"
   574   let "distr _ _ ?f" = "?D"
   575 
   575 
   576   fix J E assume J: "finite J" "J \<subseteq> ?I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets M"
   576   fix J E assume J: "finite J" "J \<subseteq> ?I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets M"
   577   let ?X = "prod_emb ?I ?M J (PIE j:J. E j)"
   577   let ?X = "prod_emb ?I ?M J (PIE j:J. E j)"
   578   have "\<And>j x. j \<in> J \<Longrightarrow> x \<in> E j \<Longrightarrow> x \<in> space M"
   578   have "\<And>j x. j \<in> J \<Longrightarrow> x \<in> E j \<Longrightarrow> x \<in> space M"
   579     using J(3)[THEN sets_into_space] by (auto simp: space_PiM Pi_iff subset_eq)
   579     using J(3)[THEN sets.sets_into_space] by (auto simp: space_PiM Pi_iff subset_eq)
   580   with J have "?f -` ?X \<inter> space (M \<Otimes>\<^isub>M S) = (if 0 \<in> J then E 0 else space M) \<times>
   580   with J have "?f -` ?X \<inter> space (M \<Otimes>\<^isub>M S) = (if 0 \<in> J then E 0 else space M) \<times>
   581     (prod_emb ?I ?M (Suc -` J) (PIE j:Suc -` J. E (Suc j)))" (is "_ = ?E \<times> ?F")
   581     (prod_emb ?I ?M (Suc -` J) (PIE j:Suc -` J. E (Suc j)))" (is "_ = ?E \<times> ?F")
   582    by (auto simp: space_pair_measure space_PiM PiE_iff prod_emb_def all_conj_distrib
   582    by (auto simp: space_pair_measure space_PiM PiE_iff prod_emb_def all_conj_distrib
   583       split: nat.split nat.split_asm)
   583       split: nat.split nat.split_asm)
   584   then have "emeasure ?D ?X = emeasure (M \<Otimes>\<^isub>M S) (?E \<times> ?F)"
   584   then have "emeasure ?D ?X = emeasure (M \<Otimes>\<^isub>M S) (?E \<times> ?F)"