src/HOL/Probability/Binary_Product_Measure.thy
changeset 59353 f0707dc3d9aa
parent 59088 ff2bd4a14ddb
child 59426 6fca83e88417
equal deleted inserted replaced
59352:63c02d051661 59353:f0707dc3d9aa
    77   also have "\<dots> \<in> sets M"
    77   also have "\<dots> \<in> sets M"
    78     by (rule sets.Int) (auto intro!: measurable_sets * f g)
    78     by (rule sets.Int) (auto intro!: measurable_sets * f g)
    79   finally show "(\<lambda>x. (f x, g x)) -` (A \<times> B) \<inter> space M \<in> sets M" .
    79   finally show "(\<lambda>x. (f x, g x)) -` (A \<times> B) \<inter> space M \<in> sets M" .
    80 qed
    80 qed
    81 
    81 
       
    82 lemma measurable_fst[intro!, simp, measurable]: "fst \<in> measurable (M1 \<Otimes>\<^sub>M M2) M1"
       
    83   by (auto simp: fst_vimage_eq_Times space_pair_measure sets.sets_into_space times_Int_times
       
    84     measurable_def)
       
    85 
       
    86 lemma measurable_snd[intro!, simp, measurable]: "snd \<in> measurable (M1 \<Otimes>\<^sub>M M2) M2"
       
    87   by (auto simp: snd_vimage_eq_Times space_pair_measure sets.sets_into_space times_Int_times
       
    88     measurable_def)
       
    89 
    82 lemma measurable_Pair_compose_split[measurable_dest]:
    90 lemma measurable_Pair_compose_split[measurable_dest]:
    83   assumes f: "split f \<in> measurable (M1 \<Otimes>\<^sub>M M2) N"
    91   assumes f: "split f \<in> measurable (M1 \<Otimes>\<^sub>M M2) N"
    84   assumes g: "g \<in> measurable M M1" and h: "h \<in> measurable M M2"
    92   assumes g: "g \<in> measurable M M1" and h: "h \<in> measurable M M2"
    85   shows "(\<lambda>x. f (g x) (h x)) \<in> measurable M N"
    93   shows "(\<lambda>x. f (g x) (h x)) \<in> measurable M N"
    86   using measurable_compose[OF measurable_Pair f, OF g h] by simp
    94   using measurable_compose[OF measurable_Pair f, OF g h] by simp
    87 
    95 
       
    96 lemma measurable_Pair1_compose[measurable_dest]:
       
    97   assumes f: "(\<lambda>x. (f x, g x)) \<in> measurable M (M1 \<Otimes>\<^sub>M M2)"
       
    98   assumes [measurable]: "h \<in> measurable N M"
       
    99   shows "(\<lambda>x. f (h x)) \<in> measurable N M1"
       
   100   using measurable_compose[OF f measurable_fst] by simp
       
   101 
       
   102 lemma measurable_Pair2_compose[measurable_dest]:
       
   103   assumes f: "(\<lambda>x. (f x, g x)) \<in> measurable M (M1 \<Otimes>\<^sub>M M2)"
       
   104   assumes [measurable]: "h \<in> measurable N M"
       
   105   shows "(\<lambda>x. g (h x)) \<in> measurable N M2"
       
   106   using measurable_compose[OF f measurable_snd] by simp
       
   107 
    88 lemma measurable_pair:
   108 lemma measurable_pair:
    89   assumes "(fst \<circ> f) \<in> measurable M M1" "(snd \<circ> f) \<in> measurable M M2"
   109   assumes "(fst \<circ> f) \<in> measurable M M1" "(snd \<circ> f) \<in> measurable M M2"
    90   shows "f \<in> measurable M (M1 \<Otimes>\<^sub>M M2)"
   110   shows "f \<in> measurable M (M1 \<Otimes>\<^sub>M M2)"
    91   using measurable_Pair[OF assms] by simp
   111   using measurable_Pair[OF assms] by simp
    92 
       
    93 lemma measurable_fst[intro!, simp, measurable]: "fst \<in> measurable (M1 \<Otimes>\<^sub>M M2) M1"
       
    94   by (auto simp: fst_vimage_eq_Times space_pair_measure sets.sets_into_space times_Int_times
       
    95     measurable_def)
       
    96 
       
    97 lemma measurable_snd[intro!, simp, measurable]: "snd \<in> measurable (M1 \<Otimes>\<^sub>M M2) M2"
       
    98   by (auto simp: snd_vimage_eq_Times space_pair_measure sets.sets_into_space times_Int_times
       
    99     measurable_def)
       
   100 
   112 
   101 lemma 
   113 lemma 
   102   assumes f[measurable]: "f \<in> measurable M (N \<Otimes>\<^sub>M P)" 
   114   assumes f[measurable]: "f \<in> measurable M (N \<Otimes>\<^sub>M P)" 
   103   shows measurable_fst': "(\<lambda>x. fst (f x)) \<in> measurable M N"
   115   shows measurable_fst': "(\<lambda>x. fst (f x)) \<in> measurable M N"
   104     and measurable_snd': "(\<lambda>x. snd (f x)) \<in> measurable M P"
   116     and measurable_snd': "(\<lambda>x. snd (f x)) \<in> measurable M P"
   274   have eq[simp]: "\<And>A x y. indicator A (x, y) = indicator (Pair x -` A) y"
   286   have eq[simp]: "\<And>A x y. indicator A (x, y) = indicator (Pair x -` A) y"
   275     by (auto simp: indicator_def)
   287     by (auto simp: indicator_def)
   276   show "countably_additive (sets (N \<Otimes>\<^sub>M M)) ?\<mu>"
   288   show "countably_additive (sets (N \<Otimes>\<^sub>M M)) ?\<mu>"
   277   proof (rule countably_additiveI)
   289   proof (rule countably_additiveI)
   278     fix F :: "nat \<Rightarrow> ('b \<times> 'a) set" assume F: "range F \<subseteq> sets (N \<Otimes>\<^sub>M M)" "disjoint_family F"
   290     fix F :: "nat \<Rightarrow> ('b \<times> 'a) set" assume F: "range F \<subseteq> sets (N \<Otimes>\<^sub>M M)" "disjoint_family F"
   279     from F have *: "\<And>i. F i \<in> sets (N \<Otimes>\<^sub>M M)" "(\<Union>i. F i) \<in> sets (N \<Otimes>\<^sub>M M)" by auto
   291     from F have *: "\<And>i. F i \<in> sets (N \<Otimes>\<^sub>M M)" by auto
   280     moreover from F have "\<And>i. (\<lambda>x. emeasure M (Pair x -` F i)) \<in> borel_measurable N"
       
   281       by (intro measurable_emeasure_Pair) auto
       
   282     moreover have "\<And>x. disjoint_family (\<lambda>i. Pair x -` F i)"
   292     moreover have "\<And>x. disjoint_family (\<lambda>i. Pair x -` F i)"
   283       by (intro disjoint_family_on_bisimulation[OF F(2)]) auto
   293       by (intro disjoint_family_on_bisimulation[OF F(2)]) auto
   284     moreover have "\<And>x. range (\<lambda>i. Pair x -` F i) \<subseteq> sets M"
   294     moreover have "\<And>x. range (\<lambda>i. Pair x -` F i) \<subseteq> sets M"
   285       using F by (auto simp: sets_Pair1)
   295       using F by (auto simp: sets_Pair1)
   286     ultimately show "(\<Sum>n. ?\<mu> (F n)) = ?\<mu> (\<Union>i. F i)"
   296     ultimately show "(\<Sum>n. ?\<mu> (F n)) = ?\<mu> (\<Union>i. F i)"
   287       by (auto simp add: vimage_UN nn_integral_suminf[symmetric] suminf_emeasure subset_eq emeasure_nonneg sets_Pair1
   297       by (auto simp add: nn_integral_suminf[symmetric] vimage_UN suminf_emeasure emeasure_nonneg
   288                intro!: nn_integral_cong nn_integral_indicator[symmetric])
   298                intro!: nn_integral_cong nn_integral_indicator[symmetric])
   289   qed
   299   qed
   290   show "{a \<times> b |a b. a \<in> sets N \<and> b \<in> sets M} \<subseteq> Pow (space N \<times> space M)"
   300   show "{a \<times> b |a b. a \<in> sets N \<and> b \<in> sets M} \<subseteq> Pow (space N \<times> space M)"
   291     using sets.space_closed[of N] sets.space_closed[of M] by auto
   301     using sets.space_closed[of N] sets.space_closed[of M] by auto
   292 qed fact
   302 qed fact