src/HOL/Probability/Borel_Space.thy
changeset 62390 842917225d56
parent 62372 4fe872ff91bf
child 62624 59ceeb6f3079
equal deleted inserted replaced
62380:29800666e526 62390:842917225d56
   968   (is "_ = ?SIGMA")
   968   (is "_ = ?SIGMA")
   969 proof (rule borel_eq_sigmaI4[OF borel_eq_halfspace_le])
   969 proof (rule borel_eq_sigmaI4[OF borel_eq_halfspace_le])
   970   fix a :: real and i :: 'a assume "(a, i) \<in> UNIV \<times> Basis"
   970   fix a :: real and i :: 'a assume "(a, i) \<in> UNIV \<times> Basis"
   971   then have "i \<in> Basis" by auto
   971   then have "i \<in> Basis" by auto
   972   then have *: "{x::'a. x\<bullet>i \<le> a} = (\<Union>k::nat. {.. (\<Sum>n\<in>Basis. (if n = i then a else real k)*\<^sub>R n)})"
   972   then have *: "{x::'a. x\<bullet>i \<le> a} = (\<Union>k::nat. {.. (\<Sum>n\<in>Basis. (if n = i then a else real k)*\<^sub>R n)})"
   973   proof (safe, simp_all add: eucl_le[where 'a='a] split: split_if_asm)
   973   proof (safe, simp_all add: eucl_le[where 'a='a] split: if_split_asm)
   974     fix x :: 'a
   974     fix x :: 'a
   975     from real_arch_simple[of "Max ((\<lambda>i. x\<bullet>i)`Basis)"] guess k::nat ..
   975     from real_arch_simple[of "Max ((\<lambda>i. x\<bullet>i)`Basis)"] guess k::nat ..
   976     then have "\<And>i. i \<in> Basis \<Longrightarrow> x\<bullet>i \<le> real k"
   976     then have "\<And>i. i \<in> Basis \<Longrightarrow> x\<bullet>i \<le> real k"
   977       by (subst (asm) Max_le_iff) auto
   977       by (subst (asm) Max_le_iff) auto
   978     then show "\<exists>k::nat. \<forall>ia\<in>Basis. ia \<noteq> i \<longrightarrow> x \<bullet> ia \<le> real k"
   978     then show "\<exists>k::nat. \<forall>ia\<in>Basis. ia \<noteq> i \<longrightarrow> x \<bullet> ia \<le> real k"
   989   fix a :: real and i :: 'a assume "(a, i) \<in> UNIV \<times> Basis"
   989   fix a :: real and i :: 'a assume "(a, i) \<in> UNIV \<times> Basis"
   990   then have i: "i \<in> Basis" by auto
   990   then have i: "i \<in> Basis" by auto
   991   have "{x::'a. x\<bullet>i \<le> a} = UNIV - {x::'a. a < x\<bullet>i}" by auto
   991   have "{x::'a. x\<bullet>i \<le> a} = UNIV - {x::'a. a < x\<bullet>i}" by auto
   992   also have *: "{x::'a. a < x\<bullet>i} =
   992   also have *: "{x::'a. a < x\<bullet>i} =
   993       (\<Union>k::nat. {x. (\<Sum>n\<in>Basis. (if n = i then a else -real k) *\<^sub>R n) <e x})" using i
   993       (\<Union>k::nat. {x. (\<Sum>n\<in>Basis. (if n = i then a else -real k) *\<^sub>R n) <e x})" using i
   994   proof (safe, simp_all add: eucl_less_def split: split_if_asm)
   994   proof (safe, simp_all add: eucl_less_def split: if_split_asm)
   995     fix x :: 'a
   995     fix x :: 'a
   996     from reals_Archimedean2[of "Max ((\<lambda>i. -x\<bullet>i)`Basis)"]
   996     from reals_Archimedean2[of "Max ((\<lambda>i. -x\<bullet>i)`Basis)"]
   997     guess k::nat .. note k = this
   997     guess k::nat .. note k = this
   998     { fix i :: 'a assume "i \<in> Basis"
   998     { fix i :: 'a assume "i \<in> Basis"
   999       then have "-x\<bullet>i < real k"
   999       then have "-x\<bullet>i < real k"
  1015 proof (rule borel_eq_sigmaI4[OF borel_eq_halfspace_ge])
  1015 proof (rule borel_eq_sigmaI4[OF borel_eq_halfspace_ge])
  1016   fix a :: real and i :: 'a assume "(a, i) \<in> UNIV \<times> Basis"
  1016   fix a :: real and i :: 'a assume "(a, i) \<in> UNIV \<times> Basis"
  1017   then have i: "i \<in> Basis" by auto
  1017   then have i: "i \<in> Basis" by auto
  1018   have "{x::'a. a \<le> x\<bullet>i} = UNIV - {x::'a. x\<bullet>i < a}" by auto
  1018   have "{x::'a. a \<le> x\<bullet>i} = UNIV - {x::'a. x\<bullet>i < a}" by auto
  1019   also have *: "{x::'a. x\<bullet>i < a} = (\<Union>k::nat. {x. x <e (\<Sum>n\<in>Basis. (if n = i then a else real k) *\<^sub>R n)})" using \<open>i\<in> Basis\<close>
  1019   also have *: "{x::'a. x\<bullet>i < a} = (\<Union>k::nat. {x. x <e (\<Sum>n\<in>Basis. (if n = i then a else real k) *\<^sub>R n)})" using \<open>i\<in> Basis\<close>
  1020   proof (safe, simp_all add: eucl_less_def split: split_if_asm)
  1020   proof (safe, simp_all add: eucl_less_def split: if_split_asm)
  1021     fix x :: 'a
  1021     fix x :: 'a
  1022     from reals_Archimedean2[of "Max ((\<lambda>i. x\<bullet>i)`Basis)"]
  1022     from reals_Archimedean2[of "Max ((\<lambda>i. x\<bullet>i)`Basis)"]
  1023     guess k::nat .. note k = this
  1023     guess k::nat .. note k = this
  1024     { fix i :: 'a assume "i \<in> Basis"
  1024     { fix i :: 'a assume "i \<in> Basis"
  1025       then have "x\<bullet>i < real k"
  1025       then have "x\<bullet>i < real k"
  1452   let ?G = "\<lambda>y x. if g x = \<infinity> then H y \<infinity> else if g x = -\<infinity> then H y (-\<infinity>) else H y (ereal (real_of_ereal (g x)))"
  1452   let ?G = "\<lambda>y x. if g x = \<infinity> then H y \<infinity> else if g x = -\<infinity> then H y (-\<infinity>) else H y (ereal (real_of_ereal (g x)))"
  1453   let ?F = "\<lambda>x. if f x = \<infinity> then ?G \<infinity> x else if f x = -\<infinity> then ?G (-\<infinity>) x else ?G (ereal (real_of_ereal (f x))) x"
  1453   let ?F = "\<lambda>x. if f x = \<infinity> then ?G \<infinity> x else if f x = -\<infinity> then ?G (-\<infinity>) x else ?G (ereal (real_of_ereal (f x))) x"
  1454   { fix x have "H (f x) (g x) = ?F x" by (cases "f x" "g x" rule: ereal2_cases) auto }
  1454   { fix x have "H (f x) (g x) = ?F x" by (cases "f x" "g x" rule: ereal2_cases) auto }
  1455   note * = this
  1455   note * = this
  1456   from assms show ?thesis
  1456   from assms show ?thesis
  1457     by (subst *) (simp del: space_borel split del: split_if)
  1457     by (subst *) (simp del: space_borel split del: if_split)
  1458 qed
  1458 qed
  1459 
  1459 
  1460 lemma borel_measurable_ereal_iff:
  1460 lemma borel_measurable_ereal_iff:
  1461   shows "(\<lambda>x. ereal (f x)) \<in> borel_measurable M \<longleftrightarrow> f \<in> borel_measurable M"
  1461   shows "(\<lambda>x. ereal (f x)) \<in> borel_measurable M \<longleftrightarrow> f \<in> borel_measurable M"
  1462 proof
  1462 proof