src/HOL/Analysis/Bochner_Integration.thy
changeset 69683 8b3458ca0762
parent 69652 3417a8f154eb
child 69700 7a92cbec7030
equal deleted inserted replaced
69682:500a7acdccd4 69683:8b3458ca0762
  2199   }
  2199   }
  2200   ultimately have "AE x in M. (\<lambda>n. u (r n) x) \<longlonglongrightarrow> 0" by auto
  2200   ultimately have "AE x in M. (\<lambda>n. u (r n) x) \<longlonglongrightarrow> 0" by auto
  2201   then show ?thesis using \<open>strict_mono r\<close> by auto
  2201   then show ?thesis using \<open>strict_mono r\<close> by auto
  2202 qed
  2202 qed
  2203 
  2203 
  2204 subsection%important \<open>Restricted measure spaces\<close>
  2204 subsection \<open>Restricted measure spaces\<close>
  2205 
  2205 
  2206 lemma integrable_restrict_space:
  2206 lemma integrable_restrict_space:
  2207   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2207   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2208   assumes \<Omega>[simp]: "\<Omega> \<inter> space M \<in> sets M"
  2208   assumes \<Omega>[simp]: "\<Omega> \<inter> space M \<in> sets M"
  2209   shows "integrable (restrict_space M \<Omega>) f \<longleftrightarrow> integrable M (\<lambda>x. indicator \<Omega> x *\<^sub>R f x)"
  2209   shows "integrable (restrict_space M \<Omega>) f \<longleftrightarrow> integrable M (\<lambda>x. indicator \<Omega> x *\<^sub>R f x)"
  2250   have "(\<integral> x. f x \<partial>M) = (\<integral> x. 0 \<partial>M)"
  2250   have "(\<integral> x. f x \<partial>M) = (\<integral> x. 0 \<partial>M)"
  2251     by(rule integral_cong)(simp_all add: assms)
  2251     by(rule integral_cong)(simp_all add: assms)
  2252   thus ?thesis by simp
  2252   thus ?thesis by simp
  2253 qed
  2253 qed
  2254 
  2254 
  2255 subsection%important \<open>Measure spaces with an associated density\<close>
  2255 subsection \<open>Measure spaces with an associated density\<close>
  2256 
  2256 
  2257 lemma integrable_density:
  2257 lemma integrable_density:
  2258   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" and g :: "'a \<Rightarrow> real"
  2258   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" and g :: "'a \<Rightarrow> real"
  2259   assumes [measurable]: "f \<in> borel_measurable M" "g \<in> borel_measurable M"
  2259   assumes [measurable]: "f \<in> borel_measurable M" "g \<in> borel_measurable M"
  2260     and nn: "AE x in M. 0 \<le> g x"
  2260     and nn: "AE x in M. 0 \<le> g x"
  2336   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" and g :: "'a \<Rightarrow> real"
  2336   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" and g :: "'a \<Rightarrow> real"
  2337   shows "f \<in> borel_measurable M \<Longrightarrow> g \<in> borel_measurable M \<Longrightarrow> (AE x in M. 0 \<le> g x) \<Longrightarrow>
  2337   shows "f \<in> borel_measurable M \<Longrightarrow> g \<in> borel_measurable M \<Longrightarrow> (AE x in M. 0 \<le> g x) \<Longrightarrow>
  2338     has_bochner_integral M (\<lambda>x. g x *\<^sub>R f x) x \<Longrightarrow> has_bochner_integral (density M g) f x"
  2338     has_bochner_integral M (\<lambda>x. g x *\<^sub>R f x) x \<Longrightarrow> has_bochner_integral (density M g) f x"
  2339   by (simp add: has_bochner_integral_iff integrable_density integral_density)
  2339   by (simp add: has_bochner_integral_iff integrable_density integral_density)
  2340 
  2340 
  2341 subsection%important \<open>Distributions\<close>
  2341 subsection \<open>Distributions\<close>
  2342 
  2342 
  2343 lemma integrable_distr_eq:
  2343 lemma integrable_distr_eq:
  2344   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2344   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2345   assumes [measurable]: "g \<in> measurable M N" "f \<in> borel_measurable N"
  2345   assumes [measurable]: "g \<in> measurable M N" "f \<in> borel_measurable N"
  2346   shows "integrable (distr M N g) f \<longleftrightarrow> integrable M (\<lambda>x. f (g x))"
  2346   shows "integrable (distr M N g) f \<longleftrightarrow> integrable M (\<lambda>x. f (g x))"
  2408   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2408   fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2409   shows "f \<in> borel_measurable N \<Longrightarrow> g \<in> measurable M N \<Longrightarrow>
  2409   shows "f \<in> borel_measurable N \<Longrightarrow> g \<in> measurable M N \<Longrightarrow>
  2410     has_bochner_integral M (\<lambda>x. f (g x)) x \<Longrightarrow> has_bochner_integral (distr M N g) f x"
  2410     has_bochner_integral M (\<lambda>x. f (g x)) x \<Longrightarrow> has_bochner_integral (distr M N g) f x"
  2411   by (simp add: has_bochner_integral_iff integrable_distr_eq integral_distr)
  2411   by (simp add: has_bochner_integral_iff integrable_distr_eq integral_distr)
  2412 
  2412 
  2413 subsection%important \<open>Lebesgue integration on \<^const>\<open>count_space\<close>\<close>
  2413 subsection \<open>Lebesgue integration on \<^const>\<open>count_space\<close>\<close>
  2414 
  2414 
  2415 lemma integrable_count_space:
  2415 lemma integrable_count_space:
  2416   fixes f :: "'a \<Rightarrow> 'b::{banach,second_countable_topology}"
  2416   fixes f :: "'a \<Rightarrow> 'b::{banach,second_countable_topology}"
  2417   shows "finite X \<Longrightarrow> integrable (count_space X) f"
  2417   shows "finite X \<Longrightarrow> integrable (count_space X) f"
  2418   by (auto simp: nn_integral_count_space integrable_iff_bounded)
  2418   by (auto simp: nn_integral_count_space integrable_iff_bounded)
  2495 lemma has_bochner_integral_count_space_nat:
  2495 lemma has_bochner_integral_count_space_nat:
  2496   fixes f :: "nat \<Rightarrow> _::{banach,second_countable_topology}"
  2496   fixes f :: "nat \<Rightarrow> _::{banach,second_countable_topology}"
  2497   shows "has_bochner_integral (count_space UNIV) f x \<Longrightarrow> f sums x"
  2497   shows "has_bochner_integral (count_space UNIV) f x \<Longrightarrow> f sums x"
  2498   unfolding has_bochner_integral_iff by (auto intro!: sums_integral_count_space_nat)
  2498   unfolding has_bochner_integral_iff by (auto intro!: sums_integral_count_space_nat)
  2499 
  2499 
  2500 subsection%important \<open>Point measure\<close>
  2500 subsection \<open>Point measure\<close>
  2501 
  2501 
  2502 lemma lebesgue_integral_point_measure_finite:
  2502 lemma lebesgue_integral_point_measure_finite:
  2503   fixes g :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2503   fixes g :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}"
  2504   shows "finite A \<Longrightarrow> (\<And>a. a \<in> A \<Longrightarrow> 0 \<le> f a) \<Longrightarrow>
  2504   shows "finite A \<Longrightarrow> (\<And>a. a \<in> A \<Longrightarrow> 0 \<le> f a) \<Longrightarrow>
  2505     integral\<^sup>L (point_measure A f) g = (\<Sum>a\<in>A. f a *\<^sub>R g a)"
  2505     integral\<^sup>L (point_measure A f) g = (\<Sum>a\<in>A. f a *\<^sub>R g a)"
  2513   apply (auto split: split_max simp: ennreal_neg)
  2513   apply (auto split: split_max simp: ennreal_neg)
  2514   apply (subst integrable_density)
  2514   apply (subst integrable_density)
  2515   apply (auto simp: AE_count_space integrable_count_space)
  2515   apply (auto simp: AE_count_space integrable_count_space)
  2516   done
  2516   done
  2517 
  2517 
  2518 subsection%important \<open>Lebesgue integration on \<^const>\<open>null_measure\<close>\<close>
  2518 subsection \<open>Lebesgue integration on \<^const>\<open>null_measure\<close>\<close>
  2519 
  2519 
  2520 lemma has_bochner_integral_null_measure_iff[iff]:
  2520 lemma has_bochner_integral_null_measure_iff[iff]:
  2521   "has_bochner_integral (null_measure M) f 0 \<longleftrightarrow> f \<in> borel_measurable M"
  2521   "has_bochner_integral (null_measure M) f 0 \<longleftrightarrow> f \<in> borel_measurable M"
  2522   by (auto simp add: has_bochner_integral.simps simple_bochner_integral_def[abs_def]
  2522   by (auto simp add: has_bochner_integral.simps simple_bochner_integral_def[abs_def]
  2523            intro!: exI[of _ "\<lambda>n x. 0"] simple_bochner_integrable.intros)
  2523            intro!: exI[of _ "\<lambda>n x. 0"] simple_bochner_integrable.intros)
  2527 
  2527 
  2528 lemma integral_null_measure[simp]: "integral\<^sup>L (null_measure M) f = 0"
  2528 lemma integral_null_measure[simp]: "integral\<^sup>L (null_measure M) f = 0"
  2529   by (cases "integrable (null_measure M) f")
  2529   by (cases "integrable (null_measure M) f")
  2530      (auto simp add: not_integrable_integral_eq has_bochner_integral_integral_eq)
  2530      (auto simp add: not_integrable_integral_eq has_bochner_integral_integral_eq)
  2531 
  2531 
  2532 subsection%important \<open>Legacy lemmas for the real-valued Lebesgue integral\<close>
  2532 subsection \<open>Legacy lemmas for the real-valued Lebesgue integral\<close>
  2533 theorem real_lebesgue_integral_def:
  2533 theorem real_lebesgue_integral_def:
  2534   assumes f[measurable]: "integrable M f"
  2534   assumes f[measurable]: "integrable M f"
  2535   shows "integral\<^sup>L M f = enn2real (\<integral>\<^sup>+x. f x \<partial>M) - enn2real (\<integral>\<^sup>+x. ennreal (- f x) \<partial>M)"
  2535   shows "integral\<^sup>L M f = enn2real (\<integral>\<^sup>+x. f x \<partial>M) - enn2real (\<integral>\<^sup>+x. ennreal (- f x) \<partial>M)"
  2536 proof -
  2536 proof -
  2537   have "integral\<^sup>L M f = integral\<^sup>L M (\<lambda>x. max 0 (f x) - max 0 (- f x))"
  2537   have "integral\<^sup>L M f = integral\<^sup>L M (\<lambda>x. max 0 (f x) - max 0 (- f x))"
  2837     by (rule has_bochner_integral_monotone_convergence) fact+
  2837     by (rule has_bochner_integral_monotone_convergence) fact+
  2838   then show "integrable M f" "integral\<^sup>L M f = x"
  2838   then show "integrable M f" "integral\<^sup>L M f = x"
  2839     by (auto simp: _has_bochner_integral_iff)
  2839     by (auto simp: _has_bochner_integral_iff)
  2840 qed
  2840 qed
  2841 
  2841 
  2842 subsection%important \<open>Product measure\<close>
  2842 subsection \<open>Product measure\<close>
  2843 
  2843 
  2844 lemma (in sigma_finite_measure) borel_measurable_lebesgue_integrable[measurable (raw)]:
  2844 lemma (in sigma_finite_measure) borel_measurable_lebesgue_integrable[measurable (raw)]:
  2845   fixes f :: "_ \<Rightarrow> _ \<Rightarrow> _::{banach, second_countable_topology}"
  2845   fixes f :: "_ \<Rightarrow> _ \<Rightarrow> _::{banach, second_countable_topology}"
  2846   assumes [measurable]: "case_prod f \<in> borel_measurable (N \<Otimes>\<^sub>M M)"
  2846   assumes [measurable]: "case_prod f \<in> borel_measurable (N \<Otimes>\<^sub>M M)"
  2847   shows "Measurable.pred N (\<lambda>x. integrable M (f x))"
  2847   shows "Measurable.pred N (\<lambda>x. integrable M (f x))"