src/HOL/Probability/Finite_Product_Measure.thy
changeset 59048 7dc8ac6f0895
parent 58876 1888e3cb8048
child 59088 ff2bd4a14ddb
equal deleted inserted replaced
59047:8d7cec9b861d 59048:7dc8ac6f0895
   367   assumes sets: "\<And>i A. i \<in> I \<Longrightarrow> A \<in> sets (M i) \<Longrightarrow> {x\<in>space N. x i \<in> A} \<in> sets N"
   367   assumes sets: "\<And>i A. i \<in> I \<Longrightarrow> A \<in> sets (M i) \<Longrightarrow> {x\<in>space N. x i \<in> A} \<in> sets N"
   368   shows "sets (\<Pi>\<^sub>M i \<in> I. M i) \<subseteq> sets N"
   368   shows "sets (\<Pi>\<^sub>M i \<in> I. M i) \<subseteq> sets N"
   369   unfolding sets_PiM_single space[symmetric]
   369   unfolding sets_PiM_single space[symmetric]
   370   by (intro sets.sigma_sets_subset subsetI) (auto intro: sets)
   370   by (intro sets.sigma_sets_subset subsetI) (auto intro: sets)
   371 
   371 
   372 lemma sets_PiM_cong: assumes "I = J" "\<And>i. i \<in> J \<Longrightarrow> sets (M i) = sets (N i)" shows "sets (PiM I M) = sets (PiM J N)"
   372 lemma sets_PiM_cong[measurable_cong]:
       
   373   assumes "I = J" "\<And>i. i \<in> J \<Longrightarrow> sets (M i) = sets (N i)" shows "sets (PiM I M) = sets (PiM J N)"
   373   using assms sets_eq_imp_space_eq[OF assms(2)] by (simp add: sets_PiM_single cong: PiE_cong conj_cong)
   374   using assms sets_eq_imp_space_eq[OF assms(2)] by (simp add: sets_PiM_single cong: PiE_cong conj_cong)
   374 
   375 
   375 lemma sets_PiM_I:
   376 lemma sets_PiM_I:
   376   assumes "finite J" "J \<subseteq> I" "\<forall>i\<in>J. E i \<in> sets (M i)"
   377   assumes "finite J" "J \<subseteq> I" "\<forall>i\<in>J. E i \<in> sets (M i)"
   377   shows "prod_emb I M J (PIE j:J. E j) \<in> sets (PIM i:I. M i)"
   378   shows "prod_emb I M J (PIE j:J. E j) \<in> sets (PIM i:I. M i)"
   468 lemma measurable_case_nat[measurable (raw)]:
   469 lemma measurable_case_nat[measurable (raw)]:
   469   assumes [measurable (raw)]: "i = 0 \<Longrightarrow> f \<in> measurable M N"
   470   assumes [measurable (raw)]: "i = 0 \<Longrightarrow> f \<in> measurable M N"
   470     "\<And>j. i = Suc j \<Longrightarrow> (\<lambda>x. g x j) \<in> measurable M N"
   471     "\<And>j. i = Suc j \<Longrightarrow> (\<lambda>x. g x j) \<in> measurable M N"
   471   shows "(\<lambda>x. case_nat (f x) (g x) i) \<in> measurable M N"
   472   shows "(\<lambda>x. case_nat (f x) (g x) i) \<in> measurable M N"
   472   by (cases i) simp_all
   473   by (cases i) simp_all
   473 
   474  
   474 lemma measurable_case_nat'[measurable (raw)]:
   475 lemma measurable_case_nat'[measurable (raw)]:
   475   assumes fg[measurable]: "f \<in> measurable N M" "g \<in> measurable N (\<Pi>\<^sub>M i\<in>UNIV. M)"
   476   assumes fg[measurable]: "f \<in> measurable N M" "g \<in> measurable N (\<Pi>\<^sub>M i\<in>UNIV. M)"
   476   shows "(\<lambda>x. case_nat (f x) (g x)) \<in> measurable N (\<Pi>\<^sub>M i\<in>UNIV. M)"
   477   shows "(\<lambda>x. case_nat (f x) (g x)) \<in> measurable N (\<Pi>\<^sub>M i\<in>UNIV. M)"
   477   using fg[THEN measurable_space]
   478   using fg[THEN measurable_space]
   478   by (auto intro!: measurable_PiM_single' simp add: space_PiM PiE_iff split: nat.split)
   479   by (auto intro!: measurable_PiM_single' simp add: space_PiM PiE_iff split: nat.split)
   882 proof (intro measure_eqI[symmetric])
   883 proof (intro measure_eqI[symmetric])
   883   interpret I: finite_product_sigma_finite M "{i}" by default simp
   884   interpret I: finite_product_sigma_finite M "{i}" by default simp
   884 
   885 
   885   have eq: "\<And>x. x \<in> extensional {i} \<Longrightarrow> (\<lambda>j\<in>{i}. x i) = x"
   886   have eq: "\<And>x. x \<in> extensional {i} \<Longrightarrow> (\<lambda>j\<in>{i}. x i) = x"
   886     by (auto simp: extensional_def restrict_def)
   887     by (auto simp: extensional_def restrict_def)
       
   888 
       
   889   have [measurable]: "\<And>j. j \<in> {i} \<Longrightarrow> (\<lambda>x. x) \<in> measurable (M i) (M j)" by simp
   887 
   890 
   888   fix A assume A: "A \<in> sets ?P"
   891   fix A assume A: "A \<in> sets ?P"
   889   then have "emeasure ?P A = (\<integral>\<^sup>+x. indicator A x \<partial>?P)" 
   892   then have "emeasure ?P A = (\<integral>\<^sup>+x. indicator A x \<partial>?P)" 
   890     by simp
   893     by simp
   891   also have "\<dots> = (\<integral>\<^sup>+x. indicator ((\<lambda>x. \<lambda>i\<in>{i}. x) -` A \<inter> space (M i)) (x i) \<partial>PiM {i} M)" 
   894   also have "\<dots> = (\<integral>\<^sup>+x. indicator ((\<lambda>x. \<lambda>i\<in>{i}. x) -` A \<inter> space (M i)) (x i) \<partial>PiM {i} M)"