732 show ?thesis |
732 show ?thesis |
733 unfolding * using assms by (rule sets_pair_sigma_algebra_swap) |
733 unfolding * using assms by (rule sets_pair_sigma_algebra_swap) |
734 qed |
734 qed |
735 |
735 |
736 lemma (in pair_sigma_finite) pair_measure_alt2: |
736 lemma (in pair_sigma_finite) pair_measure_alt2: |
737 assumes "A \<in> sets P" |
737 assumes A: "A \<in> sets P" |
738 shows "\<mu> A = (\<integral>\<^isup>+y. M1.\<mu> ((\<lambda>x. (x, y)) -` A) \<partial>M2)" |
738 shows "\<mu> A = (\<integral>\<^isup>+y. M1.\<mu> ((\<lambda>x. (x, y)) -` A) \<partial>M2)" |
739 (is "_ = ?\<nu> A") |
739 (is "_ = ?\<nu> A") |
740 proof - |
740 proof - |
|
741 interpret Q: pair_sigma_finite M2 M1 by default |
741 from sigma_finite_up_in_pair_measure_generator guess F :: "nat \<Rightarrow> ('a \<times> 'b) set" .. note F = this |
742 from sigma_finite_up_in_pair_measure_generator guess F :: "nat \<Rightarrow> ('a \<times> 'b) set" .. note F = this |
742 have [simp]: "\<And>m. \<lparr> space = space E, sets = sets (sigma E), measure = m \<rparr> = P\<lparr> measure := m \<rparr>" |
743 have [simp]: "\<And>m. \<lparr> space = space E, sets = sets (sigma E), measure = m \<rparr> = P\<lparr> measure := m \<rparr>" |
743 unfolding pair_measure_def by simp |
744 unfolding pair_measure_def by simp |
744 show ?thesis |
745 |
745 proof (rule measure_unique_Int_stable[where \<nu>="?\<nu>", OF Int_stable_pair_measure_generator], simp_all) |
746 have "\<mu> A = Q.\<mu> ((\<lambda>(y, x). (x, y)) -` A \<inter> space Q.P)" |
746 show "range F \<subseteq> sets E" "F \<up> space E" "\<And>i. \<mu> (F i) \<noteq> \<omega>" "A \<in> sets (sigma E)" |
747 proof (rule measure_unique_Int_stable_vimage[OF Int_stable_pair_measure_generator]) |
|
748 show "measure_space P" "measure_space Q.P" by default |
|
749 show "(\<lambda>(y, x). (x, y)) \<in> measurable Q.P P" by (rule Q.pair_sigma_algebra_swap_measurable) |
|
750 show "sets (sigma E) = sets P" "space E = space P" "A \<in> sets (sigma E)" |
|
751 using assms unfolding pair_measure_def by auto |
|
752 show "range F \<subseteq> sets E" "F \<up> space E" "\<And>i. \<mu> (F i) \<noteq> \<omega>" |
747 using F `A \<in> sets P` by (auto simp: pair_measure_def) |
753 using F `A \<in> sets P` by (auto simp: pair_measure_def) |
748 show "measure_space P" by default |
|
749 interpret Q: pair_sigma_finite M2 M1 by default |
|
750 have P: "sigma_algebra (P\<lparr> measure := ?\<nu>\<rparr>)" |
|
751 by (intro sigma_algebra_cong) auto |
|
752 show "measure_space (P\<lparr> measure := ?\<nu>\<rparr>)" |
|
753 apply (rule Q.measure_space_vimage[OF P]) |
|
754 apply (simp_all) |
|
755 apply (rule Q.pair_sigma_algebra_swap_measurable) |
|
756 proof - |
|
757 fix A assume "A \<in> sets P" |
|
758 from sets_swap[OF this] |
|
759 show "(\<integral>\<^isup>+ y. M1.\<mu> ((\<lambda>x. (x, y)) -` A) \<partial>M2) = Q.\<mu> ((\<lambda>(x, y). (y, x)) -` A \<inter> space (M2 \<Otimes>\<^isub>M M1))" |
|
760 using sets_into_space[OF `A \<in> sets P`] |
|
761 by (auto simp add: Q.pair_measure_alt space_pair_measure |
|
762 intro!: M2.positive_integral_cong arg_cong[where f="M1.\<mu>"]) |
|
763 qed |
|
764 fix X assume "X \<in> sets E" |
754 fix X assume "X \<in> sets E" |
765 then obtain A B where X: "X = A \<times> B" and AB: "A \<in> sets M1" "B \<in> sets M2" |
755 then obtain A B where X[simp]: "X = A \<times> B" and AB: "A \<in> sets M1" "B \<in> sets M2" |
766 unfolding pair_measure_def pair_measure_generator_def by auto |
756 unfolding pair_measure_def pair_measure_generator_def by auto |
767 show "\<mu> X = ?\<nu> X" |
757 then have "(\<lambda>(y, x). (x, y)) -` X \<inter> space Q.P = B \<times> A" |
768 proof - |
758 using M1.sets_into_space M2.sets_into_space by (auto simp: space_pair_measure) |
769 from AB have "?\<nu> (A \<times> B) = (\<integral>\<^isup>+y. M1.\<mu> A * indicator B y \<partial>M2)" |
759 then show "\<mu> X = Q.\<mu> ((\<lambda>(y, x). (x, y)) -` X \<inter> space Q.P)" |
770 by (auto intro!: M2.positive_integral_cong) |
760 using AB by (simp add: pair_measure_times Q.pair_measure_times ac_simps) |
771 with AB show ?thesis |
761 qed |
772 unfolding pair_measure_times[OF AB] X |
762 then show ?thesis |
773 by (simp add: M2.positive_integral_cmult_indicator ac_simps) |
763 using sets_into_space[OF A] Q.pair_measure_alt[OF sets_swap[OF A]] |
774 qed |
764 by (auto simp add: Q.pair_measure_alt space_pair_measure |
775 qed |
765 intro!: M2.positive_integral_cong arg_cong[where f="M1.\<mu>"]) |
776 qed |
766 qed |
777 |
|
778 |
767 |
779 lemma pair_sigma_algebra_sigma: |
768 lemma pair_sigma_algebra_sigma: |
780 assumes 1: "S1 \<up> (space E1)" "range S1 \<subseteq> sets E1" and E1: "sets E1 \<subseteq> Pow (space E1)" |
769 assumes 1: "S1 \<up> (space E1)" "range S1 \<subseteq> sets E1" and E1: "sets E1 \<subseteq> Pow (space E1)" |
781 assumes 2: "S2 \<up> (space E2)" "range S2 \<subseteq> sets E2" and E2: "sets E2 \<subseteq> Pow (space E2)" |
770 assumes 2: "S2 \<up> (space E2)" "range S2 \<subseteq> sets E2" and E2: "sets E2 \<subseteq> Pow (space E2)" |
782 shows "sets (sigma (pair_measure_generator (sigma E1) (sigma E2))) = sets (sigma (pair_measure_generator E1 E2))" |
771 shows "sets (sigma (pair_measure_generator (sigma E1) (sigma E2))) = sets (sigma (pair_measure_generator E1 E2))" |
1557 qed |
1546 qed |
1558 |
1547 |
1559 lemma (in product_sigma_finite) measure_fold: |
1548 lemma (in product_sigma_finite) measure_fold: |
1560 assumes IJ[simp]: "I \<inter> J = {}" and fin: "finite I" "finite J" |
1549 assumes IJ[simp]: "I \<inter> J = {}" and fin: "finite I" "finite J" |
1561 assumes A: "A \<in> sets (Pi\<^isub>M (I \<union> J) M)" |
1550 assumes A: "A \<in> sets (Pi\<^isub>M (I \<union> J) M)" |
1562 shows "measure (Pi\<^isub>M I M \<Otimes>\<^isub>M Pi\<^isub>M J M) ((\<lambda>(x,y). merge I x J y) -` A \<inter> space (Pi\<^isub>M I M \<Otimes>\<^isub>M Pi\<^isub>M J M)) = |
1551 shows "measure (Pi\<^isub>M (I \<union> J) M) A = |
1563 measure (Pi\<^isub>M (I \<union> J) M) A" |
1552 measure (Pi\<^isub>M I M \<Otimes>\<^isub>M Pi\<^isub>M J M) ((\<lambda>(x,y). merge I x J y) -` A \<inter> space (Pi\<^isub>M I M \<Otimes>\<^isub>M Pi\<^isub>M J M))" |
1564 proof - |
1553 proof - |
1565 interpret I: finite_product_sigma_finite M I by default fact |
1554 interpret I: finite_product_sigma_finite M I by default fact |
1566 interpret J: finite_product_sigma_finite M J by default fact |
1555 interpret J: finite_product_sigma_finite M J by default fact |
1567 have "finite (I \<union> J)" using fin by auto |
1556 have "finite (I \<union> J)" using fin by auto |
1568 interpret IJ: finite_product_sigma_finite M "I \<union> J" by default fact |
1557 interpret IJ: finite_product_sigma_finite M "I \<union> J" by default fact |
1573 F: "\<And>i. i\<in> I \<union> J \<Longrightarrow> range (F i) \<subseteq> sets (M i)" |
1562 F: "\<And>i. i\<in> I \<union> J \<Longrightarrow> range (F i) \<subseteq> sets (M i)" |
1574 "(\<lambda>k. \<Pi>\<^isub>E i\<in>I \<union> J. F i k) \<up> space IJ.G" |
1563 "(\<lambda>k. \<Pi>\<^isub>E i\<in>I \<union> J. F i k) \<up> space IJ.G" |
1575 "\<And>k. \<forall>i\<in>I\<union>J. \<mu> i (F i k) \<noteq> \<omega>" |
1564 "\<And>k. \<forall>i\<in>I\<union>J. \<mu> i (F i k) \<noteq> \<omega>" |
1576 by auto |
1565 by auto |
1577 let ?F = "\<lambda>k. \<Pi>\<^isub>E i\<in>I \<union> J. F i k" |
1566 let ?F = "\<lambda>k. \<Pi>\<^isub>E i\<in>I \<union> J. F i k" |
1578 show "P.\<mu> (?X A) = IJ.\<mu> A" |
1567 show "IJ.\<mu> A = P.\<mu> (?X A)" |
1579 proof (rule measure_unique_Int_stable[where X=A]) |
1568 proof (rule measure_unique_Int_stable_vimage) |
1580 show "A \<in> sets (sigma IJ.G)" |
1569 show "measure_space IJ.P" "measure_space P.P" by default |
|
1570 show "sets (sigma IJ.G) = sets IJ.P" "space IJ.G = space IJ.P" "A \<in> sets (sigma IJ.G)" |
1581 using A unfolding product_algebra_def by auto |
1571 using A unfolding product_algebra_def by auto |
|
1572 next |
1582 show "Int_stable IJ.G" |
1573 show "Int_stable IJ.G" |
1583 by (simp add: PiE_Int Int_stable_def product_algebra_def |
1574 by (simp add: PiE_Int Int_stable_def product_algebra_def |
1584 product_algebra_generator_def) |
1575 product_algebra_generator_def) |
1585 auto |
1576 auto |
1586 show "range ?F \<subseteq> sets IJ.G" using F |
1577 show "range ?F \<subseteq> sets IJ.G" using F |
1587 by (simp add: image_subset_iff product_algebra_def |
1578 by (simp add: image_subset_iff product_algebra_def |
1588 product_algebra_generator_def) |
1579 product_algebra_generator_def) |
1589 show "?F \<up> space IJ.G " using F(2) by simp |
1580 show "?F \<up> space IJ.G " using F(2) by simp |
1590 have "measure_space IJ.P" by fact |
1581 show "\<And>k. IJ.\<mu> (?F k) \<noteq> \<omega>" |
1591 also have "IJ.P = \<lparr> space = space IJ.G, sets = sets (sigma IJ.G), measure = IJ.\<mu> \<rparr>" |
1582 using `finite I` F |
1592 by (simp add: product_algebra_def) |
1583 by (subst IJ.measure_times) (auto simp add: setprod_\<omega>) |
1593 finally show "measure_space \<dots>" . |
1584 show "?g \<in> measurable P.P IJ.P" |
1594 let ?P = "\<lparr> space = space IJ.G, sets = sets (sigma IJ.G), |
1585 using IJ by (rule measurable_merge) |
1595 measure = \<lambda>A. P.\<mu> (?X A)\<rparr>" |
|
1596 have *: "?P = (sigma IJ.G \<lparr> measure := \<lambda>A. P.\<mu> (?X A) \<rparr>)" |
|
1597 by auto |
|
1598 have "sigma_algebra (sigma IJ.G \<lparr> measure := \<lambda>A. P.\<mu> (?X A) \<rparr>)" |
|
1599 by (rule IJ.sigma_algebra_cong) (auto simp: product_algebra_def) |
|
1600 then show "measure_space ?P" unfolding * |
|
1601 using measurable_merge[OF `I \<inter> J = {}`] |
|
1602 by (auto intro!: P.measure_space_vimage simp add: product_algebra_def) |
|
1603 next |
1586 next |
1604 fix A assume "A \<in> sets IJ.G" |
1587 fix A assume "A \<in> sets IJ.G" |
1605 then obtain F where A[simp]: "A = Pi\<^isub>E (I \<union> J) F" |
1588 then obtain F where A: "A = Pi\<^isub>E (I \<union> J) F" |
1606 and F: "\<And>i. i \<in> I \<union> J \<Longrightarrow> F i \<in> sets (M i)" |
1589 and F: "\<And>i. i \<in> I \<union> J \<Longrightarrow> F i \<in> sets (M i)" |
1607 by (auto simp: product_algebra_generator_def) |
1590 by (auto simp: product_algebra_generator_def) |
1608 then have "?X A = (Pi\<^isub>E I F \<times> Pi\<^isub>E J F)" |
1591 then have X: "?X A = (Pi\<^isub>E I F \<times> Pi\<^isub>E J F)" |
1609 using sets_into_space by (auto simp: space_pair_measure) blast+ |
1592 using sets_into_space by (auto simp: space_pair_measure) blast+ |
1610 then have "P.\<mu> (?X A) = (\<Prod>i\<in>I. \<mu> i (F i)) * (\<Prod>i\<in>J. \<mu> i (F i))" |
1593 then have "P.\<mu> (?X A) = (\<Prod>i\<in>I. \<mu> i (F i)) * (\<Prod>i\<in>J. \<mu> i (F i))" |
1611 using `finite J` `finite I` F |
1594 using `finite J` `finite I` F |
1612 by (simp add: P.pair_measure_times I.measure_times J.measure_times) |
1595 by (simp add: P.pair_measure_times I.measure_times J.measure_times) |
1613 also have "\<dots> = (\<Prod>i\<in>I \<union> J. \<mu> i (F i))" |
1596 also have "\<dots> = (\<Prod>i\<in>I \<union> J. \<mu> i (F i))" |
1614 using `finite J` `finite I` `I \<inter> J = {}` by (simp add: setprod_Un_one) |
1597 using `finite J` `finite I` `I \<inter> J = {}` by (simp add: setprod_Un_one) |
1615 also have "\<dots> = IJ.\<mu> A" |
1598 also have "\<dots> = IJ.\<mu> A" |
1616 using `finite J` `finite I` F unfolding A |
1599 using `finite J` `finite I` F unfolding A |
1617 by (intro IJ.measure_times[symmetric]) auto |
1600 by (intro IJ.measure_times[symmetric]) auto |
1618 finally show "P.\<mu> (?X A) = IJ.\<mu> A" . |
1601 finally show "IJ.\<mu> A = P.\<mu> (?X A)" by (rule sym) |
1619 next |
|
1620 fix k |
|
1621 have k: "\<And>i. i \<in> I \<union> J \<Longrightarrow> F i k \<in> sets (M i)" using F by auto |
|
1622 then have "?X (?F k) = (\<Pi>\<^isub>E i\<in>I. F i k) \<times> (\<Pi>\<^isub>E i\<in>J. F i k)" |
|
1623 using sets_into_space by (auto simp: space_pair_measure) blast+ |
|
1624 with k have "P.\<mu> (?X (?F k)) = (\<Prod>i\<in>I. \<mu> i (F i k)) * (\<Prod>i\<in>J. \<mu> i (F i k))" |
|
1625 by (simp add: P.pair_measure_times I.measure_times J.measure_times) |
|
1626 then show "P.\<mu> (?X (?F k)) \<noteq> \<omega>" |
|
1627 using `finite I` F by (simp add: setprod_\<omega>) |
|
1628 qed |
1602 qed |
1629 qed |
1603 qed |
1630 |
1604 |
1631 lemma (in product_sigma_finite) product_positive_integral_fold: |
1605 lemma (in product_sigma_finite) product_positive_integral_fold: |
1632 assumes IJ[simp]: "I \<inter> J = {}" and fin: "finite I" "finite J" |
1606 assumes IJ[simp]: "I \<inter> J = {}" and fin: "finite I" "finite J" |
1749 show ?thesis |
1723 show ?thesis |
1750 proof (subst P.integrable_fst_measurable(2)[of ?f, simplified]) |
1724 proof (subst P.integrable_fst_measurable(2)[of ?f, simplified]) |
1751 have 1: "sigma_algebra IJ.P" by default |
1725 have 1: "sigma_algebra IJ.P" by default |
1752 have 2: "?M \<in> measurable P.P IJ.P" using measurable_merge[OF IJ] . |
1726 have 2: "?M \<in> measurable P.P IJ.P" using measurable_merge[OF IJ] . |
1753 have 3: "\<And>A. A \<in> sets IJ.P \<Longrightarrow> IJ.\<mu> A = P.\<mu> (?M -` A \<inter> space P.P)" |
1727 have 3: "\<And>A. A \<in> sets IJ.P \<Longrightarrow> IJ.\<mu> A = P.\<mu> (?M -` A \<inter> space P.P)" |
1754 by (rule measure_fold[OF IJ fin, symmetric]) |
1728 by (rule measure_fold[OF IJ fin]) |
1755 have 4: "integrable (Pi\<^isub>M (I \<union> J) M) f" by fact |
1729 have 4: "integrable (Pi\<^isub>M (I \<union> J) M) f" by fact |
1756 show "integrable P.P ?f" |
1730 show "integrable P.P ?f" |
1757 by (rule P.integral_vimage[where f=f, OF 1 2 3 4]) |
1731 by (rule P.integral_vimage[where f=f, OF 1 2 3 4]) |
1758 show "integral\<^isup>L IJ.P f = integral\<^isup>L P.P ?f" |
1732 show "integral\<^isup>L IJ.P f = integral\<^isup>L P.P ?f" |
1759 by (rule P.integral_vimage[where f=f, OF 1 2 3 4]) |
1733 by (rule P.integral_vimage[where f=f, OF 1 2 3 4]) |