diff -r f17602cbf76a -r 1d066f6ab25d src/HOL/Probability/Projective_Family.thy --- a/src/HOL/Probability/Projective_Family.thy Thu Apr 14 12:17:44 2016 +0200 +++ b/src/HOL/Probability/Projective_Family.thy Thu Apr 14 15:48:11 2016 +0200 @@ -88,7 +88,7 @@ by (intro generator.intros J sets.Diff sets.top X) with J show "space (Pi\<^sub>M I M) - emb I J X \ generator" by (simp add: space_PiM prod_emb_PiE) - + fix K Y assume K: "finite K" "K \ I" and Y: "Y \ sets (PiM K M)" have "emb I (J \ K) (emb (J \ K) J X) \ emb I (J \ K) (emb (J \ K) K Y) \ generator" unfolding prod_emb_Int[symmetric] @@ -150,7 +150,7 @@ then have "\G (emb I J {}) = 0" by (subst mu_G_spec) auto then show "\G {} = 0" by simp - qed (auto simp: mu_G_spec elim!: generator.cases) + qed qed lemma additive_mu_G: "additive generator \G" @@ -182,7 +182,7 @@ proof (clarsimp elim!: generator.cases simp: mu_G_spec del: notI) fix J assume "finite J" "J \ I" then interpret prob_space "P J" by (rule prob_space_P) - show "\X. X \ sets (Pi\<^sub>M J M) \ emeasure (P J) X \ \" + show "\X. X \ sets (Pi\<^sub>M J M) \ emeasure (P J) X \ top" by simp qed next @@ -312,7 +312,7 @@ apply (auto simp add: sets_P atLeastLessThanSuc space_P simp del: nn_integral_indicator intro!: nn_integral_cong split: split_indicator) done - + primrec C :: "nat \ nat \ (nat \ 'a) \ (nat \ 'a) measure" where "C n 0 \ = return (PiM {0.." @@ -446,7 +446,7 @@ have sets_X[measurable]: "X n \ sets (PiM {0.. {0..< n}} = {}") (simp_all add: X_def, auto intro!: sets.countable_INT' sets.Int) - + have dec_X: "n \ m \ X m \ PF.emb {0.. {0..< n}} = {}") @@ -502,24 +502,32 @@ apply (simp add: bind_return[OF measurable_eP] nn_integral_eP) done also have "\ = (\\<^sup>+x. (INF i. ?C' i x) \P n \)" - proof (rule nn_integral_monotone_convergence_INF[symmetric]) + proof (rule nn_integral_monotone_convergence_INF_AE[symmetric]) have "(\\<^sup>+x. ?C' 0 x \P n \) \ (\\<^sup>+x. 1 \P n \)" by (intro nn_integral_mono) (auto split: split_indicator) also have "\ < \" using prob_space_P[OF \, THEN prob_space.emeasure_space_1] by simp finally show "(\\<^sup>+x. ?C' 0 x \P n \) < \" . next - fix i j :: nat and x assume "i \ j" "x \ space (P n \)" - with \ have \': "\(n := x) \ space (PiM {0..] space_PiM PiE_iff extensional_def) - show "?C' j x \ ?C' i x" - using \i \ j\ by (subst emeasure_C[symmetric, of i]) (auto intro!: emeasure_mono dec_X del: subsetI simp: sets_C space_P \ \') + show "AE x in P n \. ?C' (Suc i) x \ ?C' i x" for i + proof (rule AE_I2) + fix x assume "x \ space (P n \)" + with \ have \': "\(n := x) \ space (PiM {0..] space_PiM PiE_iff extensional_def) + with \ show "?C' (Suc i) x \ ?C' i x" + apply (subst emeasure_C[symmetric, of i "Suc i"]) + apply (auto intro!: emeasure_mono[OF dec_X] del: subsetI + simp: sets_C space_P) + apply (subst sets_bind[OF sets_eP]) + apply (simp_all add: space_C space_P) + done + qed qed fact finally have "(\\<^sup>+x. (INF i. ?C' i x) \P n \) \ 0" by simp - then have "\\<^sub>F x in ae_filter (P n \). 0 < (INF i. ?C' i x)" - using M by (subst (asm) nn_integral_0_iff_AE) - (auto intro!: borel_measurable_INF simp: Filter.not_eventually not_le) + with M have "\\<^sub>F x in ae_filter (P n \). 0 < (INF i. ?C' i x)" + by (subst (asm) nn_integral_0_iff_AE) + (auto intro!: borel_measurable_INF simp: Filter.not_eventually not_le zero_less_iff_neq_zero) then have "\\<^sub>F x in ae_filter (P n \). x \ space (M n) \ 0 < (INF i. ?C' i x)" by (rule frequently_mp[rotated]) (auto simp: space_P \) then obtain x where "x \ space (M n)" "0 < (INF i. ?C' i x)" @@ -585,7 +593,7 @@ shows "emeasure lim (emb I J X) = emeasure (Pi\<^sub>M J M) X" proof (rule emeasure_lim[OF *], goal_cases) case (1 J X) - + have "\Q. (\i. sets Q = PiM (\i. J i) M \ distr Q (PiM (J i) M) (\x. restrict x (J i)) = Pi\<^sub>M (J i) M)" proof cases assume "finite (\i. J i)" @@ -626,7 +634,7 @@ let ?Q = "distr IT.PF.lim (PiM (\i. J i) M) (\\. \x\\i. J i. \ (t x))" { fix i - have "distr ?Q (Pi\<^sub>M (J i) M) (\x. restrict x (J i)) = + have "distr ?Q (Pi\<^sub>M (J i) M) (\x. restrict x (J i)) = distr IT.PF.lim (Pi\<^sub>M (J i) M) ((\\. \n\J i. \ (t n)) \ (\\. restrict \ (t`J i)))" proof (subst distr_distr) have "(\\. \ (t x)) \ measurable (Pi\<^sub>M UNIV (\x. M (f x))) (M x)" if x: "x \ J i" for x i