src/HOL/Analysis/Bochner_Integration.thy
changeset 63886 685fb01256af
parent 63627 6ddb43c6b711
child 63941 f353674c2528
equal deleted inserted replaced
63885:a6cd18af8bf9 63886:685fb01256af
   185   proof (rule seq)
   185   proof (rule seq)
   186     show U': "U' i \<in> borel_measurable M" "\<And>x. 0 \<le> U' i x" for i
   186     show U': "U' i \<in> borel_measurable M" "\<And>x. 0 \<le> U' i x" for i
   187       using U by (auto
   187       using U by (auto
   188           intro: borel_measurable_simple_function
   188           intro: borel_measurable_simple_function
   189           intro!: borel_measurable_enn2real borel_measurable_times
   189           intro!: borel_measurable_enn2real borel_measurable_times
   190           simp: U'_def zero_le_mult_iff enn2real_nonneg)
   190           simp: U'_def zero_le_mult_iff)
   191     show "incseq U'"
   191     show "incseq U'"
   192       using U(2,3)
   192       using U(2,3)
   193       by (auto simp: incseq_def le_fun_def image_iff eq_commute U'_def indicator_def enn2real_mono)
   193       by (auto simp: incseq_def le_fun_def image_iff eq_commute U'_def indicator_def enn2real_mono)
   194 
   194 
   195     fix x assume x: "x \<in> space M"
   195     fix x assume x: "x \<in> space M"
   210     moreover have "\<And>z. {y. U' i z = y \<and> y \<in> U' i ` space M \<and> z \<in> space M} = (if z \<in> space M then {U' i z} else {})"
   210     moreover have "\<And>z. {y. U' i z = y \<and> y \<in> U' i ` space M \<and> z \<in> space M} = (if z \<in> space M then {U' i z} else {})"
   211       by auto
   211       by auto
   212     ultimately have U': "(\<lambda>z. \<Sum>y\<in>U' i`space M. y * indicator {x\<in>space M. U' i x = y} z) = U' i"
   212     ultimately have U': "(\<lambda>z. \<Sum>y\<in>U' i`space M. y * indicator {x\<in>space M. U' i x = y} z) = U' i"
   213       by (simp add: U'_def fun_eq_iff)
   213       by (simp add: U'_def fun_eq_iff)
   214     have "\<And>x. x \<in> U' i ` space M \<Longrightarrow> 0 \<le> x"
   214     have "\<And>x. x \<in> U' i ` space M \<Longrightarrow> 0 \<le> x"
   215       by (auto simp: U'_def enn2real_nonneg)
   215       by (auto simp: U'_def)
   216     with fin have "P (\<lambda>z. \<Sum>y\<in>U' i`space M. y * indicator {x\<in>space M. U' i x = y} z)"
   216     with fin have "P (\<lambda>z. \<Sum>y\<in>U' i`space M. y * indicator {x\<in>space M. U' i x = y} z)"
   217     proof induct
   217     proof induct
   218       case empty from set[of "{}"] show ?case
   218       case empty from set[of "{}"] show ?case
   219         by (simp add: indicator_def[abs_def])
   219         by (simp add: indicator_def[abs_def])
   220     next
   220     next
   864   assumes \<Omega>: "\<Omega> \<inter> space M \<in> sets M"
   864   assumes \<Omega>: "\<Omega> \<inter> space M \<in> sets M"
   865   shows "simple_bochner_integrable (restrict_space M \<Omega>) f \<longleftrightarrow>
   865   shows "simple_bochner_integrable (restrict_space M \<Omega>) f \<longleftrightarrow>
   866     simple_bochner_integrable M (\<lambda>x. indicator \<Omega> x *\<^sub>R f x)"
   866     simple_bochner_integrable M (\<lambda>x. indicator \<Omega> x *\<^sub>R f x)"
   867   by (simp add: simple_bochner_integrable.simps space_restrict_space
   867   by (simp add: simple_bochner_integrable.simps space_restrict_space
   868     simple_function_restrict_space[OF \<Omega>] emeasure_restrict_space[OF \<Omega>] Collect_restrict
   868     simple_function_restrict_space[OF \<Omega>] emeasure_restrict_space[OF \<Omega>] Collect_restrict
   869     indicator_eq_0_iff conj_ac)
   869     indicator_eq_0_iff conj_left_commute)
   870 
   870 
   871 lemma simple_bochner_integral_restrict_space:
   871 lemma simple_bochner_integral_restrict_space:
   872   fixes f :: "_ \<Rightarrow> 'b::real_normed_vector"
   872   fixes f :: "_ \<Rightarrow> 'b::real_normed_vector"
   873   assumes \<Omega>: "\<Omega> \<inter> space M \<in> sets M"
   873   assumes \<Omega>: "\<Omega> \<inter> space M \<in> sets M"
   874   assumes f: "simple_bochner_integrable (restrict_space M \<Omega>) f"
   874   assumes f: "simple_bochner_integrable (restrict_space M \<Omega>) f"
  1622       have "integrable M (U i)" for i
  1622       have "integrable M (U i)" for i
  1623         using seq.prems by (rule integrable_bound) (insert U_le seq, auto)
  1623         using seq.prems by (rule integrable_bound) (insert U_le seq, auto)
  1624       with seq show "\<exists>N. \<forall>n\<ge>N. 0 \<le> integral\<^sup>L M (U n)"
  1624       with seq show "\<exists>N. \<forall>n\<ge>N. 0 \<le> integral\<^sup>L M (U n)"
  1625         by auto
  1625         by auto
  1626     qed
  1626     qed
  1627   qed (auto simp: measure_nonneg integrable_mult_left_iff)
  1627   qed (auto simp: integrable_mult_left_iff)
  1628   also have "\<dots> = integral\<^sup>L M f"
  1628   also have "\<dots> = integral\<^sup>L M f"
  1629     using nonneg by (auto intro!: integral_cong_AE)
  1629     using nonneg by (auto intro!: integral_cong_AE)
  1630   finally show ?thesis .
  1630   finally show ?thesis .
  1631 qed (simp add: not_integrable_integral_eq)
  1631 qed (simp add: not_integrable_integral_eq)
  1632 
  1632 
  2464   assumes [measurable]: "f \<in> borel_measurable M"
  2464   assumes [measurable]: "f \<in> borel_measurable M"
  2465   assumes ae: "AE x in M. f x \<le> ennreal B" "0 \<le> B"
  2465   assumes ae: "AE x in M. f x \<le> ennreal B" "0 \<le> B"
  2466   shows "ennreal (\<integral>x. enn2real (f x) \<partial>M) = (\<integral>\<^sup>+x. f x \<partial>M)"
  2466   shows "ennreal (\<integral>x. enn2real (f x) \<partial>M) = (\<integral>\<^sup>+x. f x \<partial>M)"
  2467 proof (subst nn_integral_eq_integral[symmetric])
  2467 proof (subst nn_integral_eq_integral[symmetric])
  2468   show "integrable M (\<lambda>x. enn2real (f x))"
  2468   show "integrable M (\<lambda>x. enn2real (f x))"
  2469     using ae by (intro integrable_const_bound[where B=B]) (auto simp: enn2real_leI enn2real_nonneg)
  2469     using ae by (intro integrable_const_bound[where B=B]) (auto simp: enn2real_leI)
  2470   show "(\<integral>\<^sup>+ x. ennreal (enn2real (f x)) \<partial>M) = integral\<^sup>N M f"
  2470   show "(\<integral>\<^sup>+ x. ennreal (enn2real (f x)) \<partial>M) = integral\<^sup>N M f"
  2471     using ae by (intro nn_integral_cong_AE) (auto simp: le_less_trans[OF _ ennreal_less_top])
  2471     using ae by (intro nn_integral_cong_AE) (auto simp: le_less_trans[OF _ ennreal_less_top])
  2472 qed (auto simp: enn2real_nonneg)
  2472 qed auto
  2473 
  2473 
  2474 lemma (in finite_measure) integral_less_AE:
  2474 lemma (in finite_measure) integral_less_AE:
  2475   fixes X Y :: "'a \<Rightarrow> real"
  2475   fixes X Y :: "'a \<Rightarrow> real"
  2476   assumes int: "integrable M X" "integrable M Y"
  2476   assumes int: "integrable M X" "integrable M Y"
  2477   assumes A: "(emeasure M) A \<noteq> 0" "A \<in> sets M" "AE x in M. x \<in> A \<longrightarrow> X x \<noteq> Y x"
  2477   assumes A: "(emeasure M) A \<noteq> 0" "A \<in> sets M" "AE x in M. x \<in> A \<longrightarrow> X x \<noteq> Y x"