src/HOL/Probability/Projective_Limit.thy
changeset 50095 94d7dfa9f404
parent 50091 b3b5dc2350b7
child 50101 a3bede207a04
--- a/src/HOL/Probability/Projective_Limit.thy	Fri Nov 16 11:22:22 2012 +0100
+++ b/src/HOL/Probability/Projective_Limit.thy	Fri Nov 16 11:34:34 2012 +0100
@@ -189,13 +189,13 @@
   for I::"'i set" and P
 begin
 
-abbreviation "PiB \<equiv> (\<lambda>J P. PiP J (\<lambda>_. borel) P)"
+abbreviation "lim\<^isub>B \<equiv> (\<lambda>J P. limP J (\<lambda>_. borel) P)"
 
 lemma
-  emeasure_PiB_emb_not_empty:
+  emeasure_limB_emb_not_empty:
   assumes "I \<noteq> {}"
   assumes X: "J \<noteq> {}" "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
-  shows "emeasure (PiB I P) (emb I J (Pi\<^isub>E J B)) = emeasure (PiB J P) (Pi\<^isub>E J B)"
+  shows "emeasure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = emeasure (lim\<^isub>B J P) (Pi\<^isub>E J B)"
 proof -
   let ?\<Omega> = "\<Pi>\<^isub>E i\<in>I. space borel"
   let ?G = generator
@@ -208,7 +208,7 @@
     fix A assume "A \<in> ?G"
     with generatorE guess J X . note JX = this
     interpret prob_space "P J" using prob_space[OF `finite J`] .
-    show "\<mu>G A \<noteq> \<infinity>" using JX by (simp add: PiP_finite)
+    show "\<mu>G A \<noteq> \<infinity>" using JX by (simp add: limP_finite)
   next
     fix Z assume Z: "range Z \<subseteq> ?G" "decseq Z" "(\<Inter>i. Z i) = {}"
     then have "decseq (\<lambda>i. \<mu>G (Z i))"
@@ -222,7 +222,7 @@
       ultimately have "0 < ?a" by auto
       hence "?a \<noteq> -\<infinity>" by auto
       have "\<forall>n. \<exists>J B. J \<noteq> {} \<and> finite J \<and> J \<subseteq> I \<and> B \<in> sets (Pi\<^isub>M J (\<lambda>_. borel)) \<and>
