src/HOL/Probability/Borel_Space.thy
changeset 63332 f164526d8727
parent 63167 0909deb8059b
child 63389 5d8607370faf
equal deleted inserted replaced
63331:247eac9758dd 63332:f164526d8727
    12 begin
    12 begin
    13 
    13 
    14 lemma sets_Collect_eventually_sequentially[measurable]:
    14 lemma sets_Collect_eventually_sequentially[measurable]:
    15   "(\<And>i. {x\<in>space M. P x i} \<in> sets M) \<Longrightarrow> {x\<in>space M. eventually (P x) sequentially} \<in> sets M"
    15   "(\<And>i. {x\<in>space M. P x i} \<in> sets M) \<Longrightarrow> {x\<in>space M. eventually (P x) sequentially} \<in> sets M"
    16   unfolding eventually_sequentially by simp
    16   unfolding eventually_sequentially by simp
    17 
       
    18 lemma open_Collect_less:
       
    19   fixes f g :: "'i::topological_space \<Rightarrow> 'a :: {dense_linorder, linorder_topology}"
       
    20   assumes "continuous_on UNIV f"
       
    21   assumes "continuous_on UNIV g"
       
    22   shows "open {x. f x < g x}"
       
    23 proof -
       
    24   have "open (\<Union>y. {x \<in> UNIV. f x \<in> {..< y}} \<inter> {x \<in> UNIV. g x \<in> {y <..}})" (is "open ?X")
       
    25     by (intro open_UN ballI open_Int continuous_open_preimage assms) auto
       
    26   also have "?X = {x. f x < g x}"
       
    27     by (auto intro: dense)
       
    28   finally show ?thesis .
       
    29 qed
       
    30 
       
    31 lemma closed_Collect_le:
       
    32   fixes f g :: "'i::topological_space \<Rightarrow> 'a :: {dense_linorder, linorder_topology}"
       
    33   assumes f: "continuous_on UNIV f"
       
    34   assumes g: "continuous_on UNIV g"
       
    35   shows "closed {x. f x \<le> g x}"
       
    36   using open_Collect_less[OF g f] unfolding not_less[symmetric] Collect_neg_eq open_closed .
       
    37 
    17 
    38 lemma topological_basis_trivial: "topological_basis {A. open A}"
    18 lemma topological_basis_trivial: "topological_basis {A. open A}"
    39   by (auto simp: topological_basis_def)
    19   by (auto simp: topological_basis_def)
    40 
    20 
    41 lemma open_prod_generated: "open = generate_topology {A \<times> B | A B. open A \<and> open B}"
    21 lemma open_prod_generated: "open = generate_topology {A \<times> B | A B. open A \<and> open B}"
   792   fixes f :: "'a \<Rightarrow> 'b::{linorder_topology, second_countable_topology}"
   772   fixes f :: "'a \<Rightarrow> 'b::{linorder_topology, second_countable_topology}"
   793   shows "(\<And>y. {x\<in>space M. y \<le> f x} \<in> sets M) \<Longrightarrow> f \<in> borel_measurable M"
   773   shows "(\<And>y. {x\<in>space M. y \<le> f x} \<in> sets M) \<Longrightarrow> f \<in> borel_measurable M"
   794   by (rule borel_measurableI_less) (auto simp: not_le[symmetric])
   774   by (rule borel_measurableI_less) (auto simp: not_le[symmetric])
   795 
   775 
   796 lemma borel_measurable_less[measurable]:
   776 lemma borel_measurable_less[measurable]:
   797   fixes f :: "'a \<Rightarrow> 'b::{second_countable_topology, dense_linorder, linorder_topology}"
   777   fixes f :: "'a \<Rightarrow> 'b::{second_countable_topology, linorder_topology}"
   798   assumes "f \<in> borel_measurable M"
   778   assumes "f \<in> borel_measurable M"
   799   assumes "g \<in> borel_measurable M"
   779   assumes "g \<in> borel_measurable M"
   800   shows "{w \<in> space M. f w < g w} \<in> sets M"
   780   shows "{w \<in> space M. f w < g w} \<in> sets M"
   801 proof -
   781 proof -
   802   have "{w \<in> space M. f w < g w} = (\<lambda>x. (f x, g x)) -` {x. fst x < snd x} \<inter> space M"
   782   have "{w \<in> space M. f w < g w} = (\<lambda>x. (f x, g x)) -` {x. fst x < snd x} \<inter> space M"
   806               continuous_intros)
   786               continuous_intros)
   807   finally show ?thesis .
   787   finally show ?thesis .
   808 qed
   788 qed
   809 
   789 
   810 lemma
   790 lemma
   811   fixes f :: "'a \<Rightarrow> 'b::{second_countable_topology, dense_linorder, linorder_topology}"
   791   fixes f :: "'a \<Rightarrow> 'b::{second_countable_topology, linorder_topology}"
   812   assumes f[measurable]: "f \<in> borel_measurable M"
   792   assumes f[measurable]: "f \<in> borel_measurable M"
   813   assumes g[measurable]: "g \<in> borel_measurable M"
   793   assumes g[measurable]: "g \<in> borel_measurable M"
   814   shows borel_measurable_le[measurable]: "{w \<in> space M. f w \<le> g w} \<in> sets M"
   794   shows borel_measurable_le[measurable]: "{w \<in> space M. f w \<le> g w} \<in> sets M"
   815     and borel_measurable_eq[measurable]: "{w \<in> space M. f w = g w} \<in> sets M"
   795     and borel_measurable_eq[measurable]: "{w \<in> space M. f w = g w} \<in> sets M"
   816     and borel_measurable_neq: "{w \<in> space M. f w \<noteq> g w} \<in> sets M"
   796     and borel_measurable_neq: "{w \<in> space M. f w \<noteq> g w} \<in> sets M"
   945   shows borel_measurable_liminf: "(\<lambda>x. liminf (\<lambda>i. f i x)) \<in> borel_measurable M"
   925   shows borel_measurable_liminf: "(\<lambda>x. liminf (\<lambda>i. f i x)) \<in> borel_measurable M"
   946     and borel_measurable_limsup: "(\<lambda>x. limsup (\<lambda>i. f i x)) \<in> borel_measurable M"
   926     and borel_measurable_limsup: "(\<lambda>x. limsup (\<lambda>i. f i x)) \<in> borel_measurable M"
   947   unfolding liminf_SUP_INF limsup_INF_SUP using assms by auto
   927   unfolding liminf_SUP_INF limsup_INF_SUP using assms by auto
   948 
   928 
   949 lemma measurable_convergent[measurable (raw)]:
   929 lemma measurable_convergent[measurable (raw)]:
   950   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, dense_linorder, linorder_topology}"
   930   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, linorder_topology}"
   951   assumes [measurable]: "\<And>i. f i \<in> borel_measurable M"
   931   assumes [measurable]: "\<And>i. f i \<in> borel_measurable M"
   952   shows "Measurable.pred M (\<lambda>x. convergent (\<lambda>i. f i x))"
   932   shows "Measurable.pred M (\<lambda>x. convergent (\<lambda>i. f i x))"
   953   unfolding convergent_ereal by measurable
   933   unfolding convergent_ereal by measurable
   954 
   934 
   955 lemma sets_Collect_convergent[measurable]:
   935 lemma sets_Collect_convergent[measurable]:
   956   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, dense_linorder, linorder_topology}"
   936   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, linorder_topology}"
   957   assumes f[measurable]: "\<And>i. f i \<in> borel_measurable M"
   937   assumes f[measurable]: "\<And>i. f i \<in> borel_measurable M"
   958   shows "{x\<in>space M. convergent (\<lambda>i. f i x)} \<in> sets M"
   938   shows "{x\<in>space M. convergent (\<lambda>i. f i x)} \<in> sets M"
   959   by measurable
   939   by measurable
   960 
   940 
   961 lemma borel_measurable_lim[measurable (raw)]:
   941 lemma borel_measurable_lim[measurable (raw)]:
   962   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, dense_linorder, linorder_topology}"
   942   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, linorder_topology}"
   963   assumes [measurable]: "\<And>i. f i \<in> borel_measurable M"
   943   assumes [measurable]: "\<And>i. f i \<in> borel_measurable M"
   964   shows "(\<lambda>x. lim (\<lambda>i. f i x)) \<in> borel_measurable M"
   944   shows "(\<lambda>x. lim (\<lambda>i. f i x)) \<in> borel_measurable M"
   965 proof -
   945 proof -
   966   have "\<And>x. lim (\<lambda>i. f i x) = (if convergent (\<lambda>i. f i x) then limsup (\<lambda>i. f i x) else (THE i. False))"
   946   have "\<And>x. lim (\<lambda>i. f i x) = (if convergent (\<lambda>i. f i x) then limsup (\<lambda>i. f i x) else (THE i. False))"
   967     by (simp add: lim_def convergent_def convergent_limsup_cl)
   947     by (simp add: lim_def convergent_def convergent_limsup_cl)
   968   then show ?thesis
   948   then show ?thesis
   969     by simp
   949     by simp
   970 qed
   950 qed
   971 
   951 
   972 lemma borel_measurable_LIMSEQ_order:
   952 lemma borel_measurable_LIMSEQ_order:
   973   fixes u :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, dense_linorder, linorder_topology}"
   953   fixes u :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, linorder_topology}"
   974   assumes u': "\<And>x. x \<in> space M \<Longrightarrow> (\<lambda>i. u i x) \<longlonglongrightarrow> u' x"
   954   assumes u': "\<And>x. x \<in> space M \<Longrightarrow> (\<lambda>i. u i x) \<longlonglongrightarrow> u' x"
   975   and u: "\<And>i. u i \<in> borel_measurable M"
   955   and u: "\<And>i. u i \<in> borel_measurable M"
   976   shows "u' \<in> borel_measurable M"
   956   shows "u' \<in> borel_measurable M"
   977 proof -
   957 proof -
   978   have "\<And>x. x \<in> space M \<Longrightarrow> u' x = liminf (\<lambda>n. u n x)"
   958   have "\<And>x. x \<in> space M \<Longrightarrow> u' x = liminf (\<lambda>n. u n x)"
   997   assume "finite S"
   977   assume "finite S"
   998   thus ?thesis using assms by induct auto
   978   thus ?thesis using assms by induct auto
   999 qed simp
   979 qed simp
  1000 
   980 
  1001 lemma borel_measurable_suminf_order[measurable (raw)]:
   981 lemma borel_measurable_suminf_order[measurable (raw)]:
  1002   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, dense_linorder, linorder_topology, topological_comm_monoid_add}"
   982   fixes f :: "nat \<Rightarrow> 'a \<Rightarrow> 'b::{complete_linorder, second_countable_topology, linorder_topology, topological_comm_monoid_add}"
  1003   assumes f[measurable]: "\<And>i. f i \<in> borel_measurable M"
   983   assumes f[measurable]: "\<And>i. f i \<in> borel_measurable M"
  1004   shows "(\<lambda>x. suminf (\<lambda>i. f i x)) \<in> borel_measurable M"
   984   shows "(\<lambda>x. suminf (\<lambda>i. f i x)) \<in> borel_measurable M"
  1005   unfolding suminf_def sums_def[abs_def] lim_def[symmetric] by simp
   985   unfolding suminf_def sums_def[abs_def] lim_def[symmetric] by simp
  1006 
   986 
  1007 subsection \<open>Borel spaces on Euclidean spaces\<close>
   987 subsection \<open>Borel spaces on Euclidean spaces\<close>