src/HOL/Probability/Finite_Product_Measure.thy
changeset 50021 d96a3f468203
parent 50003 8c213922ed49
child 50038 8e32c9254535
equal deleted inserted replaced
50020:6b9611abcd4c 50021:d96a3f468203
   478 lemma sets_PiM_I_finite[measurable]:
   478 lemma sets_PiM_I_finite[measurable]:
   479   assumes "finite I" and sets: "(\<And>i. i \<in> I \<Longrightarrow> E i \<in> sets (M i))"
   479   assumes "finite I" and sets: "(\<And>i. i \<in> I \<Longrightarrow> E i \<in> sets (M i))"
   480   shows "(PIE j:I. E j) \<in> sets (PIM i:I. M i)"
   480   shows "(PIE j:I. E j) \<in> sets (PIM i:I. M i)"
   481   using sets_PiM_I[of I I E M] sets_into_space[OF sets] `finite I` sets by auto
   481   using sets_PiM_I[of I I E M] sets_into_space[OF sets] `finite I` sets by auto
   482 
   482 
   483 lemma measurable_component_singleton[measurable (raw)]:
   483 lemma measurable_component_singleton:
   484   assumes "i \<in> I" shows "(\<lambda>x. x i) \<in> measurable (Pi\<^isub>M I M) (M i)"
   484   assumes "i \<in> I" shows "(\<lambda>x. x i) \<in> measurable (Pi\<^isub>M I M) (M i)"
   485 proof (unfold measurable_def, intro CollectI conjI ballI)
   485 proof (unfold measurable_def, intro CollectI conjI ballI)
   486   fix A assume "A \<in> sets (M i)"
   486   fix A assume "A \<in> sets (M i)"
   487   then have "(\<lambda>x. x i) -` A \<inter> space (Pi\<^isub>M I M) = prod_emb I M {i} (\<Pi>\<^isub>E j\<in>{i}. A)"
   487   then have "(\<lambda>x. x i) -` A \<inter> space (Pi\<^isub>M I M) = prod_emb I M {i} (\<Pi>\<^isub>E j\<in>{i}. A)"
   488     using sets_into_space `i \<in> I`
   488     using sets_into_space `i \<in> I`
   489     by (fastforce dest: Pi_mem simp: prod_emb_def space_PiM split: split_if_asm)
   489     by (fastforce dest: Pi_mem simp: prod_emb_def space_PiM split: split_if_asm)
   490   then show "(\<lambda>x. x i) -` A \<inter> space (Pi\<^isub>M I M) \<in> sets (Pi\<^isub>M I M)"
   490   then show "(\<lambda>x. x i) -` A \<inter> space (Pi\<^isub>M I M) \<in> sets (Pi\<^isub>M I M)"
   491     using `A \<in> sets (M i)` `i \<in> I` by (auto intro!: sets_PiM_I)
   491     using `A \<in> sets (M i)` `i \<in> I` by (auto intro!: sets_PiM_I)
   492 qed (insert `i \<in> I`, auto simp: space_PiM)
   492 qed (insert `i \<in> I`, auto simp: space_PiM)
       
   493 
       
   494 lemma measurable_component_singleton'[measurable_app]:
       
   495   assumes f: "f \<in> measurable N (Pi\<^isub>M I M)"
       
   496   assumes i: "i \<in> I"
       
   497   shows "(\<lambda>x. (f x) i) \<in> measurable N (M i)"
       
   498   using measurable_compose[OF f measurable_component_singleton, OF i] .
       
   499 
       
   500 lemma measurable_nat_case[measurable (raw)]:
       
   501   assumes [measurable (raw)]: "i = 0 \<Longrightarrow> f \<in> measurable M N"
       
   502     "\<And>j. i = Suc j \<Longrightarrow> (\<lambda>x. g x j) \<in> measurable M N"
       
   503   shows "(\<lambda>x. nat_case (f x) (g x) i) \<in> measurable M N"
       
   504   by (cases i) simp_all
   493 
   505 
   494 lemma measurable_add_dim[measurable]:
   506 lemma measurable_add_dim[measurable]:
   495   "(\<lambda>(f, y). f(i := y)) \<in> measurable (Pi\<^isub>M I M \<Otimes>\<^isub>M M i) (Pi\<^isub>M (insert i I) M)"
   507   "(\<lambda>(f, y). f(i := y)) \<in> measurable (Pi\<^isub>M I M \<Otimes>\<^isub>M M i) (Pi\<^isub>M (insert i I) M)"
   496     (is "?f \<in> measurable ?P ?I")
   508     (is "?f \<in> measurable ?P ?I")
   497 proof (rule measurable_PiM_single)
   509 proof (rule measurable_PiM_single)