540 next |
540 next |
541 assume "K j \<noteq> {}" with J have "J \<noteq> {}" |
541 assume "K j \<noteq> {}" with J have "J \<noteq> {}" |
542 by auto |
542 by auto |
543 { interpret sigma_algebra "space M" "?UN j" |
543 { interpret sigma_algebra "space M" "?UN j" |
544 by (rule sigma_algebra_sigma_sets) auto |
544 by (rule sigma_algebra_sigma_sets) auto |
545 have "\<And>A. (\<And>i. i \<in> J \<Longrightarrow> A i \<in> ?UN j) \<Longrightarrow> INTER J A \<in> ?UN j" |
545 have "\<And>A. (\<And>i. i \<in> J \<Longrightarrow> A i \<in> ?UN j) \<Longrightarrow> \<Inter>(A ` J) \<in> ?UN j" |
546 using \<open>finite J\<close> \<open>J \<noteq> {}\<close> by (rule finite_INT) blast } |
546 using \<open>finite J\<close> \<open>J \<noteq> {}\<close> by (rule finite_INT) blast } |
547 note INT = this |
547 note INT = this |
548 |
548 |
549 from \<open>J \<noteq> {}\<close> J K E[rule_format, THEN sets.sets_into_space] j |
549 from \<open>J \<noteq> {}\<close> J K E[rule_format, THEN sets.sets_into_space] j |
550 have "(\<lambda>\<omega>. \<lambda>i\<in>K j. X i \<omega>) -` prod_emb (K j) M' J (Pi\<^sub>E J E) \<inter> space M |
550 have "(\<lambda>\<omega>. \<lambda>i\<in>K j. X i \<omega>) -` prod_emb (K j) M' J (Pi\<^sub>E J E) \<inter> space M |
618 shows "tail_events A \<subseteq> events" |
618 shows "tail_events A \<subseteq> events" |
619 proof |
619 proof |
620 fix X assume X: "X \<in> tail_events A" |
620 fix X assume X: "X \<in> tail_events A" |
621 let ?A = "(\<Inter>n. sigma_sets (space M) (UNION {n..} A))" |
621 let ?A = "(\<Inter>n. sigma_sets (space M) (UNION {n..} A))" |
622 from X have "\<And>n::nat. X \<in> sigma_sets (space M) (UNION {n..} A)" by (auto simp: tail_events_def) |
622 from X have "\<And>n::nat. X \<in> sigma_sets (space M) (UNION {n..} A)" by (auto simp: tail_events_def) |
623 from this[of 0] have "X \<in> sigma_sets (space M) (UNION UNIV A)" by simp |
623 from this[of 0] have "X \<in> sigma_sets (space M) (\<Union>(A ` UNIV))" by simp |
624 then show "X \<in> events" |
624 then show "X \<in> events" |
625 by induct (insert A, auto) |
625 by induct (insert A, auto) |
626 qed |
626 qed |
627 |
627 |
628 lemma (in prob_space) sigma_algebra_tail_events: |
628 lemma (in prob_space) sigma_algebra_tail_events: |
632 proof (simp add: sigma_algebra_iff2, safe) |
632 proof (simp add: sigma_algebra_iff2, safe) |
633 let ?A = "(\<Inter>n. sigma_sets (space M) (UNION {n..} A))" |
633 let ?A = "(\<Inter>n. sigma_sets (space M) (UNION {n..} A))" |
634 interpret A: sigma_algebra "space M" "A i" for i by fact |
634 interpret A: sigma_algebra "space M" "A i" for i by fact |
635 { fix X x assume "X \<in> ?A" "x \<in> X" |
635 { fix X x assume "X \<in> ?A" "x \<in> X" |
636 then have "\<And>n. X \<in> sigma_sets (space M) (UNION {n..} A)" by auto |
636 then have "\<And>n. X \<in> sigma_sets (space M) (UNION {n..} A)" by auto |
637 from this[of 0] have "X \<in> sigma_sets (space M) (UNION UNIV A)" by simp |
637 from this[of 0] have "X \<in> sigma_sets (space M) (\<Union>(A ` UNIV))" by simp |
638 then have "X \<subseteq> space M" |
638 then have "X \<subseteq> space M" |
639 by induct (insert A.sets_into_space, auto) |
639 by induct (insert A.sets_into_space, auto) |
640 with \<open>x \<in> X\<close> show "x \<in> space M" by auto } |
640 with \<open>x \<in> X\<close> show "x \<in> space M" by auto } |
641 { fix F :: "nat \<Rightarrow> 'a set" and n assume "range F \<subseteq> ?A" |
641 { fix F :: "nat \<Rightarrow> 'a set" and n assume "range F \<subseteq> ?A" |
642 then show "(UNION UNIV F) \<in> sigma_sets (space M) (UNION {n..} A)" |
642 then show "(\<Union>(F ` UNIV)) \<in> sigma_sets (space M) (UNION {n..} A)" |
643 by (intro sigma_sets.Union) auto } |
643 by (intro sigma_sets.Union) auto } |
644 qed (auto intro!: sigma_sets.Compl sigma_sets.Empty) |
644 qed (auto intro!: sigma_sets.Compl sigma_sets.Empty) |
645 |
645 |
646 lemma (in prob_space) kolmogorov_0_1_law: |
646 lemma (in prob_space) kolmogorov_0_1_law: |
647 fixes A :: "nat \<Rightarrow> 'a set set" |
647 fixes A :: "nat \<Rightarrow> 'a set set" |
904 have "{X i -` A \<inter> space M |A. A \<in> E i} \<subseteq> events" |
904 have "{X i -` A \<inter> space M |A. A \<in> E i} \<subseteq> events" |
905 "space M \<in> {X i -` A \<inter> space M |A. A \<in> E i}" |
905 "space M \<in> {X i -` A \<inter> space M |A. A \<in> E i}" |
906 by (auto intro!: exI[of _ "space (M' i)"]) } |
906 by (auto intro!: exI[of _ "space (M' i)"]) } |
907 note indep_sets_finite_X = indep_sets_finite[OF I this] |
907 note indep_sets_finite_X = indep_sets_finite[OF I this] |
908 |
908 |
909 have "(\<forall>A\<in>\<Pi> i\<in>I. {X i -` A \<inter> space M |A. A \<in> E i}. prob (INTER I A) = (\<Prod>j\<in>I. prob (A j))) = |
909 have "(\<forall>A\<in>\<Pi> i\<in>I. {X i -` A \<inter> space M |A. A \<in> E i}. prob (\<Inter>(A ` I)) = (\<Prod>j\<in>I. prob (A j))) = |
910 (\<forall>A\<in>\<Pi> i\<in>I. E i. prob ((\<Inter>j\<in>I. X j -` A j) \<inter> space M) = (\<Prod>x\<in>I. prob (X x -` A x \<inter> space M)))" |
910 (\<forall>A\<in>\<Pi> i\<in>I. E i. prob ((\<Inter>j\<in>I. X j -` A j) \<inter> space M) = (\<Prod>x\<in>I. prob (X x -` A x \<inter> space M)))" |
911 (is "?L = ?R") |
911 (is "?L = ?R") |
912 proof safe |
912 proof safe |
913 fix A assume ?L and A: "A \<in> (\<Pi> i\<in>I. E i)" |
913 fix A assume ?L and A: "A \<in> (\<Pi> i\<in>I. E i)" |
914 from \<open>?L\<close>[THEN bspec, of "\<lambda>i. X i -` A i \<inter> space M"] A \<open>I \<noteq> {}\<close> |
914 from \<open>?L\<close>[THEN bspec, of "\<lambda>i. X i -` A i \<inter> space M"] A \<open>I \<noteq> {}\<close> |
918 fix A assume ?R and A: "A \<in> (\<Pi> i\<in>I. {X i -` A \<inter> space M |A. A \<in> E i})" |
918 fix A assume ?R and A: "A \<in> (\<Pi> i\<in>I. {X i -` A \<inter> space M |A. A \<in> E i})" |
919 from A have "\<forall>i\<in>I. \<exists>B. A i = X i -` B \<inter> space M \<and> B \<in> E i" by auto |
919 from A have "\<forall>i\<in>I. \<exists>B. A i = X i -` B \<inter> space M \<and> B \<in> E i" by auto |
920 from bchoice[OF this] obtain B where B: "\<forall>i\<in>I. A i = X i -` B i \<inter> space M" |
920 from bchoice[OF this] obtain B where B: "\<forall>i\<in>I. A i = X i -` B i \<inter> space M" |
921 "B \<in> (\<Pi> i\<in>I. E i)" by auto |
921 "B \<in> (\<Pi> i\<in>I. E i)" by auto |
922 from \<open>?R\<close>[THEN bspec, OF B(2)] B(1) \<open>I \<noteq> {}\<close> |
922 from \<open>?R\<close>[THEN bspec, OF B(2)] B(1) \<open>I \<noteq> {}\<close> |
923 show "prob (INTER I A) = (\<Prod>j\<in>I. prob (A j))" |
923 show "prob (\<Inter>(A ` I)) = (\<Prod>j\<in>I. prob (A j))" |
924 by simp |
924 by simp |
925 qed |
925 qed |
926 then show ?thesis using \<open>I \<noteq> {}\<close> |
926 then show ?thesis using \<open>I \<noteq> {}\<close> |
927 by (simp add: rv indep_vars_def indep_sets_X sigma_sets_X indep_sets_finite_X cong: indep_sets_cong) |
927 by (simp add: rv indep_vars_def indep_sets_X sigma_sets_X indep_sets_finite_X cong: indep_sets_cong) |
928 qed |
928 qed |