src/HOL/Probability/Projective_Limit.thy
changeset 50101 a3bede207a04
parent 50095 94d7dfa9f404
child 50123 69b35a75caf3
equal deleted inserted replaced
50100:9af8721ecd20 50101:a3bede207a04
   205   have "\<exists>\<mu>. (\<forall>s\<in>?G. \<mu> s = \<mu>G s) \<and> measure_space ?\<Omega> (sigma_sets ?\<Omega> ?G) \<mu>"
   205   have "\<exists>\<mu>. (\<forall>s\<in>?G. \<mu> s = \<mu>G s) \<and> measure_space ?\<Omega> (sigma_sets ?\<Omega> ?G) \<mu>"
   206   proof (rule G.caratheodory_empty_continuous[OF positive_\<mu>G additive_\<mu>G,
   206   proof (rule G.caratheodory_empty_continuous[OF positive_\<mu>G additive_\<mu>G,
   207       OF `I \<noteq> {}`, OF `I \<noteq> {}`])
   207       OF `I \<noteq> {}`, OF `I \<noteq> {}`])
   208     fix A assume "A \<in> ?G"
   208     fix A assume "A \<in> ?G"
   209     with generatorE guess J X . note JX = this
   209     with generatorE guess J X . note JX = this
   210     interpret prob_space "P J" using prob_space[OF `finite J`] .
   210     interpret prob_space "P J" using proj_prob_space[OF `finite J`] .
   211     show "\<mu>G A \<noteq> \<infinity>" using JX by (simp add: limP_finite)
   211     show "\<mu>G A \<noteq> \<infinity>" using JX by (simp add: limP_finite)
   212   next
   212   next
   213     fix Z assume Z: "range Z \<subseteq> ?G" "decseq Z" "(\<Inter>i. Z i) = {}"
   213     fix Z assume Z: "range Z \<subseteq> ?G" "decseq Z" "(\<Inter>i. Z i) = {}"
   214     then have "decseq (\<lambda>i. \<mu>G (Z i))"
   214     then have "decseq (\<lambda>i. \<mu>G (Z i))"
   215       by (auto intro!: \<mu>G_mono simp: decseq_def)
   215       by (auto intro!: \<mu>G_mono simp: decseq_def)
   239       then obtain j where j: "\<And>n. j n \<in> J n"
   239       then obtain j where j: "\<And>n. j n \<in> J n"
   240         unfolding choice_iff by blast
   240         unfolding choice_iff by blast
   241       note [simp] = `\<And>n. finite (J n)`
   241       note [simp] = `\<And>n. finite (J n)`
   242       from J  Z_emb have Z_eq: "\<And>n. Z n = emb I (J n) (B n)" "\<And>n. Z n \<in> ?G"
   242       from J  Z_emb have Z_eq: "\<And>n. Z n = emb I (J n) (B n)" "\<And>n. Z n \<in> ?G"
   243         unfolding J_def B_def by (subst prod_emb_trans) (insert Z, auto)
   243         unfolding J_def B_def by (subst prod_emb_trans) (insert Z, auto)
   244       interpret prob_space "P (J i)" for i using prob_space by simp
   244       interpret prob_space "P (J i)" for i using proj_prob_space by simp
   245       have "?a \<le> \<mu>G (Z 0)" by (auto intro: INF_lower)
   245       have "?a \<le> \<mu>G (Z 0)" by (auto intro: INF_lower)
   246       also have "\<dots> < \<infinity>" using J by (auto simp: Z_eq \<mu>G_eq limP_finite proj_sets)
   246       also have "\<dots> < \<infinity>" using J by (auto simp: Z_eq \<mu>G_eq limP_finite proj_sets)
   247       finally have "?a \<noteq> \<infinity>" by simp
   247       finally have "?a \<noteq> \<infinity>" by simp
   248       have "\<And>n. \<bar>\<mu>G (Z n)\<bar> \<noteq> \<infinity>" unfolding Z_eq using J J_mono
   248       have "\<And>n. \<bar>\<mu>G (Z n)\<bar> \<noteq> \<infinity>" unfolding Z_eq using J J_mono
   249         by (subst \<mu>G_eq) (auto simp: limP_finite proj_sets \<mu>G_eq)
   249         by (subst \<mu>G_eq) (auto simp: limP_finite proj_sets \<mu>G_eq)
   634 sublocale polish_projective \<subseteq> P!: prob_space "(lim\<^isub>B I P)"
   634 sublocale polish_projective \<subseteq> P!: prob_space "(lim\<^isub>B I P)"
   635 proof
   635 proof
   636   show "emeasure (lim\<^isub>B I P) (space (lim\<^isub>B I P)) = 1"
   636   show "emeasure (lim\<^isub>B I P) (space (lim\<^isub>B I P)) = 1"
   637   proof cases
   637   proof cases
   638     assume "I = {}"
   638     assume "I = {}"
   639     interpret prob_space "P {}" using prob_space by simp
   639     interpret prob_space "P {}" using proj_prob_space by simp
   640     show ?thesis
   640     show ?thesis
   641       by (simp add: space_PiM_empty limP_finite emeasure_space_1 `I = {}`)
   641       by (simp add: space_PiM_empty limP_finite emeasure_space_1 `I = {}`)
   642   next
   642   next
   643     assume "I \<noteq> {}"
   643     assume "I \<noteq> {}"
   644     then obtain i where "i \<in> I" by auto
   644     then obtain i where "i \<in> I" by auto
   645     interpret prob_space "P {i}" using prob_space by simp
   645     interpret prob_space "P {i}" using proj_prob_space by simp
   646     have R: "(space (lim\<^isub>B I P)) = (emb I {i} (Pi\<^isub>E {i} (\<lambda>_. space borel)))"
   646     have R: "(space (lim\<^isub>B I P)) = (emb I {i} (Pi\<^isub>E {i} (\<lambda>_. space borel)))"
   647       by (auto simp: prod_emb_def space_PiM)
   647       by (auto simp: prod_emb_def space_PiM)
   648     moreover have "extensional {i} = space (P {i})" by (simp add: proj_space space_PiM)
   648     moreover have "extensional {i} = space (P {i})" by (simp add: proj_space space_PiM)
   649     ultimately show ?thesis using `i \<in> I`
   649     ultimately show ?thesis using `i \<in> I`
   650       apply (subst R)
   650       apply (subst R)
   658 
   658 
   659 lemma emeasure_limB_emb:
   659 lemma emeasure_limB_emb:
   660   assumes X: "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
   660   assumes X: "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
   661   shows "emeasure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = emeasure (P J) (Pi\<^isub>E J B)"
   661   shows "emeasure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = emeasure (P J) (Pi\<^isub>E J B)"
   662 proof cases
   662 proof cases
   663   interpret prob_space "P {}" using prob_space by simp
   663   interpret prob_space "P {}" using proj_prob_space by simp
   664   assume "J = {}"
   664   assume "J = {}"
   665   moreover have "emb I {} {\<lambda>x. undefined} = space (lim\<^isub>B I P)"
   665   moreover have "emb I {} {\<lambda>x. undefined} = space (lim\<^isub>B I P)"
   666     by (auto simp: space_PiM prod_emb_def)
   666     by (auto simp: space_PiM prod_emb_def)
   667   moreover have "{\<lambda>x. undefined} = space (lim\<^isub>B {} P)"
   667   moreover have "{\<lambda>x. undefined} = space (lim\<^isub>B {} P)"
   668     by (auto simp: space_PiM prod_emb_def)
   668     by (auto simp: space_PiM prod_emb_def)
   675 
   675 
   676 lemma measure_limB_emb:
   676 lemma measure_limB_emb:
   677   assumes "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
   677   assumes "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
   678   shows "measure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = measure (P J) (Pi\<^isub>E J B)"
   678   shows "measure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = measure (P J) (Pi\<^isub>E J B)"
   679 proof -
   679 proof -
   680   interpret prob_space "P J" using prob_space assms by simp
   680   interpret prob_space "P J" using proj_prob_space assms by simp
   681   show ?thesis
   681   show ?thesis
   682     using emeasure_limB_emb[OF assms]
   682     using emeasure_limB_emb[OF assms]
   683     unfolding emeasure_eq_measure limP_finite[OF `finite J` `J \<subseteq> I`] P.emeasure_eq_measure
   683     unfolding emeasure_eq_measure limP_finite[OF `finite J` `J \<subseteq> I`] P.emeasure_eq_measure
   684     by simp
   684     by simp
   685 qed
   685 qed