738 lemma sets_in_extensional[measurable (raw)]: |
738 lemma sets_in_extensional[measurable (raw)]: |
739 "f \<in> measurable N (PiM I M) \<Longrightarrow> Measurable.pred N (\<lambda>x. f x \<in> extensional I)" |
739 "f \<in> measurable N (PiM I M) \<Longrightarrow> Measurable.pred N (\<lambda>x. f x \<in> extensional I)" |
740 unfolding pred_def |
740 unfolding pred_def |
741 by (rule measurable_sets_Collect[of f N "PiM I M", OF _ sets_in_extensional_aux]) auto |
741 by (rule measurable_sets_Collect[of f N "PiM I M", OF _ sets_in_extensional_aux]) auto |
742 |
742 |
|
743 lemma measure_eqI_PiM_finite: |
|
744 assumes [simp]: "finite I" "sets P = PiM I M" "sets Q = PiM I M" |
|
745 assumes eq: "\<And>A. (\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> P (Pi\<^sub>E I A) = Q (Pi\<^sub>E I A)" |
|
746 assumes A: "range A \<subseteq> prod_algebra I M" "(\<Union>i. A i) = space (PiM I M)" "\<And>i::nat. P (A i) \<noteq> \<infinity>" |
|
747 shows "P = Q" |
|
748 proof (rule measure_eqI_generator_eq[OF Int_stable_prod_algebra prod_algebra_sets_into_space]) |
|
749 show "range A \<subseteq> prod_algebra I M" "(\<Union>i. A i) = (\<Pi>\<^sub>E i\<in>I. space (M i))" "\<And>i. P (A i) \<noteq> \<infinity>" |
|
750 unfolding space_PiM[symmetric] by fact+ |
|
751 fix X assume "X \<in> prod_algebra I M" |
|
752 then obtain J E where X: "X = prod_emb I M J (PIE j:J. E j)" |
|
753 and J: "finite J" "J \<subseteq> I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets (M j)" |
|
754 by (force elim!: prod_algebraE) |
|
755 then show "emeasure P X = emeasure Q X" |
|
756 unfolding X by (subst (1 2) prod_emb_Pi) (auto simp: eq) |
|
757 qed (simp_all add: sets_PiM) |
|
758 |
|
759 lemma measure_eqI_PiM_infinite: |
|
760 assumes [simp]: "sets P = PiM I M" "sets Q = PiM I M" |
|
761 assumes eq: "\<And>A J. finite J \<Longrightarrow> J \<subseteq> I \<Longrightarrow> (\<And>i. i \<in> J \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> |
|
762 P (prod_emb I M J (Pi\<^sub>E J A)) = Q (prod_emb I M J (Pi\<^sub>E J A))" |
|
763 assumes A: "finite_measure P" |
|
764 shows "P = Q" |
|
765 proof (rule measure_eqI_generator_eq[OF Int_stable_prod_algebra prod_algebra_sets_into_space]) |
|
766 interpret finite_measure P by fact |
|
767 def i \<equiv> "SOME i. i \<in> I" |
|
768 have i: "I \<noteq> {} \<Longrightarrow> i \<in> I" |
|
769 unfolding i_def by (rule someI_ex) auto |
|
770 def A \<equiv> "\<lambda>n::nat. if I = {} then prod_emb I M {} (\<Pi>\<^sub>E i\<in>{}. {}) else prod_emb I M {i} (\<Pi>\<^sub>E i\<in>{i}. space (M i))" |
|
771 then show "range A \<subseteq> prod_algebra I M" |
|
772 using prod_algebraI[of "{}" I "\<lambda>i. space (M i)" M] by (auto intro!: prod_algebraI i) |
|
773 have "\<And>i. A i = space (PiM I M)" |
|
774 by (auto simp: prod_emb_def space_PiM PiE_iff A_def i ex_in_conv[symmetric] exI) |
|
775 then show "(\<Union>i. A i) = (\<Pi>\<^sub>E i\<in>I. space (M i))" "\<And>i. emeasure P (A i) \<noteq> \<infinity>" |
|
776 by (auto simp: space_PiM) |
|
777 next |
|
778 fix X assume X: "X \<in> prod_algebra I M" |
|
779 then obtain J E where X: "X = prod_emb I M J (PIE j:J. E j)" |
|
780 and J: "finite J" "J \<subseteq> I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets (M j)" |
|
781 by (force elim!: prod_algebraE) |
|
782 then show "emeasure P X = emeasure Q X" |
|
783 by (auto intro!: eq) |
|
784 qed (auto simp: sets_PiM) |
|
785 |
743 locale product_sigma_finite = |
786 locale product_sigma_finite = |
744 fixes M :: "'i \<Rightarrow> 'a measure" |
787 fixes M :: "'i \<Rightarrow> 'a measure" |
745 assumes sigma_finite_measures: "\<And>i. sigma_finite_measure (M i)" |
788 assumes sigma_finite_measures: "\<And>i. sigma_finite_measure (M i)" |
746 |
789 |
747 sublocale product_sigma_finite \<subseteq> M: sigma_finite_measure "M i" for i |
790 sublocale product_sigma_finite \<subseteq> M: sigma_finite_measure "M i" for i |
858 with insert show ?case |
901 with insert show ?case |
859 by (subst (asm) prod_emb_PiE_same_index) (auto intro!: sets.sets_into_space) |
902 by (subst (asm) prod_emb_PiE_same_index) (auto intro!: sets.sets_into_space) |
860 qed simp |
903 qed simp |
861 |
904 |
862 lemma (in product_sigma_finite) PiM_eqI: |
905 lemma (in product_sigma_finite) PiM_eqI: |
863 assumes "finite I" "sets P = PiM I M" |
906 assumes I[simp]: "finite I" and P: "sets P = PiM I M" |
864 assumes eq: "\<And>A. (\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> P (Pi\<^sub>E I A) = (\<Prod>i\<in>I. emeasure (M i) (A i))" |
907 assumes eq: "\<And>A. (\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> P (Pi\<^sub>E I A) = (\<Prod>i\<in>I. emeasure (M i) (A i))" |
865 shows "P = PiM I M" |
908 shows "P = PiM I M" |
866 proof - |
909 proof - |
867 interpret finite_product_sigma_finite M I |
910 interpret finite_product_sigma_finite M I |
868 proof qed fact |
911 proof qed fact |
869 from sigma_finite_pairs guess C .. note C = this |
912 from sigma_finite_pairs guess C .. note C = this |
870 show ?thesis |
913 show ?thesis |
871 proof (rule measure_eqI_generator_eq[symmetric, OF Int_stable_prod_algebra prod_algebra_sets_into_space]) |
914 proof (rule measure_eqI_PiM_finite[OF I refl P, symmetric]) |
872 show "sets (PiM I M) = sigma_sets (\<Pi>\<^sub>E i\<in>I. space (M i)) (prod_algebra I M)" |
915 show "(\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M i)) \<Longrightarrow> (Pi\<^sub>M I M) (Pi\<^sub>E I A) = P (Pi\<^sub>E I A)" for A |
873 by (rule sets_PiM) |
916 by (simp add: eq emeasure_PiM) |
874 then show "sets P = sigma_sets (\<Pi>\<^sub>E i\<in>I. space (M i)) (prod_algebra I M)" |
|
875 unfolding `sets P = sets (PiM I M)` by simp |
|
876 def A \<equiv> "\<lambda>n. \<Pi>\<^sub>E i\<in>I. C i n" |
917 def A \<equiv> "\<lambda>n. \<Pi>\<^sub>E i\<in>I. C i n" |
877 show "range A \<subseteq> prod_algebra I M" "\<And>i. emeasure (Pi\<^sub>M I M) (A i) \<noteq> \<infinity>" |
918 with C show "range A \<subseteq> prod_algebra I M" "\<And>i. emeasure (Pi\<^sub>M I M) (A i) \<noteq> \<infinity>" "(\<Union>i. A i) = space (PiM I M)" |
878 using C \<open>finite I\<close> |
919 by (auto intro!: prod_algebraI_finite simp: emeasure_PiM subset_eq setprod_PInf emeasure_nonneg) |
879 by (auto intro!: prod_algebraI_finite simp: A_def emeasure_PiM subset_eq setprod_PInf emeasure_nonneg) |
|
880 show "(\<Union>i. A i) = (\<Pi>\<^sub>E i\<in>I. space (M i))" |
|
881 using C by (simp add: A_def space_PiM) |
|
882 |
|
883 fix X assume X: "X \<in> prod_algebra I M" |
|
884 then obtain J E where X: "X = prod_emb I M J (PIE j:J. E j)" |
|
885 and J: "finite J" "J \<subseteq> I" "\<And>j. j \<in> J \<Longrightarrow> E j \<in> sets (M j)" |
|
886 by (force elim!: prod_algebraE) |
|
887 show "emeasure (PiM I M) X = emeasure P X" |
|
888 unfolding X by (subst (1 2) prod_emb_Pi) (auto simp: eq emeasure_PiM J \<open>finite I\<close>) |
|
889 qed |
920 qed |
890 qed |
921 qed |
891 |
922 |
892 lemma (in product_sigma_finite) sigma_finite: |
923 lemma (in product_sigma_finite) sigma_finite: |
893 assumes "finite I" |
924 assumes "finite I" |