609 lemma (in prob_space) indep_vars_cong: |
609 lemma (in prob_space) indep_vars_cong: |
610 "I = J \<Longrightarrow> (\<And>i. i \<in> I \<Longrightarrow> X i = Y i) \<Longrightarrow> (\<And>i. i \<in> I \<Longrightarrow> M' i = N' i) \<Longrightarrow> indep_vars M' X I \<longleftrightarrow> indep_vars N' Y J" |
610 "I = J \<Longrightarrow> (\<And>i. i \<in> I \<Longrightarrow> X i = Y i) \<Longrightarrow> (\<And>i. i \<in> I \<Longrightarrow> M' i = N' i) \<Longrightarrow> indep_vars M' X I \<longleftrightarrow> indep_vars N' Y J" |
611 unfolding indep_vars_def2 by (intro conj_cong indep_sets_cong) auto |
611 unfolding indep_vars_def2 by (intro conj_cong indep_sets_cong) auto |
612 |
612 |
613 definition (in prob_space) tail_events where |
613 definition (in prob_space) tail_events where |
614 "tail_events A = (\<Inter>n. sigma_sets (space M) (UNION {n..} A))" |
614 "tail_events A = (\<Inter>n. sigma_sets (space M) (\<Union> (A ` {n..})))" |
615 |
615 |
616 lemma (in prob_space) tail_events_sets: |
616 lemma (in prob_space) tail_events_sets: |
617 assumes A: "\<And>i::nat. A i \<subseteq> events" |
617 assumes A: "\<And>i::nat. A i \<subseteq> events" |
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> (A ` {n..})))" |
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> (A ` {n..}))" by (auto simp: tail_events_def) |
623 from this[of 0] have "X \<in> sigma_sets (space M) (\<Union>(A ` UNIV))" 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: |
629 assumes "\<And>i::nat. sigma_algebra (space M) (A i)" |
629 assumes "\<And>i::nat. sigma_algebra (space M) (A i)" |
630 shows "sigma_algebra (space M) (tail_events A)" |
630 shows "sigma_algebra (space M) (tail_events A)" |
631 unfolding tail_events_def |
631 unfolding tail_events_def |
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> (A ` {n..})))" |
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> (A ` {n..}))" by auto |
637 from this[of 0] have "X \<in> sigma_sets (space M) (\<Union>(A ` UNIV))" 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>(F ` UNIV)) \<in> sigma_sets (space M) (UNION {n..} A)" |
642 then show "(\<Union>(F ` UNIV)) \<in> sigma_sets (space M) (\<Union> (A ` {n..}))" |
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" |