# HG changeset patch # User nipkow # Date 1546259060 -3600 # Node ID b07ccc6fb13f862819c10bca56cd0471c1eecd6e # Parent 4d4aedf9e57fd5eafc07bc75a3dd08fea3008829 dynkin -> Dynkin diff -r 4d4aedf9e57f -r b07ccc6fb13f src/HOL/Analysis/Sigma_Algebra.thy --- a/src/HOL/Analysis/Sigma_Algebra.thy Mon Dec 31 13:05:15 2018 +0100 +++ b/src/HOL/Analysis/Sigma_Algebra.thy Mon Dec 31 13:24:20 2018 +0100 @@ -1181,16 +1181,16 @@ subsubsection \Dynkin systems\ -locale%important dynkin_system = subset_class + +locale%important Dynkin_system = subset_class + assumes space: "\ \ M" and compl[intro!]: "\A. A \ M \ \ - A \ M" and UN[intro!]: "\A. disjoint_family A \ range A \ M \ (\i::nat. A i) \ M" -lemma (in dynkin_system) empty[intro, simp]: "{} \ M" +lemma (in Dynkin_system) empty[intro, simp]: "{} \ M" using space compl[of "\"] by simp -lemma (in dynkin_system) diff: +lemma (in Dynkin_system) diff: assumes sets: "D \ M" "E \ M" and "D \ E" shows "E - D \ M" proof - @@ -1209,36 +1209,36 @@ finally show ?thesis . qed -lemma dynkin_systemI: +lemma Dynkin_systemI: assumes "\ A. A \ M \ A \ \" "\ \ M" assumes "\ A. A \ M \ \ - A \ M" assumes "\ A. disjoint_family A \ range A \ M \ (\i::nat. A i) \ M" - shows "dynkin_system \ M" - using assms by (auto simp: dynkin_system_def dynkin_system_axioms_def subset_class_def) + shows "Dynkin_system \ M" + using assms by (auto simp: Dynkin_system_def Dynkin_system_axioms_def subset_class_def) -lemma dynkin_systemI': +lemma Dynkin_systemI': assumes 1: "\ A. A \ M \ A \ \" assumes empty: "{} \ M" assumes Diff: "\ A. A \ M \ \ - A \ M" assumes 2: "\ A. disjoint_family A \ range A \ M \ (\i::nat. A i) \ M" - shows "dynkin_system \ M" + shows "Dynkin_system \ M" proof - from Diff[OF empty] have "\ \ M" by auto from 1 this Diff 2 show ?thesis - by (intro dynkin_systemI) auto + by (intro Dynkin_systemI) auto qed -lemma dynkin_system_trivial: - shows "dynkin_system A (Pow A)" - by (rule dynkin_systemI) auto +lemma Dynkin_system_trivial: + shows "Dynkin_system A (Pow A)" + by (rule Dynkin_systemI) auto -lemma sigma_algebra_imp_dynkin_system: - assumes "sigma_algebra \ M" shows "dynkin_system \ M" +lemma sigma_algebra_imp_Dynkin_system: + assumes "sigma_algebra \ M" shows "Dynkin_system \ M" proof - interpret sigma_algebra \ M by fact - show ?thesis using sets_into_space by (fastforce intro!: dynkin_systemI) + show ?thesis using sets_into_space by (fastforce intro!: Dynkin_systemI) qed subsubsection "Intersection sets systems" @@ -1261,7 +1261,7 @@ "Int_stable M \ a \ M \ b \ M \ a \ b \ M" unfolding Int_stable_def by auto -lemma (in dynkin_system) sigma_algebra_eq_Int_stable: +lemma (in Dynkin_system) sigma_algebra_eq_Int_stable: "sigma_algebra \ M \ Int_stable M" proof assume "sigma_algebra \ M" then show "Int_stable M" @@ -1284,48 +1284,48 @@ subsubsection "Smallest Dynkin systems" -definition%important dynkin :: "'a set \ 'a set set \ 'a set set" where - "dynkin \ M = (\{D. dynkin_system \ D \ M \ D})" +definition%important Dynkin :: "'a set \ 'a set set \ 'a set set" where + "Dynkin \ M = (\{D. Dynkin_system \ D \ M \ D})" -lemma dynkin_system_dynkin: +lemma Dynkin_system_Dynkin: assumes "M \ Pow (\)" - shows "dynkin_system \ (dynkin \ M)" -proof (rule dynkin_systemI) - fix A assume "A \ dynkin \ M" + shows "Dynkin_system \ (Dynkin \ M)" +proof (rule Dynkin_systemI) + fix A assume "A \ Dynkin \ M" moreover - { fix D assume "A \ D" and d: "dynkin_system \ D" - then have "A \ \" by (auto simp: dynkin_system_def subset_class_def) } - moreover have "{D. dynkin_system \ D \ M \ D} \ {}" - using assms dynkin_system_trivial by fastforce + { fix D assume "A \ D" and d: "Dynkin_system \ D" + then have "A \ \" by (auto simp: Dynkin_system_def subset_class_def) } + moreover have "{D. Dynkin_system \ D \ M \ D} \ {}" + using assms Dynkin_system_trivial by fastforce ultimately show "A \ \" - unfolding dynkin_def using assms + unfolding Dynkin_def using assms by auto next - show "\ \ dynkin \ M" - unfolding dynkin_def using dynkin_system.space by fastforce + show "\ \ Dynkin \ M" + unfolding Dynkin_def using Dynkin_system.space by fastforce next - fix A assume "A \ dynkin \ M" - then show "\ - A \ dynkin \ M" - unfolding dynkin_def using dynkin_system.compl by force + fix A assume "A \ Dynkin \ M" + then show "\ - A \ Dynkin \ M" + unfolding Dynkin_def using Dynkin_system.compl by force next fix A :: "nat \ 'a set" - assume A: "disjoint_family A" "range A \ dynkin \ M" - show "(\i. A i) \ dynkin \ M" unfolding dynkin_def + assume A: "disjoint_family A" "range A \ Dynkin \ M" + show "(\i. A i) \ Dynkin \ M" unfolding Dynkin_def proof (simp, safe) - fix D assume "dynkin_system \ D" "M \ D" + fix D assume "Dynkin_system \ D" "M \ D" with A have "(\i. A i) \ D" - by (intro dynkin_system.UN) (auto simp: dynkin_def) + by (intro Dynkin_system.UN) (auto simp: Dynkin_def) then show "(\i. A i) \ D" by auto qed qed -lemma dynkin_Basic[intro]: "A \ M \ A \ dynkin \ M" - unfolding dynkin_def by auto +lemma Dynkin_Basic[intro]: "A \ M \ A \ Dynkin \ M" + unfolding Dynkin_def by auto -lemma (in dynkin_system) restricted_dynkin_system: +lemma (in Dynkin_system) restricted_Dynkin_system: assumes "D \ M" - shows "dynkin_system \ {Q. Q \ \ \ Q \ D \ M}" -proof (rule dynkin_systemI, simp_all) + shows "Dynkin_system \ {Q. Q \ \ \ Q \ D \ M}" +proof (rule Dynkin_systemI, simp_all) have "\ \ D = D" using \D \ M\ sets_into_space by auto then show "\ \ D \ M" @@ -1346,87 +1346,87 @@ by (auto simp del: UN_simps) qed -lemma (in dynkin_system) dynkin_subset: +lemma (in Dynkin_system) Dynkin_subset: assumes "N \ M" - shows "dynkin \ N \ M" + shows "Dynkin \ N \ M" proof - - have "dynkin_system \ M" .. - then have "dynkin_system \ M" - using assms unfolding dynkin_system_def dynkin_system_axioms_def subset_class_def by simp - with \N \ M\ show ?thesis by (auto simp add: dynkin_def) + have "Dynkin_system \ M" .. + then have "Dynkin_system \ M" + using assms unfolding Dynkin_system_def Dynkin_system_axioms_def subset_class_def by simp + with \N \ M\ show ?thesis by (auto simp add: Dynkin_def) qed -lemma sigma_eq_dynkin: +lemma sigma_eq_Dynkin: assumes sets: "M \ Pow \" assumes "Int_stable M" - shows "sigma_sets \ M = dynkin \ M" + shows "sigma_sets \ M = Dynkin \ M" proof - - have "dynkin \ M \ sigma_sets (\) (M)" - using sigma_algebra_imp_dynkin_system - unfolding dynkin_def sigma_sets_least_sigma_algebra[OF sets] by auto + have "Dynkin \ M \ sigma_sets (\) (M)" + using sigma_algebra_imp_Dynkin_system + unfolding Dynkin_def sigma_sets_least_sigma_algebra[OF sets] by auto moreover - interpret dynkin_system \ "dynkin \ M" - using dynkin_system_dynkin[OF sets] . - have "sigma_algebra \ (dynkin \ M)" + interpret Dynkin_system \ "Dynkin \ M" + using Dynkin_system_Dynkin[OF sets] . + have "sigma_algebra \ (Dynkin \ M)" unfolding sigma_algebra_eq_Int_stable Int_stable_def proof (intro ballI) - fix A B assume "A \ dynkin \ M" "B \ dynkin \ M" - let ?D = "\E. {Q. Q \ \ \ Q \ E \ dynkin \ M}" + fix A B assume "A \ Dynkin \ M" "B \ Dynkin \ M" + let ?D = "\E. {Q. Q \ \ \ Q \ E \ Dynkin \ M}" have "M \ ?D B" proof fix E assume "E \ M" - then have "M \ ?D E" "E \ dynkin \ M" + then have "M \ ?D E" "E \ Dynkin \ M" using sets_into_space \Int_stable M\ by (auto simp: Int_stable_def) - then have "dynkin \ M \ ?D E" - using restricted_dynkin_system \E \ dynkin \ M\ - by (intro dynkin_system.dynkin_subset) simp_all + then have "Dynkin \ M \ ?D E" + using restricted_Dynkin_system \E \ Dynkin \ M\ + by (intro Dynkin_system.Dynkin_subset) simp_all then have "B \ ?D E" - using \B \ dynkin \ M\ by auto - then have "E \ B \ dynkin \ M" + using \B \ Dynkin \ M\ by auto + then have "E \ B \ Dynkin \ M" by (subst Int_commute) simp then show "E \ ?D B" using sets \E \ M\ by auto qed - then have "dynkin \ M \ ?D B" - using restricted_dynkin_system \B \ dynkin \ M\ - by (intro dynkin_system.dynkin_subset) simp_all - then show "A \ B \ dynkin \ M" - using \A \ dynkin \ M\ sets_into_space by auto + then have "Dynkin \ M \ ?D B" + using restricted_Dynkin_system \B \ Dynkin \ M\ + by (intro Dynkin_system.Dynkin_subset) simp_all + then show "A \ B \ Dynkin \ M" + using \A \ Dynkin \ M\ sets_into_space by auto qed from sigma_algebra.sigma_sets_subset[OF this, of "M"] - have "sigma_sets (\) (M) \ dynkin \ M" by auto - ultimately have "sigma_sets (\) (M) = dynkin \ M" by auto + have "sigma_sets (\) (M) \ Dynkin \ M" by auto + ultimately have "sigma_sets (\) (M) = Dynkin \ M" by auto then show ?thesis - by (auto simp: dynkin_def) + by (auto simp: Dynkin_def) qed -lemma (in dynkin_system) dynkin_idem: - "dynkin \ M = M" +lemma (in Dynkin_system) Dynkin_idem: + "Dynkin \ M = M" proof - - have "dynkin \ M = M" + have "Dynkin \ M = M" proof - show "M \ dynkin \ M" - using dynkin_Basic by auto - show "dynkin \ M \ M" - by (intro dynkin_subset) auto + show "M \ Dynkin \ M" + using Dynkin_Basic by auto + show "Dynkin \ M \ M" + by (intro Dynkin_subset) auto qed then show ?thesis - by (auto simp: dynkin_def) + by (auto simp: Dynkin_def) qed -lemma (in dynkin_system) dynkin_lemma: +lemma (in Dynkin_system) Dynkin_lemma: assumes "Int_stable E" and E: "E \ M" "M \ sigma_sets \ E" shows "sigma_sets \ E = M" proof - have "E \ Pow \" using E sets_into_space by force - then have *: "sigma_sets \ E = dynkin \ E" - using \Int_stable E\ by (rule sigma_eq_dynkin) - then have "dynkin \ E = M" - using assms dynkin_subset[OF E(1)] by simp + then have *: "sigma_sets \ E = Dynkin \ E" + using \Int_stable E\ by (rule sigma_eq_Dynkin) + then have "Dynkin \ E = M" + using assms Dynkin_subset[OF E(1)] by simp with * show ?thesis - using assms by (auto simp: dynkin_def) + using assms by (auto simp: Dynkin_def) qed subsubsection \Induction rule for intersection-stable generators\ @@ -1448,10 +1448,10 @@ interpret sigma_algebra \ "sigma_sets \ G" using closed by (rule sigma_algebra_sigma_sets) from compl[OF _ empty] closed have space: "P \" by simp - interpret dynkin_system \ ?D + interpret Dynkin_system \ ?D by standard (auto dest: sets_into_space intro!: space compl union) have "sigma_sets \ G = ?D" - by (rule dynkin_lemma) (auto simp: basic \Int_stable G\) + by (rule Dynkin_lemma) (auto simp: basic \Int_stable G\) with A show ?thesis by auto qed diff -r 4d4aedf9e57f -r b07ccc6fb13f src/HOL/Probability/Independent_Family.thy --- a/src/HOL/Probability/Independent_Family.thy Mon Dec 31 13:05:15 2018 +0100 +++ b/src/HOL/Probability/Independent_Family.thy Mon Dec 31 13:24:20 2018 +0100 @@ -118,9 +118,9 @@ and indep_setD_ev2: "B \ events" using indep unfolding indep_set_def indep_sets_def UNIV_bool by auto -lemma (in prob_space) indep_sets_dynkin: +lemma (in prob_space) indep_sets_Dynkin: assumes indep: "indep_sets F I" - shows "indep_sets (\i. dynkin (space M) (F i)) I" + shows "indep_sets (\i. Dynkin (space M) (F i)) I" (is "indep_sets ?F I") proof (subst indep_sets_finite_index_sets, intro allI impI ballI) fix J assume "finite J" "J \ I" "J \ {}" @@ -178,8 +178,8 @@ qed qed } note indep_sets_insert = this - have "dynkin_system (space M) ?D" - proof (rule dynkin_systemI', simp_all cong del: indep_sets_cong, safe) + have "Dynkin_system (space M) ?D" + proof (rule Dynkin_systemI', simp_all cong del: indep_sets_cong, safe) show "indep_sets (G(j := {{}})) K" by (rule indep_sets_insert) auto next @@ -249,8 +249,8 @@ by (auto dest!: sums_unique) qed (insert F, auto) qed (insert sets.sets_into_space, auto) - then have mono: "dynkin (space M) (G j) \ {E \ events. indep_sets (G(j := {E})) K}" - proof (rule dynkin_system.dynkin_subset, safe) + then have mono: "Dynkin (space M) (G j) \ {E \ events. indep_sets (G(j := {E})) K}" + proof (rule Dynkin_system.Dynkin_subset, safe) fix X assume "X \ G j" then show "X \ events" using G \j \ K\ by auto from \indep_sets G K\ @@ -276,7 +276,7 @@ by (intro indep_setsD[OF G(1)]) auto qed qed - then have "indep_sets (G(j := dynkin (space M) (G j))) K" + then have "indep_sets (G(j := Dynkin (space M) (G j))) K" by (rule indep_sets_mono_sets) (insert mono, auto) then show ?case by (rule indep_sets_mono_sets) (insert \j \ K\ \j \ J\, auto simp: G_def) @@ -291,9 +291,9 @@ assumes stable: "\i. i \ I \ Int_stable (F i)" shows "indep_sets (\i. sigma_sets (space M) (F i)) I" proof - - from indep_sets_dynkin[OF indep] + from indep_sets_Dynkin[OF indep] show ?thesis - proof (rule indep_sets_mono_sets, subst sigma_eq_dynkin, simp_all add: stable) + proof (rule indep_sets_mono_sets, subst sigma_eq_Dynkin, simp_all add: stable) fix i assume "i \ I" with indep have "F i \ events" by (auto simp: indep_sets_def) with sets.sets_into_space show "F i \ Pow (space M)" by auto @@ -662,8 +662,8 @@ have X_in: "X \ events" using tail_events_sets A X by auto - interpret D: dynkin_system "space M" ?D - proof (rule dynkin_systemI) + interpret D: Dynkin_system "space M" ?D + proof (rule Dynkin_systemI) fix D assume "D \ ?D" then show "D \ space M" using sets.sets_into_space by auto next @@ -739,8 +739,8 @@ by (intro sigma_sets_subseteq UN_mono) auto then have "tail_events A \ sigma_sets (space M) ?A" unfolding tail_events_def by auto } - also have "sigma_sets (space M) ?A = dynkin (space M) ?A" - proof (rule sigma_eq_dynkin) + also have "sigma_sets (space M) ?A = Dynkin (space M) ?A" + proof (rule sigma_eq_Dynkin) { fix B n assume "B \ sigma_sets (space M) (\m\{..n}. A m)" then have "B \ space M" by induct (insert A sets.sets_into_space[of _ M], auto) } @@ -763,8 +763,8 @@ then show "a \ b \ (\n. sigma_sets (space M) (\i\{..n}. A i))" by auto qed qed - also have "dynkin (space M) ?A \ ?D" - using \?A \ ?D\ by (auto intro!: D.dynkin_subset) + also have "Dynkin (space M) ?A \ ?D" + using \?A \ ?D\ by (auto intro!: D.Dynkin_subset) finally show ?thesis by auto qed