2547 lemma (in pair_sigma_finite) integrable_product_swap: |
2547 lemma (in pair_sigma_finite) integrable_product_swap: |
2548 fixes f :: "_ \<Rightarrow> _::{banach, second_countable_topology}" |
2548 fixes f :: "_ \<Rightarrow> _::{banach, second_countable_topology}" |
2549 assumes "integrable (M1 \<Otimes>\<^sub>M M2) f" |
2549 assumes "integrable (M1 \<Otimes>\<^sub>M M2) f" |
2550 shows "integrable (M2 \<Otimes>\<^sub>M M1) (\<lambda>(x,y). f (y,x))" |
2550 shows "integrable (M2 \<Otimes>\<^sub>M M1) (\<lambda>(x,y). f (y,x))" |
2551 proof - |
2551 proof - |
2552 interpret Q: pair_sigma_finite M2 M1 by default |
2552 interpret Q: pair_sigma_finite M2 M1 .. |
2553 have *: "(\<lambda>(x,y). f (y,x)) = (\<lambda>x. f (case x of (x,y)\<Rightarrow>(y,x)))" by (auto simp: fun_eq_iff) |
2553 have *: "(\<lambda>(x,y). f (y,x)) = (\<lambda>x. f (case x of (x,y)\<Rightarrow>(y,x)))" by (auto simp: fun_eq_iff) |
2554 show ?thesis unfolding * |
2554 show ?thesis unfolding * |
2555 by (rule integrable_distr[OF measurable_pair_swap']) |
2555 by (rule integrable_distr[OF measurable_pair_swap']) |
2556 (simp add: distr_pair_swap[symmetric] assms) |
2556 (simp add: distr_pair_swap[symmetric] assms) |
2557 qed |
2557 qed |
2558 |
2558 |
2559 lemma (in pair_sigma_finite) integrable_product_swap_iff: |
2559 lemma (in pair_sigma_finite) integrable_product_swap_iff: |
2560 fixes f :: "_ \<Rightarrow> _::{banach, second_countable_topology}" |
2560 fixes f :: "_ \<Rightarrow> _::{banach, second_countable_topology}" |
2561 shows "integrable (M2 \<Otimes>\<^sub>M M1) (\<lambda>(x,y). f (y,x)) \<longleftrightarrow> integrable (M1 \<Otimes>\<^sub>M M2) f" |
2561 shows "integrable (M2 \<Otimes>\<^sub>M M1) (\<lambda>(x,y). f (y,x)) \<longleftrightarrow> integrable (M1 \<Otimes>\<^sub>M M2) f" |
2562 proof - |
2562 proof - |
2563 interpret Q: pair_sigma_finite M2 M1 by default |
2563 interpret Q: pair_sigma_finite M2 M1 .. |
2564 from Q.integrable_product_swap[of "\<lambda>(x,y). f (y,x)"] integrable_product_swap[of f] |
2564 from Q.integrable_product_swap[of "\<lambda>(x,y). f (y,x)"] integrable_product_swap[of f] |
2565 show ?thesis by auto |
2565 show ?thesis by auto |
2566 qed |
2566 qed |
2567 |
2567 |
2568 lemma (in pair_sigma_finite) integral_product_swap: |
2568 lemma (in pair_sigma_finite) integral_product_swap: |
2749 assumes f[measurable]: "integrable (M1 \<Otimes>\<^sub>M M2) (split f)" |
2749 assumes f[measurable]: "integrable (M1 \<Otimes>\<^sub>M M2) (split f)" |
2750 shows AE_integrable_snd: "AE y in M2. integrable M1 (\<lambda>x. f x y)" (is "?AE") |
2750 shows AE_integrable_snd: "AE y in M2. integrable M1 (\<lambda>x. f x y)" (is "?AE") |
2751 and integrable_snd: "integrable M2 (\<lambda>y. \<integral>x. f x y \<partial>M1)" (is "?INT") |
2751 and integrable_snd: "integrable M2 (\<lambda>y. \<integral>x. f x y \<partial>M1)" (is "?INT") |
2752 and integral_snd: "(\<integral>y. (\<integral>x. f x y \<partial>M1) \<partial>M2) = integral\<^sup>L (M1 \<Otimes>\<^sub>M M2) (split f)" (is "?EQ") |
2752 and integral_snd: "(\<integral>y. (\<integral>x. f x y \<partial>M1) \<partial>M2) = integral\<^sup>L (M1 \<Otimes>\<^sub>M M2) (split f)" (is "?EQ") |
2753 proof - |
2753 proof - |
2754 interpret Q: pair_sigma_finite M2 M1 by default |
2754 interpret Q: pair_sigma_finite M2 M1 .. |
2755 have Q_int: "integrable (M2 \<Otimes>\<^sub>M M1) (\<lambda>(x, y). f y x)" |
2755 have Q_int: "integrable (M2 \<Otimes>\<^sub>M M1) (\<lambda>(x, y). f y x)" |
2756 using f unfolding integrable_product_swap_iff[symmetric] by simp |
2756 using f unfolding integrable_product_swap_iff[symmetric] by simp |
2757 show ?AE using Q.AE_integrable_fst'[OF Q_int] by simp |
2757 show ?AE using Q.AE_integrable_fst'[OF Q_int] by simp |
2758 show ?INT using Q.integrable_fst'[OF Q_int] by simp |
2758 show ?INT using Q.integrable_fst'[OF Q_int] by simp |
2759 show ?EQ using Q.integral_fst'[OF Q_int] |
2759 show ?EQ using Q.integral_fst'[OF Q_int] |
2778 fixes f :: "_ \<Rightarrow> _::{banach, second_countable_topology}" |
2778 fixes f :: "_ \<Rightarrow> _::{banach, second_countable_topology}" |
2779 assumes IJ[simp]: "I \<inter> J = {}" and fin: "finite I" "finite J" |
2779 assumes IJ[simp]: "I \<inter> J = {}" and fin: "finite I" "finite J" |
2780 and f: "integrable (Pi\<^sub>M (I \<union> J) M) f" |
2780 and f: "integrable (Pi\<^sub>M (I \<union> J) M) f" |
2781 shows "integral\<^sup>L (Pi\<^sub>M (I \<union> J) M) f = (\<integral>x. (\<integral>y. f (merge I J (x, y)) \<partial>Pi\<^sub>M J M) \<partial>Pi\<^sub>M I M)" |
2781 shows "integral\<^sup>L (Pi\<^sub>M (I \<union> J) M) f = (\<integral>x. (\<integral>y. f (merge I J (x, y)) \<partial>Pi\<^sub>M J M) \<partial>Pi\<^sub>M I M)" |
2782 proof - |
2782 proof - |
2783 interpret I: finite_product_sigma_finite M I by default fact |
2783 interpret I: finite_product_sigma_finite M I by standard fact |
2784 interpret J: finite_product_sigma_finite M J by default fact |
2784 interpret J: finite_product_sigma_finite M J by standard fact |
2785 have "finite (I \<union> J)" using fin by auto |
2785 have "finite (I \<union> J)" using fin by auto |
2786 interpret IJ: finite_product_sigma_finite M "I \<union> J" by default fact |
2786 interpret IJ: finite_product_sigma_finite M "I \<union> J" by standard fact |
2787 interpret P: pair_sigma_finite "Pi\<^sub>M I M" "Pi\<^sub>M J M" by default |
2787 interpret P: pair_sigma_finite "Pi\<^sub>M I M" "Pi\<^sub>M J M" .. |
2788 let ?M = "merge I J" |
2788 let ?M = "merge I J" |
2789 let ?f = "\<lambda>x. f (?M x)" |
2789 let ?f = "\<lambda>x. f (?M x)" |
2790 from f have f_borel: "f \<in> borel_measurable (Pi\<^sub>M (I \<union> J) M)" |
2790 from f have f_borel: "f \<in> borel_measurable (Pi\<^sub>M (I \<union> J) M)" |
2791 by auto |
2791 by auto |
2792 have P_borel: "(\<lambda>x. f (merge I J x)) \<in> borel_measurable (Pi\<^sub>M I M \<Otimes>\<^sub>M Pi\<^sub>M J M)" |
2792 have P_borel: "(\<lambda>x. f (merge I J x)) \<in> borel_measurable (Pi\<^sub>M I M \<Otimes>\<^sub>M Pi\<^sub>M J M)" |
2828 lemma (in product_sigma_finite) product_integrable_setprod: |
2828 lemma (in product_sigma_finite) product_integrable_setprod: |
2829 fixes f :: "'i \<Rightarrow> 'a \<Rightarrow> _::{real_normed_field,banach,second_countable_topology}" |
2829 fixes f :: "'i \<Rightarrow> 'a \<Rightarrow> _::{real_normed_field,banach,second_countable_topology}" |
2830 assumes [simp]: "finite I" and integrable: "\<And>i. i \<in> I \<Longrightarrow> integrable (M i) (f i)" |
2830 assumes [simp]: "finite I" and integrable: "\<And>i. i \<in> I \<Longrightarrow> integrable (M i) (f i)" |
2831 shows "integrable (Pi\<^sub>M I M) (\<lambda>x. (\<Prod>i\<in>I. f i (x i)))" (is "integrable _ ?f") |
2831 shows "integrable (Pi\<^sub>M I M) (\<lambda>x. (\<Prod>i\<in>I. f i (x i)))" (is "integrable _ ?f") |
2832 proof (unfold integrable_iff_bounded, intro conjI) |
2832 proof (unfold integrable_iff_bounded, intro conjI) |
2833 interpret finite_product_sigma_finite M I by default fact |
2833 interpret finite_product_sigma_finite M I by standard fact |
2834 |
2834 |
2835 show "?f \<in> borel_measurable (Pi\<^sub>M I M)" |
2835 show "?f \<in> borel_measurable (Pi\<^sub>M I M)" |
2836 using assms by simp |
2836 using assms by simp |
2837 have "(\<integral>\<^sup>+ x. ereal (norm (\<Prod>i\<in>I. f i (x i))) \<partial>Pi\<^sub>M I M) = |
2837 have "(\<integral>\<^sup>+ x. ereal (norm (\<Prod>i\<in>I. f i (x i))) \<partial>Pi\<^sub>M I M) = |
2838 (\<integral>\<^sup>+ x. (\<Prod>i\<in>I. ereal (norm (f i (x i)))) \<partial>Pi\<^sub>M I M)" |
2838 (\<integral>\<^sup>+ x. (\<Prod>i\<in>I. ereal (norm (f i (x i)))) \<partial>Pi\<^sub>M I M)" |
2857 case (insert i I) |
2857 case (insert i I) |
2858 then have iI: "finite (insert i I)" by auto |
2858 then have iI: "finite (insert i I)" by auto |
2859 then have prod: "\<And>J. J \<subseteq> insert i I \<Longrightarrow> |
2859 then have prod: "\<And>J. J \<subseteq> insert i I \<Longrightarrow> |
2860 integrable (Pi\<^sub>M J M) (\<lambda>x. (\<Prod>i\<in>J. f i (x i)))" |
2860 integrable (Pi\<^sub>M J M) (\<lambda>x. (\<Prod>i\<in>J. f i (x i)))" |
2861 by (intro product_integrable_setprod insert(4)) (auto intro: finite_subset) |
2861 by (intro product_integrable_setprod insert(4)) (auto intro: finite_subset) |
2862 interpret I: finite_product_sigma_finite M I by default fact |
2862 interpret I: finite_product_sigma_finite M I by standard fact |
2863 have *: "\<And>x y. (\<Prod>j\<in>I. f j (if j = i then y else x j)) = (\<Prod>j\<in>I. f j (x j))" |
2863 have *: "\<And>x y. (\<Prod>j\<in>I. f j (if j = i then y else x j)) = (\<Prod>j\<in>I. f j (x j))" |
2864 using `i \<notin> I` by (auto intro!: setprod.cong) |
2864 using `i \<notin> I` by (auto intro!: setprod.cong) |
2865 show ?case |
2865 show ?case |
2866 unfolding product_integral_insert[OF insert(1,2) prod[OF subset_refl]] |
2866 unfolding product_integral_insert[OF insert(1,2) prod[OF subset_refl]] |
2867 by (simp add: * insert prod subset_insertI) |
2867 by (simp add: * insert prod subset_insertI) |