-        Z n = emb I J B \<and> \<mu>G (Z n) = emeasure (PiB J P) B"
+        Z n = emb I J B \<and> \<mu>G (Z n) = emeasure (lim\<^isub>B J P) B"
         using Z by (intro allI generator_Ex) auto
       then obtain J' B' where J': "\<And>n. J' n \<noteq> {}" "\<And>n. finite (J' n)" "\<And>n. J' n \<subseteq> I"
           "\<And>n. B' n \<in> sets (\<Pi>\<^isub>M i\<in>J' n. borel)"
@@ -243,10 +243,10 @@
         unfolding J_def B_def by (subst prod_emb_trans) (insert Z, auto)
       interpret prob_space "P (J i)" for i using prob_space by simp
       have "?a \<le> \<mu>G (Z 0)" by (auto intro: INF_lower)
-      also have "\<dots> < \<infinity>" using J by (auto simp: Z_eq \<mu>G_eq PiP_finite proj_sets)
+      also have "\<dots> < \<infinity>" using J by (auto simp: Z_eq \<mu>G_eq limP_finite proj_sets)
       finally have "?a \<noteq> \<infinity>" by simp
       have "\<And>n. \<bar>\<mu>G (Z n)\<bar> \<noteq> \<infinity>" unfolding Z_eq using J J_mono
-        by (subst \<mu>G_eq) (auto simp: PiP_finite proj_sets \<mu>G_eq)
+        by (subst \<mu>G_eq) (auto simp: limP_finite proj_sets \<mu>G_eq)
 
       interpret finite_set_sequence J by unfold_locales simp
       def Utn \<equiv> Un_to_nat
@@ -380,20 +380,20 @@
             (\<Inter> i\<in>{1..n}. prod_emb (J n) (\<lambda>_. borel) (J i) (K i))" .
         hence "Y n \<in> ?G" using J J_mono K_sets `n \<ge> 1` by (intro generatorI[OF _ _ _ _ Y_emb]) auto
         hence "\<bar>\<mu>G (Y n)\<bar> \<noteq> \<infinity>" unfolding Y_emb using J J_mono K_sets `n \<ge> 1`
-          by (subst \<mu>G_eq) (auto simp: PiP_finite proj_sets \<mu>G_eq)
-        interpret finite_measure "(PiP (J n) (\<lambda>_. borel) P)"
+          by (subst \<mu>G_eq) (auto simp: limP_finite proj_sets \<mu>G_eq)
+        interpret finite_measure "(limP (J n) (\<lambda>_. borel) P)"
         proof
-          have "emeasure (PiP (J n) (\<lambda>_. borel) P) (J n \<rightarrow>\<^isub>E space borel) \<noteq> \<infinity>"
-            using J by (subst emeasure_PiP) auto
-          thus  "emeasure (PiP (J n) (\<lambda>_. borel) P) (space (PiP (J n) (\<lambda>_. borel) P)) \<noteq> \<infinity>"
+          have "emeasure (limP (J n) (\<lambda>_. borel) P) (J n \<rightarrow>\<^isub>E space borel) \<noteq> \<infinity>"
+            using J by (subst emeasure_limP) auto
+          thus  "emeasure (limP (J n) (\<lambda>_. borel) P) (space (limP (J n) (\<lambda>_. borel) P)) \<noteq> \<infinity>"
              by (simp add: space_PiM)
         qed
-        have "\<mu>G (Z n) = PiP (J n) (\<lambda>_. borel) P (B n)"
+        have "\<mu>G (Z n) = limP (J n) (\<lambda>_. borel) P (B n)"
           unfolding Z_eq using J by (auto simp: \<mu>G_eq)
         moreover have "\<mu>G (Y n) =
-          PiP (J n) (\<lambda>_. borel) P (\<Inter>i\<in>{Suc 0..n}. prod_emb (J n) (\<lambda>_. borel) (J i) (K i))"
+          limP (J n) (\<lambda>_. borel) P (\<Inter>i\<in>{Suc 0..n}. prod_emb (J n) (\<lambda>_. borel) (J i) (K i))"
           unfolding Y_emb using J J_mono K_sets `n \<ge> 1` by (subst \<mu>G_eq) auto
-        moreover have "\<mu>G (Z n - Y n) = PiP (J n) (\<lambda>_. borel) P
+        moreover have "\<mu>G (Z n - Y n) = limP (J n) (\<lambda>_. borel) P
           (B n - (\<Inter>i\<in>{Suc 0..n}. prod_emb (J n) (\<lambda>_. borel) (J i) (K i)))"
           unfolding Z_eq Y_emb prod_emb_Diff[symmetric] using J J_mono K_sets `n \<ge> 1`
           by (subst \<mu>G_eq) (auto intro!: Diff)
@@ -420,7 +420,7 @@
             unfolding Z'_def Z_eq by simp
           also have "\<dots> = P (J i) (B i - K i)"
             apply (subst \<mu>G_eq) using J K_sets apply auto
-            apply (subst PiP_finite) apply auto
+            apply (subst limP_finite) apply auto
             done
           also have "\<dots> = P (J i) (B i) - P (J i) (K i)"
             apply (subst emeasure_Diff) using K_sets J `K _ \<subseteq> B _` apply (auto simp: proj_sets)
@@ -593,10 +593,10 @@
   qed
   then guess \<mu> .. note \<mu> = this
   def f \<equiv> "finmap_of J B"
-  show "emeasure (PiB I P) (emb I J (Pi\<^isub>E J B)) = emeasure (PiB J P) (Pi\<^isub>E J B)"
-  proof (subst emeasure_extend_measure_Pair[OF PiP_def, of I "\<lambda>_. borel" \<mu>])
-    show "positive (sets (PiB I P)) \<mu>" "countably_additive (sets (PiB I P)) \<mu>"
-      using \<mu> unfolding sets_PiP sets_PiM_generator by (auto simp: measure_space_def)
+  show "emeasure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = emeasure (lim\<^isub>B J P) (Pi\<^isub>E J B)"
+  proof (subst emeasure_extend_measure_Pair[OF limP_def, of I "\<lambda>_. borel" \<mu>])
+    show "positive (sets (lim\<^isub>B I P)) \<mu>" "countably_additive (sets (lim\<^isub>B I P)) \<mu>"
+      using \<mu> unfolding sets_limP sets_PiM_generator by (auto simp: measure_space_def)
   next
     show "(J \<noteq> {} \<or> I = {}) \<and> finite J \<and> J \<subseteq> I \<and> B \<in> J \<rightarrow> sets borel"
       using assms by (auto simp: f_def)
@@ -610,11 +610,11 @@
     hence "\<mu> (emb I J (Pi\<^isub>E J X)) = \<mu>G (emb I J (Pi\<^isub>E J X))" using \<mu> by simp
     also have "\<dots> = emeasure (P J) (Pi\<^isub>E J X)"
       using JX assms proj_sets
-      by (subst \<mu>G_eq) (auto simp: \<mu>G_eq PiP_finite intro: sets_PiM_I_finite)
+      by (subst \<mu>G_eq) (auto simp: \<mu>G_eq limP_finite intro: sets_PiM_I_finite)
     finally show "\<mu> (emb I J (Pi\<^isub>E J X)) = emeasure (P J) (Pi\<^isub>E J X)" .
   next
-    show "emeasure (P J) (Pi\<^isub>E J B) = emeasure (PiP J (\<lambda>_. borel) P) (Pi\<^isub>E J B)"
-      using assms by (simp add: f_def PiP_finite Pi_def)
+    show "emeasure (P J) (Pi\<^isub>E J B) = emeasure (limP J (\<lambda>_. borel) P) (Pi\<^isub>E J B)"
+      using assms by (simp add: f_def limP_finite Pi_def)
   qed
 qed
 
@@ -631,56 +631,56 @@
 hide_const (open) domain
 hide_const (open) enum_basis_finmap
 
-sublocale polish_projective \<subseteq> P!: prob_space "(PiB I P)"
+sublocale polish_projective \<subseteq> P!: prob_space "(lim\<^isub>B I P)"
 proof
-  show "emeasure (PiB I P) (space (PiB I P)) = 1"
+  show "emeasure (lim\<^isub>B I P) (space (lim\<^isub>B I P)) = 1"
   proof cases
     assume "I = {}"
     interpret prob_space "P {}" using prob_space by simp
     show ?thesis
-      by (simp add: space_PiM_empty PiP_finite emeasure_space_1 `I = {}`)
+      by (simp add: space_PiM_empty limP_finite emeasure_space_1 `I = {}`)
   next
     assume "I \<noteq> {}"
     then obtain i where "i \<in> I" by auto
     interpret prob_space "P {i}" using prob_space by simp
-    have R: "(space (PiB I P)) = (emb I {i} (Pi\<^isub>E {i} (\<lambda>_. space borel)))"
+    have R: "(space (lim\<^isub>B I P)) = (emb I {i} (Pi\<^isub>E {i} (\<lambda>_. space borel)))"
       by (auto simp: prod_emb_def space_PiM)
     moreover have "extensional {i} = space (P {i})" by (simp add: proj_space space_PiM)
     ultimately show ?thesis using `i \<in> I`
       apply (subst R)
-      apply (subst emeasure_PiB_emb_not_empty)
-      apply (auto simp: PiP_finite emeasure_space_1)
+      apply (subst emeasure_limB_emb_not_empty)
+      apply (auto simp: limP_finite emeasure_space_1)
       done
   qed
 qed
 
 context polish_projective begin
 
-lemma emeasure_PiB_emb:
+lemma emeasure_limB_emb:
   assumes X: "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
-  shows "emeasure (PiB I P) (emb I J (Pi\<^isub>E J B)) = emeasure (P J) (Pi\<^isub>E J B)"
+  shows "emeasure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = emeasure (P J) (Pi\<^isub>E J B)"
 proof cases
   interpret prob_space "P {}" using prob_space by simp
   assume "J = {}"
-  moreover have "emb I {} {\<lambda>x. undefined} = space (PiB I P)"
+  moreover have "emb I {} {\<lambda>x. undefined} = space (lim\<^isub>B I P)"
     by (auto simp: space_PiM prod_emb_def)
-  moreover have "{\<lambda>x. undefined} = space (PiB {} P)"
+  moreover have "{\<lambda>x. undefined} = space (lim\<^isub>B {} P)"
     by (auto simp: space_PiM prod_emb_def)
   ultimately show ?thesis
-    by (simp add: P.emeasure_space_1 PiP_finite emeasure_space_1 del: space_PiP)
+    by (simp add: P.emeasure_space_1 limP_finite emeasure_space_1 del: space_limP)
 next
   assume "J \<noteq> {}" with X show ?thesis
-    by (subst emeasure_PiB_emb_not_empty) (auto simp: PiP_finite)
+    by (subst emeasure_limB_emb_not_empty) (auto simp: limP_finite)
 qed
 
-lemma measure_PiB_emb:
+lemma measure_limB_emb:
   assumes "J \<subseteq> I" "finite J" "\<forall>i\<in>J. B i \<in> sets borel"
-  shows "measure (PiB I P) (emb I J (Pi\<^isub>E J B)) = measure (P J) (Pi\<^isub>E J B)"
+  shows "measure (lim\<^isub>B I P) (emb I J (Pi\<^isub>E J B)) = measure (P J) (Pi\<^isub>E J B)"
 proof -
   interpret prob_space "P J" using prob_space assms by simp
   show ?thesis
-    using emeasure_PiB_emb[OF assms]
-    unfolding emeasure_eq_measure PiP_finite[OF `finite J` `J \<subseteq> I`] P.emeasure_eq_measure
+    using emeasure_limB_emb[OF assms]
+    unfolding emeasure_eq_measure limP_finite[OF `finite J` `J \<subseteq> I`] P.emeasure_eq_measure
     by simp
 qed
 
@@ -693,9 +693,9 @@
 proof qed
 
 lemma (in polish_product_prob_space)
-  PiP_eq_PiM:
-  "I \<noteq> {} \<Longrightarrow> PiP I (\<lambda>_. borel) (\<lambda>J. PiM J (\<lambda>_. borel::('a) measure)) =
+  limP_eq_PiM:
+  "I \<noteq> {} \<Longrightarrow> lim\<^isub>P I (\<lambda>_. borel) (\<lambda>J. PiM J (\<lambda>_. borel::('a) measure)) =
     PiM I (\<lambda>_. borel)"
-  by (rule PiM_eq) (auto simp: emeasure_PiM emeasure_PiB_emb)
+  by (rule PiM_eq) (auto simp: emeasure_PiM emeasure_limB_emb)
 
 end