src/HOL/Analysis/Borel_Space.thy
changeset 69260 0a9688695a1b
parent 69022 e2858770997a
child 69517 dc20f278e8f3
equal deleted inserted replaced
69259:438e1a11445f 69260:0a9688695a1b
   809 
   809 
   810 lemma%important borel_measurable_SUP[measurable (raw)]:
   810 lemma%important borel_measurable_SUP[measurable (raw)]:
   811   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> _::{complete_linorder, linorder_topology, second_countable_topology}"
   811   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> _::{complete_linorder, linorder_topology, second_countable_topology}"
   812   assumes [simp]: "countable I"
   812   assumes [simp]: "countable I"
   813   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   813   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   814   shows "(\<lambda>x. SUP i:I. F i x) \<in> borel_measurable M"
   814   shows "(\<lambda>x. SUP i\<in>I. F i x) \<in> borel_measurable M"
   815   by%unimportant (rule borel_measurableI_greater) (simp add: less_SUP_iff)
   815   by%unimportant (rule borel_measurableI_greater) (simp add: less_SUP_iff)
   816 
   816 
   817 lemma%unimportant borel_measurable_INF[measurable (raw)]:
   817 lemma%unimportant borel_measurable_INF[measurable (raw)]:
   818   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> _::{complete_linorder, linorder_topology, second_countable_topology}"
   818   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> _::{complete_linorder, linorder_topology, second_countable_topology}"
   819   assumes [simp]: "countable I"
   819   assumes [simp]: "countable I"
   820   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   820   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   821   shows "(\<lambda>x. INF i:I. F i x) \<in> borel_measurable M"
   821   shows "(\<lambda>x. INF i\<in>I. F i x) \<in> borel_measurable M"
   822   by (rule borel_measurableI_less) (simp add: INF_less_iff)
   822   by (rule borel_measurableI_less) (simp add: INF_less_iff)
   823 
   823 
   824 lemma%unimportant borel_measurable_cSUP[measurable (raw)]:
   824 lemma%unimportant borel_measurable_cSUP[measurable (raw)]:
   825   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> 'a::{conditionally_complete_linorder, linorder_topology, second_countable_topology}"
   825   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> 'a::{conditionally_complete_linorder, linorder_topology, second_countable_topology}"
   826   assumes [simp]: "countable I"
   826   assumes [simp]: "countable I"
   827   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   827   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   828   assumes bdd: "\<And>x. x \<in> space M \<Longrightarrow> bdd_above ((\<lambda>i. F i x) ` I)"
   828   assumes bdd: "\<And>x. x \<in> space M \<Longrightarrow> bdd_above ((\<lambda>i. F i x) ` I)"
   829   shows "(\<lambda>x. SUP i:I. F i x) \<in> borel_measurable M"
   829   shows "(\<lambda>x. SUP i\<in>I. F i x) \<in> borel_measurable M"
   830 proof cases
   830 proof cases
   831   assume "I = {}" then show ?thesis
   831   assume "I = {}" then show ?thesis
   832     unfolding \<open>I = {}\<close> image_empty by simp
   832     unfolding \<open>I = {}\<close> image_empty by simp
   833 next
   833 next
   834   assume "I \<noteq> {}"
   834   assume "I \<noteq> {}"
   835   show ?thesis
   835   show ?thesis
   836   proof (rule borel_measurableI_le)
   836   proof (rule borel_measurableI_le)
   837     fix y
   837     fix y
   838     have "{x \<in> space M. \<forall>i\<in>I. F i x \<le> y} \<in> sets M"
   838     have "{x \<in> space M. \<forall>i\<in>I. F i x \<le> y} \<in> sets M"
   839       by measurable
   839       by measurable
   840     also have "{x \<in> space M. \<forall>i\<in>I. F i x \<le> y} = {x \<in> space M. (SUP i:I. F i x) \<le> y}"
   840     also have "{x \<in> space M. \<forall>i\<in>I. F i x \<le> y} = {x \<in> space M. (SUP i\<in>I. F i x) \<le> y}"
   841       by (simp add: cSUP_le_iff \<open>I \<noteq> {}\<close> bdd cong: conj_cong)
   841       by (simp add: cSUP_le_iff \<open>I \<noteq> {}\<close> bdd cong: conj_cong)
   842     finally show "{x \<in> space M. (SUP i:I. F i x) \<le>  y} \<in> sets M"  .
   842     finally show "{x \<in> space M. (SUP i\<in>I. F i x) \<le>  y} \<in> sets M"  .
   843   qed
   843   qed
   844 qed
   844 qed
   845 
   845 
   846 lemma%important borel_measurable_cINF[measurable (raw)]:
   846 lemma%important borel_measurable_cINF[measurable (raw)]:
   847   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> 'a::{conditionally_complete_linorder, linorder_topology, second_countable_topology}"
   847   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> 'a::{conditionally_complete_linorder, linorder_topology, second_countable_topology}"
   848   assumes [simp]: "countable I"
   848   assumes [simp]: "countable I"
   849   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   849   assumes [measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
   850   assumes bdd: "\<And>x. x \<in> space M \<Longrightarrow> bdd_below ((\<lambda>i. F i x) ` I)"
   850   assumes bdd: "\<And>x. x \<in> space M \<Longrightarrow> bdd_below ((\<lambda>i. F i x) ` I)"
   851   shows "(\<lambda>x. INF i:I. F i x) \<in> borel_measurable M"
   851   shows "(\<lambda>x. INF i\<in>I. F i x) \<in> borel_measurable M"
   852 proof%unimportant cases
   852 proof%unimportant cases
   853   assume "I = {}" then show ?thesis
   853   assume "I = {}" then show ?thesis
   854     unfolding \<open>I = {}\<close> image_empty by simp
   854     unfolding \<open>I = {}\<close> image_empty by simp
   855 next
   855 next
   856   assume "I \<noteq> {}"
   856   assume "I \<noteq> {}"
   857   show ?thesis
   857   show ?thesis
   858   proof (rule borel_measurableI_ge)
   858   proof (rule borel_measurableI_ge)
   859     fix y
   859     fix y
   860     have "{x \<in> space M. \<forall>i\<in>I. y \<le> F i x} \<in> sets M"
   860     have "{x \<in> space M. \<forall>i\<in>I. y \<le> F i x} \<in> sets M"
   861       by measurable
   861       by measurable
   862     also have "{x \<in> space M. \<forall>i\<in>I. y \<le> F i x} = {x \<in> space M. y \<le> (INF i:I. F i x)}"
   862     also have "{x \<in> space M. \<forall>i\<in>I. y \<le> F i x} = {x \<in> space M. y \<le> (INF i\<in>I. F i x)}"
   863       by (simp add: le_cINF_iff \<open>I \<noteq> {}\<close> bdd cong: conj_cong)
   863       by (simp add: le_cINF_iff \<open>I \<noteq> {}\<close> bdd cong: conj_cong)
   864     finally show "{x \<in> space M. y \<le> (INF i:I. F i x)} \<in> sets M"  .
   864     finally show "{x \<in> space M. y \<le> (INF i\<in>I. F i x)} \<in> sets M"  .
   865   qed
   865   qed
   866 qed
   866 qed
   867 
   867 
   868 lemma%unimportant borel_measurable_lfp[consumes 1, case_names continuity step]:
   868 lemma%unimportant borel_measurable_lfp[consumes 1, case_names continuity step]:
   869   fixes F :: "('a \<Rightarrow> 'b) \<Rightarrow> ('a \<Rightarrow> 'b::{complete_linorder, linorder_topology, second_countable_topology})"
   869   fixes F :: "('a \<Rightarrow> 'b) \<Rightarrow> ('a \<Rightarrow> 'b::{complete_linorder, linorder_topology, second_countable_topology})"
  1956 
  1956 
  1957 lemma%important borel_measurable_cINF_real[measurable (raw)]:
  1957 lemma%important borel_measurable_cINF_real[measurable (raw)]:
  1958   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> real"
  1958   fixes F :: "_ \<Rightarrow> _ \<Rightarrow> real"
  1959   assumes [simp]: "countable I"
  1959   assumes [simp]: "countable I"
  1960   assumes F[measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
  1960   assumes F[measurable]: "\<And>i. i \<in> I \<Longrightarrow> F i \<in> borel_measurable M"
  1961   shows "(\<lambda>x. INF i:I. F i x) \<in> borel_measurable M"
  1961   shows "(\<lambda>x. INF i\<in>I. F i x) \<in> borel_measurable M"
  1962 proof%unimportant (rule measurable_piecewise_restrict)
  1962 proof%unimportant (rule measurable_piecewise_restrict)
  1963   let ?\<Omega> = "{x\<in>space M. bdd_below ((\<lambda>i. F i x)`I)}"
  1963   let ?\<Omega> = "{x\<in>space M. bdd_below ((\<lambda>i. F i x)`I)}"
  1964   show "countable {?\<Omega>, - ?\<Omega>}" "space M \<subseteq> \<Union>{?\<Omega>, - ?\<Omega>}" "\<And>X. X \<in> {?\<Omega>, - ?\<Omega>} \<Longrightarrow> X \<inter> space M \<in> sets M"
  1964   show "countable {?\<Omega>, - ?\<Omega>}" "space M \<subseteq> \<Union>{?\<Omega>, - ?\<Omega>}" "\<And>X. X \<in> {?\<Omega>, - ?\<Omega>} \<Longrightarrow> X \<inter> space M \<in> sets M"
  1965     by auto
  1965     by auto
  1966   fix X assume "X \<in> {?\<Omega>, - ?\<Omega>}" then show "(\<lambda>x. INF i:I. F i x) \<in> borel_measurable (restrict_space M X)"
  1966   fix X assume "X \<in> {?\<Omega>, - ?\<Omega>}" then show "(\<lambda>x. INF i\<in>I. F i x) \<in> borel_measurable (restrict_space M X)"
  1967   proof safe
  1967   proof safe
  1968     show "(\<lambda>x. INF i:I. F i x) \<in> borel_measurable (restrict_space M ?\<Omega>)"
  1968     show "(\<lambda>x. INF i\<in>I. F i x) \<in> borel_measurable (restrict_space M ?\<Omega>)"
  1969       by (intro borel_measurable_cINF measurable_restrict_space1 F)
  1969       by (intro borel_measurable_cINF measurable_restrict_space1 F)
  1970          (auto simp: space_restrict_space)
  1970          (auto simp: space_restrict_space)
  1971     show "(\<lambda>x. INF i:I. F i x) \<in> borel_measurable (restrict_space M (-?\<Omega>))"
  1971     show "(\<lambda>x. INF i\<in>I. F i x) \<in> borel_measurable (restrict_space M (-?\<Omega>))"
  1972     proof (subst measurable_cong)
  1972     proof (subst measurable_cong)
  1973       fix x assume "x \<in> space (restrict_space M (-?\<Omega>))"
  1973       fix x assume "x \<in> space (restrict_space M (-?\<Omega>))"
  1974       then have "\<not> (\<forall>i\<in>I. - F i x \<le> y)" for y
  1974       then have "\<not> (\<forall>i\<in>I. - F i x \<le> y)" for y
  1975         by (auto simp: space_restrict_space bdd_above_def bdd_above_uminus[symmetric])
  1975         by (auto simp: space_restrict_space bdd_above_def bdd_above_uminus[symmetric])
  1976       then show "(INF i:I. F i x) = - (THE x. False)"
  1976       then show "(INF i\<in>I. F i x) = - (THE x. False)"
  1977         by (auto simp: space_restrict_space Inf_real_def Sup_real_def Least_def simp del: Set.ball_simps(10))
  1977         by (auto simp: space_restrict_space Inf_real_def Sup_real_def Least_def simp del: Set.ball_simps(10))
  1978     qed simp
  1978     qed simp
  1979   qed
  1979   qed
  1980 qed
  1980 qed
  1981 
  1981