src/HOL/Probability/Product_Measure.thy
changeset 39097 943c7b348524
parent 39096 111756225292
child 39098 21e9bd6cf0a8
equal deleted inserted replaced
39096:111756225292 39097:943c7b348524
   313     using eq E space_sigma \<delta> sigma_sets.Basic
   313     using eq E space_sigma \<delta> sigma_sets.Basic
   314     by (auto simp add:sigma_def)
   314     by (auto simp add:sigma_def)
   315   from subst[OF this, of "\<lambda> M. A \<in> sets M", OF A]
   315   from subst[OF this, of "\<lambda> M. A \<in> sets M", OF A]
   316   show ?thesis by auto
   316   show ?thesis by auto
   317 qed
   317 qed
   318 
   318 (*
   319 lemma
   319 lemma
   320   assumes sfin: "range A \<subseteq> sets M" "(\<Union>i. A i) = space M" "\<And> i :: nat. \<nu> (A i) < \<omega>"
   320   assumes sfin: "range A \<subseteq> sets M" "(\<Union>i. A i) = space M" "\<And> i :: nat. \<nu> (A i) < \<omega>"
   321   assumes A: "\<And>  i. \<mu> (A i) = \<nu> (A i)" "\<And> i. A i \<subseteq> A (Suc i)"
   321   assumes A: "\<And>  i. \<mu> (A i) = \<nu> (A i)" "\<And> i. A i \<subseteq> A (Suc i)"
   322   assumes E: "M = sigma (space E) (sets E)" "Int_stable E"
   322   assumes E: "M = sigma (space E) (sets E)" "Int_stable E"
   323   assumes eq: "\<And> e. e \<in> sets E \<Longrightarrow> \<mu> e = \<nu> e"
   323   assumes eq: "\<And> e. e \<in> sets E \<Longrightarrow> \<mu> e = \<nu> e"
   343       apply (rule measure_eq[of \<mu> ?M \<nu> "\<lparr> space = space E \<inter> A i, sets = op \<inter> (A i) ` sets E\<rparr>" "A i \<inter> B", simplified])
   343       apply (rule measure_eq[of \<mu> ?M \<nu> "\<lparr> space = space E \<inter> A i, sets = op \<inter> (A i) ` sets E\<rparr>" "A i \<inter> B", simplified])
   344       using assms nu_i mu_i
   344       using assms nu_i mu_i
   345       apply (auto simp add:image_def) (* TODO *) sorry
   345       apply (auto simp add:image_def) (* TODO *) sorry
   346     show ?thesis sorry
   346     show ?thesis sorry
   347 qed
   347 qed
   348 
   348 *)
   349 definition prod_sets where
   349 definition prod_sets where
   350   "prod_sets A B = {z. \<exists>x \<in> A. \<exists>y \<in> B. z = x \<times> y}"
   350   "prod_sets A B = {z. \<exists>x \<in> A. \<exists>y \<in> B. z = x \<times> y}"
   351 
   351 
   352 definition
   352 definition
   353   "prod_measure_space M1 M2 = sigma (space M1 \<times> space M2) (prod_sets (sets M1) (sets M2))"
   353   "prod_measure_space M1 M2 = sigma (space M1 \<times> space M2) (prod_sets (sets M1) (sets M2))"
   510   show ?thesis using finite_space N.finite_space
   510   show ?thesis using finite_space N.finite_space
   511     by (simp add: sigma_def prod_measure_space_def sigma_prod_sets_finite sets_eq_Pow N.sets_eq_Pow)
   511     by (simp add: sigma_def prod_measure_space_def sigma_prod_sets_finite sets_eq_Pow N.sets_eq_Pow)
   512 qed
   512 qed
   513 
   513 
   514 lemma (in finite_measure_space) finite_measure_space_finite_prod_measure:
   514 lemma (in finite_measure_space) finite_measure_space_finite_prod_measure:
   515   assumes "finite_measure_space N \<nu>"
   515   fixes N :: "('c, 'd) algebra_scheme"
       
   516   assumes N: "finite_measure_space N \<nu>"
   516   shows "finite_measure_space (prod_measure_space M N) (prod_measure M \<mu> N \<nu>)"
   517   shows "finite_measure_space (prod_measure_space M N) (prod_measure M \<mu> N \<nu>)"
   517   unfolding finite_prod_measure_space[OF assms]
   518   unfolding finite_prod_measure_space[OF assms]
   518 proof (rule finite_measure_spaceI)
   519 proof (rule finite_measure_spaceI, simp_all)
   519   interpret N: finite_measure_space N \<nu> by fact
   520   interpret N: finite_measure_space N \<nu> by fact
   520 
   521   show "finite (space M \<times> space N)" using finite_space N.finite_space by auto
   521   let ?P = "\<lparr>space = space M \<times> space N, sets = Pow (space M \<times> space N)\<rparr>"
   522   show "prod_measure M \<mu> N \<nu> (space M \<times> space N) \<noteq> \<omega>"
   522   show "measure_space ?P (prod_measure M \<mu> N \<nu>)"
   523     using finite_prod_measure_times[OF N top N.top] by simp
   523   proof (rule sigma_algebra.finite_additivity_sufficient)
   524   show "prod_measure M \<mu> N \<nu> {} = 0"
   524     show "sigma_algebra ?P" by (rule sigma_algebra_Pow)
   525     using finite_prod_measure_times[OF N empty_sets N.empty_sets] by simp
   525     show "finite (space ?P)" using finite_space N.finite_space by auto
   526 
   526     from finite_prod_measure_times[OF assms, of "{}" "{}"]
   527   fix A B :: "('a * 'c) set" assume "A \<inter> B = {}" "A \<subseteq> space M \<times> space N" "B \<subseteq> space M \<times> space N"
   527     show "positive (prod_measure M \<mu> N \<nu>)"
   528   then show "prod_measure M \<mu> N \<nu> (A \<union> B) = prod_measure M \<mu> N \<nu> A + prod_measure M \<mu> N \<nu> B"
   528       unfolding positive_def by simp
   529     apply (auto simp add: sets_eq_Pow prod_measure_def positive_integral_add[symmetric]
   529 
   530                 intro!: positive_integral_cong)
   530     show "additive ?P (prod_measure M \<mu> N \<nu>)"
   531     apply (subst N.measure_additive)
   531       unfolding additive_def
   532     apply (auto intro!: arg_cong[where f=\<mu>] simp: N.sets_eq_Pow sets_eq_Pow)
   532       apply (auto simp add: sets_eq_Pow prod_measure_def positive_integral_add[symmetric]
   533     done
   533                   intro!: positive_integral_cong)
       
   534       apply (subst N.measure_additive[symmetric])
       
   535       by (auto simp: N.sets_eq_Pow sets_eq_Pow)
       
   536   qed
       
   537   show "finite (space ?P)" using finite_space N.finite_space by auto
       
   538   show "sets ?P = Pow (space ?P)" by simp
       
   539 
       
   540   fix x assume "x \<in> space ?P"
       
   541   with finite_prod_measure_times[OF assms, of "{fst x}" "{snd x}"]
       
   542     finite_measure[of "{fst x}"] N.finite_measure[of "{snd x}"]
       
   543   show "prod_measure M \<mu> N \<nu> {x} \<noteq> \<omega>"
       
   544     by (auto simp add: sets_eq_Pow N.sets_eq_Pow elim!: SigmaE)
       
   545 qed
   534 qed
   546 
   535 
   547 lemma (in finite_measure_space) finite_measure_space_finite_prod_measure_alterantive:
   536 lemma (in finite_measure_space) finite_measure_space_finite_prod_measure_alterantive:
   548   assumes N: "finite_measure_space N \<nu>"
   537   assumes N: "finite_measure_space N \<nu>"
   549   shows "finite_measure_space \<lparr> space = space M \<times> space N, sets = Pow (space M \<times> space N) \<rparr> (prod_measure M \<mu> N \<nu>)"
   538   shows "finite_measure_space \<lparr> space = space M \<times> space N, sets = Pow (space M \<times> space N) \<rparr> (prod_measure M \<mu> N \<nu>)"
   550     (is "finite_measure_space ?M ?m")
   539     (is "finite_measure_space ?M ?m")
   551   unfolding finite_prod_measure_space[OF N, symmetric]
   540   unfolding finite_prod_measure_space[OF N, symmetric]
   552   using finite_measure_space_finite_prod_measure[OF N] .
   541   using finite_measure_space_finite_prod_measure[OF N] .
   553 
   542 
       
   543 lemma prod_measure_times_finite:
       
   544   assumes fms: "finite_measure_space M \<mu>" "finite_measure_space N \<nu>" and a: "a \<in> space M \<times> space N"
       
   545   shows "prod_measure M \<mu> N \<nu> {a} = \<mu> {fst a} * \<nu> {snd a}"
       
   546 proof (cases a)
       
   547   case (Pair b c)
       
   548   hence a_eq: "{a} = {b} \<times> {c}" by simp
       
   549 
       
   550   interpret M: finite_measure_space M \<mu> by fact
       
   551   interpret N: finite_measure_space N \<nu> by fact
       
   552 
       
   553   from finite_measure_space.finite_prod_measure_times[OF fms, of "{b}" "{c}"] M.sets_eq_Pow N.sets_eq_Pow a Pair
       
   554   show ?thesis unfolding a_eq by simp
       
   555 qed
       
   556 
   554 end
   557 end