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" |
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 |