280 have Y_Z': "\<And>n. n \<ge> 1 \<Longrightarrow> Y n \<subseteq> Z' n" by (auto simp: Y_def) |
280 have Y_Z': "\<And>n. n \<ge> 1 \<Longrightarrow> Y n \<subseteq> Z' n" by (auto simp: Y_def) |
281 hence Y_Z: "\<And>n. n \<ge> 1 \<Longrightarrow> Y n \<subseteq> Z n" using Z' by auto |
281 hence Y_Z: "\<And>n. n \<ge> 1 \<Longrightarrow> Y n \<subseteq> Z n" using Z' by auto |
282 have Y_notempty: "\<And>n. n \<ge> 1 \<Longrightarrow> (Y n) \<noteq> {}" |
282 have Y_notempty: "\<And>n. n \<ge> 1 \<Longrightarrow> (Y n) \<noteq> {}" |
283 proof - |
283 proof - |
284 fix n::nat assume "n \<ge> 1" hence "Y n \<subseteq> Z n" by fact |
284 fix n::nat assume "n \<ge> 1" hence "Y n \<subseteq> Z n" by fact |
285 have "Y n = (\<Inter> i\<in>{1..n}. emb I (J n) (emb (J n) (J i) (K i)))" using J J_mono |
285 have "Y n = (\<Inter>i\<in>{1..n}. emb I (J n) (emb (J n) (J i) (K i)))" using J J_mono |
286 by (auto simp: Y_def Z'_def) |
286 by (auto simp: Y_def Z'_def) |
287 also have "\<dots> = prod_emb I (\<lambda>_. borel) (J n) (\<Inter> i\<in>{1..n}. emb (J n) (J i) (K i))" |
287 also have "\<dots> = prod_emb I (\<lambda>_. borel) (J n) (\<Inter>i\<in>{1..n}. emb (J n) (J i) (K i))" |
288 using `n \<ge> 1` |
288 using `n \<ge> 1` |
289 by (subst prod_emb_INT) auto |
289 by (subst prod_emb_INT) auto |
290 finally |
290 finally |
291 have Y_emb: |
291 have Y_emb: |
292 "Y n = prod_emb I (\<lambda>_. borel) (J n) |
292 "Y n = prod_emb I (\<lambda>_. borel) (J n) |
293 (\<Inter> i\<in>{1..n}. prod_emb (J n) (\<lambda>_. borel) (J i) (K i))" . |
293 (\<Inter>i\<in>{1..n}. prod_emb (J n) (\<lambda>_. borel) (J i) (K i))" . |
294 hence "Y n \<in> ?G" using J J_mono K_sets `n \<ge> 1` by (intro generatorI[OF _ _ _ _ Y_emb]) auto |
294 hence "Y n \<in> ?G" using J J_mono K_sets `n \<ge> 1` by (intro generatorI[OF _ _ _ _ Y_emb]) auto |
295 hence "\<bar>\<mu>G (Y n)\<bar> \<noteq> \<infinity>" unfolding Y_emb using J J_mono K_sets `n \<ge> 1` |
295 hence "\<bar>\<mu>G (Y n)\<bar> \<noteq> \<infinity>" unfolding Y_emb using J J_mono K_sets `n \<ge> 1` |
296 by (subst mu_G_eq) (auto simp: limP_finite proj_sets mu_G_eq) |
296 by (subst mu_G_eq) (auto simp: limP_finite proj_sets mu_G_eq) |
297 interpret finite_measure "(limP (J n) (\<lambda>_. borel) P)" |
297 interpret finite_measure "(limP (J n) (\<lambda>_. borel) P)" |
298 proof |
298 proof |
315 using J J_mono K_sets `n \<ge> 1` |
315 using J J_mono K_sets `n \<ge> 1` |
316 by (simp only: emeasure_eq_measure) |
316 by (simp only: emeasure_eq_measure) |
317 (auto dest!: bspec[where x=n] |
317 (auto dest!: bspec[where x=n] |
318 simp: extensional_restrict emeasure_eq_measure prod_emb_iff simp del: limP_finite |
318 simp: extensional_restrict emeasure_eq_measure prod_emb_iff simp del: limP_finite |
319 intro!: measure_Diff[symmetric] set_mp[OF K_B]) |
319 intro!: measure_Diff[symmetric] set_mp[OF K_B]) |
320 also have subs: "Z n - Y n \<subseteq> (\<Union> i\<in>{1..n}. (Z i - Z' i))" using Z' Z `n \<ge> 1` |
320 also have subs: "Z n - Y n \<subseteq> (\<Union>i\<in>{1..n}. (Z i - Z' i))" using Z' Z `n \<ge> 1` |
321 unfolding Y_def by (force simp: decseq_def) |
321 unfolding Y_def by (force simp: decseq_def) |
322 have "Z n - Y n \<in> ?G" "(\<Union> i\<in>{1..n}. (Z i - Z' i)) \<in> ?G" |
322 have "Z n - Y n \<in> ?G" "(\<Union>i\<in>{1..n}. (Z i - Z' i)) \<in> ?G" |
323 using `Z' _ \<in> ?G` `Z _ \<in> ?G` `Y _ \<in> ?G` by auto |
323 using `Z' _ \<in> ?G` `Z _ \<in> ?G` `Y _ \<in> ?G` by auto |
324 hence "\<mu>G (Z n - Y n) \<le> \<mu>G (\<Union> i\<in>{1..n}. (Z i - Z' i))" |
324 hence "\<mu>G (Z n - Y n) \<le> \<mu>G (\<Union>i\<in>{1..n}. (Z i - Z' i))" |
325 using subs G.additive_increasing[OF positive_mu_G[OF `I \<noteq> {}`] additive_mu_G[OF `I \<noteq> {}`]] |
325 using subs G.additive_increasing[OF positive_mu_G[OF `I \<noteq> {}`] additive_mu_G[OF `I \<noteq> {}`]] |
326 unfolding increasing_def by auto |
326 unfolding increasing_def by auto |
327 also have "\<dots> \<le> (\<Sum> i\<in>{1..n}. \<mu>G (Z i - Z' i))" using `Z _ \<in> ?G` `Z' _ \<in> ?G` |
327 also have "\<dots> \<le> (\<Sum> i\<in>{1..n}. \<mu>G (Z i - Z' i))" using `Z _ \<in> ?G` `Z' _ \<in> ?G` |
328 by (intro G.subadditive[OF positive_mu_G additive_mu_G, OF `I \<noteq> {}` `I \<noteq> {}`]) auto |
328 by (intro G.subadditive[OF positive_mu_G additive_mu_G, OF `I \<noteq> {}` `I \<noteq> {}`]) auto |
329 also have "\<dots> \<le> (\<Sum> i\<in>{1..n}. 2 powr -real i * ?a)" |
329 also have "\<dots> \<le> (\<Sum> i\<in>{1..n}. 2 powr -real i * ?a)" |