src/HOL/Probability/Binary_Product_Measure.thy
changeset 58606 9c66f7c541fb
parent 57447 87429bdecad5
child 58876 1888e3cb8048
equal deleted inserted replaced
58605:9d5013661ac6 58606:9c66f7c541fb
    32 lemma sets_pair_measure:
    32 lemma sets_pair_measure:
    33   "sets (A \<Otimes>\<^sub>M B) = sigma_sets (space A \<times> space B) {a \<times> b | a b. a \<in> sets A \<and> b \<in> sets B}"
    33   "sets (A \<Otimes>\<^sub>M B) = sigma_sets (space A \<times> space B) {a \<times> b | a b. a \<in> sets A \<and> b \<in> sets B}"
    34   unfolding pair_measure_def using pair_measure_closed[of A B]
    34   unfolding pair_measure_def using pair_measure_closed[of A B]
    35   by (rule sets_measure_of)
    35   by (rule sets_measure_of)
    36 
    36 
       
    37 lemma sets_pair_in_sets:
       
    38   assumes N: "space A \<times> space B = space N"
       
    39   assumes "\<And>a b. a \<in> sets A \<Longrightarrow> b \<in> sets B \<Longrightarrow> a \<times> b \<in> sets N"
       
    40   shows "sets (A \<Otimes>\<^sub>M B) \<subseteq> sets N"
       
    41   using assms by (auto intro!: sets.sigma_sets_subset simp: sets_pair_measure N)
       
    42 
    37 lemma sets_pair_measure_cong[cong]:
    43 lemma sets_pair_measure_cong[cong]:
    38   "sets M1 = sets M1' \<Longrightarrow> sets M2 = sets M2' \<Longrightarrow> sets (M1 \<Otimes>\<^sub>M M2) = sets (M1' \<Otimes>\<^sub>M M2')"
    44   "sets M1 = sets M1' \<Longrightarrow> sets M2 = sets M2' \<Longrightarrow> sets (M1 \<Otimes>\<^sub>M M2) = sets (M1' \<Otimes>\<^sub>M M2')"
    39   unfolding sets_pair_measure by (simp cong: sets_eq_imp_space_eq)
    45   unfolding sets_pair_measure by (simp cong: sets_eq_imp_space_eq)
    40 
    46 
    41 lemma pair_measureI[intro, simp, measurable]:
    47 lemma pair_measureI[intro, simp, measurable]:
    42   "x \<in> sets A \<Longrightarrow> y \<in> sets B \<Longrightarrow> x \<times> y \<in> sets (A \<Otimes>\<^sub>M B)"
    48   "x \<in> sets A \<Longrightarrow> y \<in> sets B \<Longrightarrow> x \<times> y \<in> sets (A \<Otimes>\<^sub>M B)"
    43   by (auto simp: sets_pair_measure)
    49   by (auto simp: sets_pair_measure)
       
    50 
       
    51 lemma sets_Pair: "{x} \<in> sets M1 \<Longrightarrow> {y} \<in> sets M2 \<Longrightarrow> {(x, y)} \<in> sets (M1 \<Otimes>\<^sub>M M2)"
       
    52   using pair_measureI[of "{x}" M1 "{y}" M2] by simp
    44 
    53 
    45 lemma measurable_pair_measureI:
    54 lemma measurable_pair_measureI:
    46   assumes 1: "f \<in> space M \<rightarrow> space M1 \<times> space M2"
    55   assumes 1: "f \<in> space M \<rightarrow> space M1 \<times> space M2"
    47   assumes 2: "\<And>A B. A \<in> sets M1 \<Longrightarrow> B \<in> sets M2 \<Longrightarrow> f -` (A \<times> B) \<inter> space M \<in> sets M"
    56   assumes 2: "\<And>A B. A \<in> sets M1 \<Longrightarrow> B \<in> sets M2 \<Longrightarrow> f -` (A \<times> B) \<inter> space M \<in> sets M"
    48   shows "f \<in> measurable M (M1 \<Otimes>\<^sub>M M2)"
    57   shows "f \<in> measurable M (M1 \<Otimes>\<^sub>M M2)"
    95 lemma
   104 lemma
    96   assumes f[measurable]: "f \<in> measurable M N"
   105   assumes f[measurable]: "f \<in> measurable M N"
    97   shows measurable_fst'': "(\<lambda>x. f (fst x)) \<in> measurable (M \<Otimes>\<^sub>M P) N"
   106   shows measurable_fst'': "(\<lambda>x. f (fst x)) \<in> measurable (M \<Otimes>\<^sub>M P) N"
    98     and measurable_snd'': "(\<lambda>x. f (snd x)) \<in> measurable (P \<Otimes>\<^sub>M M) N"
   107     and measurable_snd'': "(\<lambda>x. f (snd x)) \<in> measurable (P \<Otimes>\<^sub>M M) N"
    99   by simp_all
   108   by simp_all
       
   109 
       
   110 lemma sets_pair_eq_sets_fst_snd:
       
   111   "sets (A \<Otimes>\<^sub>M B) = sets (Sup_sigma {vimage_algebra (space A \<times> space B) fst A, vimage_algebra (space A \<times> space B) snd B})"
       
   112     (is "?P = sets (Sup_sigma {?fst, ?snd})")
       
   113 proof -
       
   114   { fix a b assume ab: "a \<in> sets A" "b \<in> sets B"
       
   115     then have "a \<times> b = (fst -` a \<inter> (space A \<times> space B)) \<inter> (snd -` b \<inter> (space A \<times> space B))"
       
   116       by (auto dest: sets.sets_into_space)
       
   117     also have "\<dots> \<in> sets (Sup_sigma {?fst, ?snd})"
       
   118       using ab by (auto intro: in_Sup_sigma in_vimage_algebra)
       
   119     finally have "a \<times> b \<in> sets (Sup_sigma {?fst, ?snd})" . }
       
   120   moreover have "sets ?fst \<subseteq> sets (A \<Otimes>\<^sub>M B)"
       
   121     by (rule sets_image_in_sets) (auto simp: space_pair_measure[symmetric])
       
   122   moreover have "sets ?snd \<subseteq> sets (A \<Otimes>\<^sub>M B)"  
       
   123     by (rule sets_image_in_sets) (auto simp: space_pair_measure)
       
   124   ultimately show ?thesis
       
   125     by (intro antisym[of "sets A" for A] sets_Sup_in_sets sets_pair_in_sets )
       
   126        (auto simp add: space_Sup_sigma space_pair_measure)
       
   127 qed
   100 
   128 
   101 lemma measurable_pair_iff:
   129 lemma measurable_pair_iff:
   102   "f \<in> measurable M (M1 \<Otimes>\<^sub>M M2) \<longleftrightarrow> (fst \<circ> f) \<in> measurable M M1 \<and> (snd \<circ> f) \<in> measurable M M2"
   130   "f \<in> measurable M (M1 \<Otimes>\<^sub>M M2) \<longleftrightarrow> (fst \<circ> f) \<in> measurable M M1 \<and> (snd \<circ> f) \<in> measurable M M2"
   103   by (auto intro: measurable_pair[of f M M1 M2]) 
   131   by (auto intro: measurable_pair[of f M M1 M2]) 
   104 
   132