src/HOL/Probability/Projective_Limit.thy
changeset 60585 48fdff264eb2
parent 58876 1888e3cb8048
child 60809 457abb82fb9e
equal deleted inserted replaced
60583:a645a0e6d790 60585:48fdff264eb2
   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)"