117 lemma (in prob_space) |
117 lemma (in prob_space) |
118 assumes indep: "indep_set A B" |
118 assumes indep: "indep_set A B" |
119 shows indep_setD_ev1: "A \<subseteq> events" |
119 shows indep_setD_ev1: "A \<subseteq> events" |
120 and indep_setD_ev2: "B \<subseteq> events" |
120 and indep_setD_ev2: "B \<subseteq> events" |
121 using indep unfolding indep_set_def indep_sets_def UNIV_bool by auto |
121 using indep unfolding indep_set_def indep_sets_def UNIV_bool by auto |
122 |
|
123 lemma dynkin_systemI': |
|
124 assumes 1: "\<And> A. A \<in> sets M \<Longrightarrow> A \<subseteq> space M" |
|
125 assumes empty: "{} \<in> sets M" |
|
126 assumes Diff: "\<And> A. A \<in> sets M \<Longrightarrow> space M - A \<in> sets M" |
|
127 assumes 2: "\<And> A. disjoint_family A \<Longrightarrow> range A \<subseteq> sets M |
|
128 \<Longrightarrow> (\<Union>i::nat. A i) \<in> sets M" |
|
129 shows "dynkin_system M" |
|
130 proof - |
|
131 from Diff[OF empty] have "space M \<in> sets M" by auto |
|
132 from 1 this Diff 2 show ?thesis |
|
133 by (intro dynkin_systemI) auto |
|
134 qed |
|
135 |
122 |
136 lemma (in prob_space) indep_sets_dynkin: |
123 lemma (in prob_space) indep_sets_dynkin: |
137 assumes indep: "indep_sets F I" |
124 assumes indep: "indep_sets F I" |
138 shows "indep_sets (\<lambda>i. sets (dynkin \<lparr> space = space M, sets = F i \<rparr>)) I" |
125 shows "indep_sets (\<lambda>i. sets (dynkin \<lparr> space = space M, sets = F i \<rparr>)) I" |
139 (is "indep_sets ?F I") |
126 (is "indep_sets ?F I") |
772 from `?R`[THEN bspec, OF B(2)] B(1) `I \<noteq> {}` |
759 from `?R`[THEN bspec, OF B(2)] B(1) `I \<noteq> {}` |
773 show "prob (INTER I A) = (\<Prod>j\<in>I. prob (A j))" |
760 show "prob (INTER I A) = (\<Prod>j\<in>I. prob (A j))" |
774 by simp |
761 by simp |
775 qed |
762 qed |
776 then show ?thesis using `I \<noteq> {}` |
763 then show ?thesis using `I \<noteq> {}` |
777 by (simp add: rv distribution_def indep_rv_def) |
764 by (simp add: rv indep_rv_def) |
|
765 qed |
|
766 |
|
767 lemma (in prob_space) indep_rv_compose: |
|
768 assumes "indep_rv M' X I" |
|
769 assumes rv: |
|
770 "\<And>i. i \<in> I \<Longrightarrow> sigma_algebra (N i)" |
|
771 "\<And>i. i \<in> I \<Longrightarrow> Y i \<in> measurable (M' i) (N i)" |
|
772 shows "indep_rv N (\<lambda>i. Y i \<circ> X i) I" |
|
773 unfolding indep_rv_def |
|
774 proof |
|
775 from rv `indep_rv M' X I` |
|
776 show "\<forall>i\<in>I. random_variable (N i) (Y i \<circ> X i)" |
|
777 by (auto intro!: measurable_comp simp: indep_rv_def) |
|
778 |
|
779 have "indep_sets (\<lambda>i. sigma_sets (space M) {X i -` A \<inter> space M |A. A \<in> sets (M' i)}) I" |
|
780 using `indep_rv M' X I` by (simp add: indep_rv_def) |
|
781 then show "indep_sets (\<lambda>i. sigma_sets (space M) {(Y i \<circ> X i) -` A \<inter> space M |A. A \<in> sets (N i)}) I" |
|
782 proof (rule indep_sets_mono_sets) |
|
783 fix i assume "i \<in> I" |
|
784 with `indep_rv M' X I` have X: "X i \<in> space M \<rightarrow> space (M' i)" |
|
785 unfolding indep_rv_def measurable_def by auto |
|
786 { fix A assume "A \<in> sets (N i)" |
|
787 then have "\<exists>B. (Y i \<circ> X i) -` A \<inter> space M = X i -` B \<inter> space M \<and> B \<in> sets (M' i)" |
|
788 by (intro exI[of _ "Y i -` A \<inter> space (M' i)"]) |
|
789 (auto simp: vimage_compose intro!: measurable_sets rv `i \<in> I` funcset_mem[OF X]) } |
|
790 then show "sigma_sets (space M) {(Y i \<circ> X i) -` A \<inter> space M |A. A \<in> sets (N i)} \<subseteq> |
|
791 sigma_sets (space M) {X i -` A \<inter> space M |A. A \<in> sets (M' i)}" |
|
792 by (intro sigma_sets_subseteq) (auto simp: vimage_compose) |
|
793 qed |
|
794 qed |
|
795 |
|
796 lemma (in prob_space) indep_rvD: |
|
797 assumes X: "indep_rv M' X I" |
|
798 assumes I: "I \<noteq> {}" "finite I" "\<And>i. i \<in> I \<Longrightarrow> A i \<in> sets (M' i)" |
|
799 shows "prob (\<Inter>i\<in>I. X i -` A i \<inter> space M) = (\<Prod>i\<in>I. prob (X i -` A i \<inter> space M))" |
|
800 proof (rule indep_setsD) |
|
801 show "indep_sets (\<lambda>i. sigma_sets (space M) {X i -` A \<inter> space M |A. A \<in> sets (M' i)}) I" |
|
802 using X by (auto simp: indep_rv_def) |
|
803 show "I \<subseteq> I" "I \<noteq> {}" "finite I" using I by auto |
|
804 show "\<forall>i\<in>I. X i -` A i \<inter> space M \<in> sigma_sets (space M) {X i -` A \<inter> space M |A. A \<in> sets (M' i)}" |
|
805 using I by (auto intro: sigma_sets.Basic) |
|
806 qed |
|
807 |
|
808 lemma (in prob_space) indep_distribution_eq_measure: |
|
809 assumes I: "I \<noteq> {}" "finite I" |
|
810 assumes rv: "\<And>i. random_variable (M' i) (X i)" |
|
811 shows "indep_rv M' X I \<longleftrightarrow> |
|
812 (\<forall>A\<in>sets (\<Pi>\<^isub>M i\<in>I. (M' i \<lparr> measure := extreal\<circ>distribution (X i) \<rparr>)). |
|
813 distribution (\<lambda>x. \<lambda>i\<in>I. X i x) A = |
|
814 finite_measure.\<mu>' (\<Pi>\<^isub>M i\<in>I. (M' i \<lparr> measure := extreal\<circ>distribution (X i) \<rparr>)) A)" |
|
815 (is "_ \<longleftrightarrow> (\<forall>X\<in>_. distribution ?D X = finite_measure.\<mu>' (Pi\<^isub>M I ?M) X)") |
|
816 proof - |
|
817 interpret M': prob_space "?M i" for i |
|
818 using rv by (rule distribution_prob_space) |
|
819 interpret P: finite_product_prob_space ?M I |
|
820 proof qed fact |
|
821 |
|
822 let ?D' = "(Pi\<^isub>M I ?M) \<lparr> measure := extreal \<circ> distribution ?D \<rparr>" |
|
823 have "random_variable P.P ?D" |
|
824 using `finite I` rv by (intro random_variable_restrict) auto |
|
825 then interpret D: prob_space ?D' |
|
826 by (rule distribution_prob_space) |
|
827 |
|
828 show ?thesis |
|
829 proof (intro iffI ballI) |
|
830 assume "indep_rv M' X I" |
|
831 fix A assume "A \<in> sets P.P" |
|
832 moreover |
|
833 have "D.prob A = P.prob A" |
|
834 proof (rule prob_space_unique_Int_stable) |
|
835 show "prob_space ?D'" by default |
|
836 show "prob_space (Pi\<^isub>M I ?M)" by default |
|
837 show "Int_stable P.G" using M'.Int |
|
838 by (intro Int_stable_product_algebra_generator) (simp add: Int_stable_def) |
|
839 show "space P.G \<in> sets P.G" |
|
840 using M'.top by (simp add: product_algebra_generator_def) |
|
841 show "space ?D' = space P.G" "sets ?D' = sets (sigma P.G)" |
|
842 by (simp_all add: product_algebra_def product_algebra_generator_def sets_sigma) |
|
843 show "space P.P = space P.G" "sets P.P = sets (sigma P.G)" |
|
844 by (simp_all add: product_algebra_def) |
|
845 show "A \<in> sets (sigma P.G)" |
|
846 using `A \<in> sets P.P` by (simp add: product_algebra_def) |
|
847 |
|
848 fix E assume E: "E \<in> sets P.G" |
|
849 then have "E \<in> sets P.P" |
|
850 by (simp add: sets_sigma sigma_sets.Basic product_algebra_def) |
|
851 then have "D.prob E = distribution ?D E" |
|
852 unfolding D.\<mu>'_def by simp |
|
853 also |
|
854 from E obtain F where "E = Pi\<^isub>E I F" and F: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> sets (M' i)" |
|
855 by (auto simp: product_algebra_generator_def) |
|
856 with `I \<noteq> {}` have "distribution ?D E = prob (\<Inter>i\<in>I. X i -` F i \<inter> space M)" |
|
857 using `I \<noteq> {}` by (auto intro!: arg_cong[where f=prob] simp: Pi_iff distribution_def) |
|
858 also have "\<dots> = (\<Prod>i\<in>I. prob (X i -` F i \<inter> space M))" |
|
859 using `indep_rv M' X I` I F by (rule indep_rvD) |
|
860 also have "\<dots> = P.prob E" |
|
861 using F by (simp add: `E = Pi\<^isub>E I F` P.prob_times M'.\<mu>'_def distribution_def) |
|
862 finally show "D.prob E = P.prob E" . |
|
863 qed |
|
864 ultimately show "distribution ?D A = P.prob A" |
|
865 by (simp add: D.\<mu>'_def) |
|
866 next |
|
867 assume eq: "\<forall>A\<in>sets P.P. distribution ?D A = P.prob A" |
|
868 have [simp]: "\<And>i. sigma (M' i) = M' i" |
|
869 using rv by (intro sigma_algebra.sigma_eq) simp |
|
870 have "indep_rv (\<lambda>i. sigma (M' i)) X I" |
|
871 proof (subst indep_rv_finite[OF I]) |
|
872 fix i assume [simp]: "i \<in> I" |
|
873 show "random_variable (sigma (M' i)) (X i)" |
|
874 using rv[of i] by simp |
|
875 show "Int_stable (M' i)" "space (M' i) \<in> sets (M' i)" |
|
876 using M'.Int[of _ i] M'.top by (auto simp: Int_stable_def) |
|
877 next |
|
878 show "\<forall>A\<in>\<Pi> i\<in>I. sets (M' i). prob (\<Inter>j\<in>I. X j -` A j \<inter> space M) = (\<Prod>j\<in>I. prob (X j -` A j \<inter> space M))" |
|
879 proof |
|
880 fix A assume A: "A \<in> (\<Pi> i\<in>I. sets (M' i))" |
|
881 then have A_in_P: "(Pi\<^isub>E I A) \<in> sets P.P" |
|
882 by (auto intro!: product_algebraI) |
|
883 have "prob (\<Inter>j\<in>I. X j -` A j \<inter> space M) = distribution ?D (Pi\<^isub>E I A)" |
|
884 using `I \<noteq> {}`by (auto intro!: arg_cong[where f=prob] simp: Pi_iff distribution_def) |
|
885 also have "\<dots> = P.prob (Pi\<^isub>E I A)" using A_in_P eq by simp |
|
886 also have "\<dots> = (\<Prod>i\<in>I. M'.prob i (A i))" |
|
887 using A by (intro P.prob_times) auto |
|
888 also have "\<dots> = (\<Prod>i\<in>I. prob (X i -` A i \<inter> space M))" |
|
889 using A by (auto intro!: setprod_cong simp: M'.\<mu>'_def Pi_iff distribution_def) |
|
890 finally show "prob (\<Inter>j\<in>I. X j -` A j \<inter> space M) = (\<Prod>j\<in>I. prob (X j -` A j \<inter> space M))" . |
|
891 qed |
|
892 qed |
|
893 then show "indep_rv M' X I" |
|
894 by simp |
|
895 qed |
778 qed |
896 qed |
779 |
897 |
780 end |
898 end |