measure_theory.integral.bochner
⟷
Mathlib.MeasureTheory.Integral.Bochner
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
@@ -638,24 +638,28 @@ end
variables {α E}
+@[integral_simps]
lemma integral_add (f g : α →₁[μ] E) : integral (f + g) = integral f + integral g :=
begin
simp only [integral],
exact map_add integral_clm f g
end
+@[integral_simps]
lemma integral_neg (f : α →₁[μ] E) : integral (-f) = - integral f :=
begin
simp only [integral],
exact map_neg integral_clm f
end
+@[integral_simps]
lemma integral_sub (f g : α →₁[μ] E) : integral (f - g) = integral f - integral g :=
begin
simp only [integral],
exact map_sub integral_clm f g
end
+@[integral_simps]
lemma integral_smul (c : 𝕜) (f : α →₁[μ] E) : integral (c • f) = c • integral f :=
begin
simp only [integral],
@@ -797,6 +801,7 @@ begin
exact set_to_fun_finset_sum (dominated_fin_meas_additive_weighted_smul _) s hf
end
+@[integral_simps]
lemma integral_neg (f : α → E) : ∫ a, -f a ∂μ = - ∫ a, f a ∂μ :=
begin
simp only [integral, L1.integral],
@@ -817,6 +822,7 @@ lemma integral_sub' (hf : integrable f μ) (hg : integrable g μ) :
∫ a, (f - g) a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
integral_sub hf hg
+@[integral_simps]
lemma integral_smul (c : 𝕜) (f : α → E) :
∫ a, c • (f a) ∂μ = c • ∫ a, f a ∂μ :=
begin
@@ -1664,11 +1670,6 @@ end
end properties
-mk_simp_attribute integral_simps "Simp set for integral rules."
-
-attribute [integral_simps] integral_neg integral_smul L1.integral_add L1.integral_sub
- L1.integral_smul L1.integral_neg
-
section integral_trim
variables {H β γ : Type*} [normed_add_comm_group H]
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1176,11 +1176,11 @@ theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : ∫ a, f a
#align measure_theory.integral_eq_zero_of_ae MeasureTheory.integral_eq_zero_of_ae
-/
-#print MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero /-
+#print MeasureTheory.HasFiniteIntegral.tendsto_setIntegral_nhds_zero /-
/-- If `f` has finite integral, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
-theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
- (hf : HasFiniteIntegral f μ) {l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
+theorem HasFiniteIntegral.tendsto_setIntegral_nhds_zero {ι} {f : α → E} (hf : HasFiniteIntegral f μ)
+ {l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) :=
by
rw [tendsto_zero_iff_norm_tendsto_zero]
@@ -1190,17 +1190,17 @@ theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds
(tendsto_set_lintegral_zero (ne_of_lt hf) hs) (fun i => zero_le _) fun i =>
ennnorm_integral_le_lintegral_ennnorm _
-#align measure_theory.has_finite_integral.tendsto_set_integral_nhds_zero MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero
+#align measure_theory.has_finite_integral.tendsto_set_integral_nhds_zero MeasureTheory.HasFiniteIntegral.tendsto_setIntegral_nhds_zero
-/
-#print MeasureTheory.Integrable.tendsto_set_integral_nhds_zero /-
+#print MeasureTheory.Integrable.tendsto_setIntegral_nhds_zero /-
/-- If `f` is integrable, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
-theorem Integrable.tendsto_set_integral_nhds_zero {ι} {f : α → E} (hf : Integrable f μ)
+theorem Integrable.tendsto_setIntegral_nhds_zero {ι} {f : α → E} (hf : Integrable f μ)
{l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) :=
- hf.2.tendsto_set_integral_nhds_zero hs
-#align measure_theory.integrable.tendsto_set_integral_nhds_zero MeasureTheory.Integrable.tendsto_set_integral_nhds_zero
+ hf.2.tendsto_setIntegral_nhds_zero hs
+#align measure_theory.integrable.tendsto_set_integral_nhds_zero MeasureTheory.Integrable.tendsto_setIntegral_nhds_zero
-/
#print MeasureTheory.tendsto_integral_of_L1 /-
@@ -1991,8 +1991,8 @@ theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f :
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
-/
-#print MeasureTheory.set_integral_dirac' /-
-theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
+#print MeasureTheory.setIntegral_dirac' /-
+theorem setIntegral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
{s : Set α} (hs : MeasurableSet s) [Decidable (a ∈ s)] :
∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 :=
by
@@ -2001,18 +2001,18 @@ theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : Stro
split_ifs
· exact integral_dirac' _ _ hf
· exact integral_zero_measure _
-#align measure_theory.set_integral_dirac' MeasureTheory.set_integral_dirac'
+#align measure_theory.set_integral_dirac' MeasureTheory.setIntegral_dirac'
-/
-#print MeasureTheory.set_integral_dirac /-
-theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
+#print MeasureTheory.setIntegral_dirac /-
+theorem setIntegral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
(s : Set α) [Decidable (a ∈ s)] : ∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 :=
by
rw [restrict_dirac]
split_ifs
· exact integral_dirac _ _
· exact integral_zero_measure _
-#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
+#align measure_theory.set_integral_dirac MeasureTheory.setIntegral_dirac
-/
#print MeasureTheory.mul_meas_ge_le_integral_of_nonneg /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1104,20 +1104,20 @@ theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c •
-/
#print MeasureTheory.integral_mul_left /-
-theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_mul_left {L : Type _} [RCLike L] (r : L) (f : α → L) :
∫ a, r * f a ∂μ = r * ∫ a, f a ∂μ :=
integral_smul r f
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
-/
#print MeasureTheory.integral_mul_right /-
-theorem integral_mul_right {L : Type _} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_mul_right {L : Type _} [RCLike L] (r : L) (f : α → L) :
∫ a, f a * r ∂μ = (∫ a, f a ∂μ) * r := by simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
-/
#print MeasureTheory.integral_div /-
-theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_div {L : Type _} [RCLike L] (r : L) (f : α → L) :
∫ a, f a / r ∂μ = (∫ a, f a ∂μ) / r := by
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
@@ -1792,7 +1792,7 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E}
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
(nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν :=
by
- rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel']
+ rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel_left]
exact ennnorm_integral_le_lintegral_ennnorm _
#align measure_theory.nndist_integral_add_measure_le_lintegral MeasureTheory.nndist_integral_add_measure_le_lintegral
-/
@@ -1831,7 +1831,7 @@ theorem integral_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ :
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
-/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:354:22: unsupported: parse error @ arg 0: next failed, no more args -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:355:22: unsupported: parse error @ arg 0: next failed, no more args -/
#print MeasureTheory.integral_tsum /-
theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
(hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) : ∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ :=
@@ -1849,7 +1849,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
_).tsum_eq.symm
· intro n
trace
- "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:354:22: unsupported: parse error @ arg 0: next failed, no more args"
+ "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:355:22: unsupported: parse error @ arg 0: next failed, no more args"
rfl
· simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
rw [aestronglyMeasurable_iff_aemeasurable]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -385,9 +385,9 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
f.integral μ = ∑ x in s, (μ (f ⁻¹' {x})).toReal • x :=
by
rw [simple_func.integral_eq_sum_filter, Finset.sum_subset hs]
- rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne.def, Classical.not_not] at hx
+ rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne.def, Classical.not_not] at hx
rcases hx with (hx | rfl) <;> [skip; simp]
- rw [simple_func.mem_range] at hx ;
+ rw [simple_func.mem_range] at hx;
rw [preimage_eq_empty] <;> simp [Set.disjoint_singleton_left, hx]
#align measure_theory.simple_func.integral_eq_sum_of_subset MeasureTheory.SimpleFunc.integral_eq_sum_of_subset
-/
@@ -531,7 +531,7 @@ theorem integral_add_measure {ν} (f : α →ₛ E) (hf : Integrable f (μ + ν)
refine'
set_to_simple_func_add_left' (weighted_smul μ) (weighted_smul ν) (weighted_smul (μ + ν))
(fun s hs hμνs => _) hf
- rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, ENNReal.add_ne_top] at hμνs
+ rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, ENNReal.add_ne_top] at hμνs
rw [weighted_smul_add_measure _ _ hμνs.1 hμνs.2]
#align measure_theory.simple_func.integral_add_measure MeasureTheory.SimpleFunc.integral_add_measure
-/
@@ -1396,7 +1396,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
rw [h_min, zero_to_real, _root_.sub_zero]
· rw [integral_undef hfi]
simp_rw [integrable, hfm, has_finite_integral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
- Classical.not_not] at hfi
+ Classical.not_not] at hfi
have : ∫⁻ a : α, ENNReal.ofReal (f a) ∂μ = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ :=
by
refine' lintegral_congr_ae (hf.mono fun a h => _)
@@ -1476,7 +1476,7 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_to_real.ae_strongly_measurable]
· rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
- intro x hx; rw [lt_top_iff_ne_top] at hx ; simp [hx]
+ intro x hx; rw [lt_top_iff_ne_top] at hx; simp [hx]
· exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
-/
@@ -1510,7 +1510,7 @@ theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : ∫ a, f
by
have hf : 0 ≤ᵐ[μ] -f := hf.mono fun a h => by rwa [Pi.neg_apply, Pi.zero_apply, neg_nonneg]
have : 0 ≤ ∫ a, -f a ∂μ := integral_nonneg_of_ae hf
- rwa [integral_neg, neg_nonneg] at this
+ rwa [integral_neg, neg_nonneg] at this
#align measure_theory.integral_nonpos_of_ae MeasureTheory.integral_nonpos_of_ae
-/
@@ -1759,7 +1759,7 @@ theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integ
set_to_fun_congr_measure_of_add_left hν_dfma (dominated_fin_meas_additive_weighted_smul ν) f
hfi]
refine' set_to_fun_add_left' _ _ _ (fun s hs hμνs => _) f
- rw [measure.coe_add, Pi.add_apply, add_lt_top] at hμνs
+ rw [measure.coe_add, Pi.add_apply, add_lt_top] at hμνs
rw [weighted_smul, weighted_smul, weighted_smul, ← add_smul, measure.coe_add, Pi.add_apply,
to_real_add hμνs.1.Ne hμνs.2.Ne]
#align measure_theory.integral_add_measure MeasureTheory.integral_add_measure
@@ -1817,9 +1817,9 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
refine' ⟨measure.sum fun i : ↥(sᶜ : Set ι) => μ i, _⟩
simpa only [← measure.sum_coe_finset] using measure.sum_add_sum_compl (s : Set ι) μ
rw [Metric.mem_ball, ← coe_nndist, NNReal.coe_lt_coe, ← ENNReal.coe_lt_coe, ← hν]
- rw [← hν, integrable_add_measure] at hf
+ rw [← hν, integrable_add_measure] at hf
refine' (nndist_integral_add_measure_le_lintegral hf.1 hf.2).trans_lt _
- rw [← hν, lintegral_add_measure, lintegral_finset_sum_measure] at hs
+ rw [← hν, lintegral_add_measure, lintegral_finset_sum_measure] at hs
exact lt_of_add_lt_add_left hs
#align measure_theory.has_sum_integral_measure MeasureTheory.hasSum_integral_measure
-/
@@ -1839,7 +1839,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) :=
by
- rw [← lintegral_tsum hf''] at hf'
+ rw [← lintegral_tsum hf''] at hf'
refine' (ae_lt_top' (AEMeasurable.ennreal_tsum hf'') hf').mono _
intro x hx
rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
@@ -1907,7 +1907,7 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
simp only [simple_func.approx_on_comp, simple_func.integral_eq, measure.map_apply, hφ,
simple_func.measurable_set_preimage, ← preimage_comp, simple_func.coe_comp]
refine' (Finset.sum_subset (simple_func.range_comp_subset_range _ hφ) fun y _ hy => _).symm
- rw [simple_func.mem_range, ← Set.preimage_singleton_eq_empty, simple_func.coe_comp] at hy
+ rw [simple_func.mem_range, ← Set.preimage_singleton_eq_empty, simple_func.coe_comp] at hy
rw [hy]
simp
#align measure_theory.integral_map_of_strongly_measurable MeasureTheory.integral_map_of_stronglyMeasurable
@@ -2043,7 +2043,7 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
ENNReal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
exact fun _ => measure_ne_top _ _
· have h_lt_top : ∫⁻ a, ‖f a‖₊ ∂μ < ∞ := hf_int.has_finite_integral
- simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
+ simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
convert h_lt_top.ne
ext1 x
rw [abs_of_nonneg (hf_nonneg x)]
@@ -2279,14 +2279,14 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
by
rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, MulZeroClass.mul_zero]
exact le_rfl
- rw [hr, Nonneg.coe_zero] at hf
+ rw [hr, Nonneg.coe_zero] at hf
have hnegf : ∫ x, -f x ∂μ = 0 :=
by
rw [integral_neg, neg_eq_zero]
exact le_antisymm (integral_nonpos_of_ae hf) hfint'
have := (integral_eq_zero_iff_of_nonneg_ae _ hfint.neg).1 hnegf
· filter_upwards [this] with ω hω
- rwa [Pi.neg_apply, Pi.zero_apply, neg_eq_zero] at hω
+ rwa [Pi.neg_apply, Pi.zero_apply, neg_eq_zero] at hω
· filter_upwards [hf] with ω hω
rwa [Pi.zero_apply, Pi.neg_apply, Right.nonneg_neg_iff]
by_cases hμ : is_finite_measure μ
@@ -2299,7 +2299,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
· simp [hr]
· norm_num
haveI := hμ
- rw [integral_eq_integral_pos_part_sub_integral_neg_part hfint, sub_nonneg] at hfint'
+ rw [integral_eq_integral_pos_part_sub_integral_neg_part hfint, sub_nonneg] at hfint'
have hposbdd : ∫ ω, max (f ω) 0 ∂μ ≤ (μ Set.univ).toReal • r :=
by
rw [← integral_const]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -2055,7 +2055,7 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
norms of functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are
conjugate exponents. -/
theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α → E} {p q : ℝ}
- (hpq : p.IsConjugateExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
+ (hpq : p.IsConjExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
∫ a, ‖f a‖ * ‖g a‖ ∂μ ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) :=
by
@@ -2110,7 +2110,7 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
/-- Hölder's inequality for functions `α → ℝ`. The integral of the product of two nonnegative
functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are conjugate
exponents. -/
-theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExponent q) {f g : α → ℝ}
+theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjExponent q) {f g : α → ℝ}
(hf_nonneg : 0 ≤ᵐ[μ] f) (hg_nonneg : 0 ≤ᵐ[μ] g) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
∫ a, f a * g a ∂μ ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -891,7 +891,7 @@ theorem norm_Integral_le_one : ‖Integral‖ ≤ 1 :=
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
calc
‖integral f‖ = ‖Integral f‖ := by simp only [integral]
- _ ≤ ‖Integral‖ * ‖f‖ := (le_op_norm _ _)
+ _ ≤ ‖Integral‖ * ‖f‖ := (le_opNorm _ _)
_ ≤ 1 * ‖f‖ := (mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _)
_ = ‖f‖ := one_mul _
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -395,7 +395,11 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
#print MeasureTheory.SimpleFunc.integral_const /-
@[simp]
theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
- (const α y).integral μ = (μ univ).toReal • y := by classical
+ (const α y).integral μ = (μ univ).toReal • y := by
+ classical calc
+ (const α y).integral μ = ∑ z in {y}, (μ (const α y ⁻¹' {z})).toReal • z :=
+ integral_eq_sum_of_subset <| (filter_subset _ _).trans (range_const_subset _ _)
+ _ = (μ univ).toReal • y := by simp
#align measure_theory.simple_func.integral_const MeasureTheory.SimpleFunc.integral_const
-/
@@ -404,6 +408,18 @@ theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ : Measure α) {s : Set α}
(hs : MeasurableSet s) : (piecewise s hs f 0).integral μ = f.integral (μ.restrict s) := by
classical
+ refine'
+ (integral_eq_sum_of_subset _).trans
+ ((sum_congr rfl fun y hy => _).trans (integral_eq_sum_filter _ _).symm)
+ · intro y hy
+ simp only [mem_filter, mem_range, coe_piecewise, coe_zero, piecewise_eq_indicator,
+ mem_range_indicator] at *
+ rcases hy with ⟨⟨rfl, -⟩ | ⟨x, hxs, rfl⟩, h₀⟩
+ exacts [(h₀ rfl).elim, ⟨Set.mem_range_self _, h₀⟩]
+ · dsimp
+ rw [Set.piecewise_eq_indicator, indicator_preimage_of_not_mem,
+ measure.restrict_apply (f.measurable_set_preimage _)]
+ exact fun h₀ => (mem_filter.1 hy).2 (Eq.symm h₀)
#align measure_theory.simple_func.integral_piecewise_zero MeasureTheory.SimpleFunc.integral_piecewise_zero
-/
@@ -1761,12 +1777,18 @@ theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) : ∫ x, f
#print MeasureTheory.integral_finset_sum_measure /-
theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
- ∫ a, f a ∂∑ i in s, μ i = ∑ i in s, ∫ a, f a ∂μ i := by classical
+ ∫ a, f a ∂∑ i in s, μ i = ∑ i in s, ∫ a, f a ∂μ i := by
+ classical
+ refine' Finset.induction_on' s _ _
+ -- `induction s using finset.induction_on'` fails
+ · simp
+ · intro i t hi ht hit iht
+ simp only [Finset.sum_insert hit, ← iht]
+ exact integral_add_measure (hf _ hi) (integrable_finset_sum_measure.2 fun j hj => hf j (ht hj))
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
-/
#print MeasureTheory.nndist_integral_add_measure_le_lintegral /-
--- `induction s using finset.induction_on'` fails
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
(nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -395,11 +395,7 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
#print MeasureTheory.SimpleFunc.integral_const /-
@[simp]
theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
- (const α y).integral μ = (μ univ).toReal • y := by
- classical calc
- (const α y).integral μ = ∑ z in {y}, (μ (const α y ⁻¹' {z})).toReal • z :=
- integral_eq_sum_of_subset <| (filter_subset _ _).trans (range_const_subset _ _)
- _ = (μ univ).toReal • y := by simp
+ (const α y).integral μ = (μ univ).toReal • y := by classical
#align measure_theory.simple_func.integral_const MeasureTheory.SimpleFunc.integral_const
-/
@@ -408,18 +404,6 @@ theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ : Measure α) {s : Set α}
(hs : MeasurableSet s) : (piecewise s hs f 0).integral μ = f.integral (μ.restrict s) := by
classical
- refine'
- (integral_eq_sum_of_subset _).trans
- ((sum_congr rfl fun y hy => _).trans (integral_eq_sum_filter _ _).symm)
- · intro y hy
- simp only [mem_filter, mem_range, coe_piecewise, coe_zero, piecewise_eq_indicator,
- mem_range_indicator] at *
- rcases hy with ⟨⟨rfl, -⟩ | ⟨x, hxs, rfl⟩, h₀⟩
- exacts [(h₀ rfl).elim, ⟨Set.mem_range_self _, h₀⟩]
- · dsimp
- rw [Set.piecewise_eq_indicator, indicator_preimage_of_not_mem,
- measure.restrict_apply (f.measurable_set_preimage _)]
- exact fun h₀ => (mem_filter.1 hy).2 (Eq.symm h₀)
#align measure_theory.simple_func.integral_piecewise_zero MeasureTheory.SimpleFunc.integral_piecewise_zero
-/
@@ -1777,18 +1761,12 @@ theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) : ∫ x, f
#print MeasureTheory.integral_finset_sum_measure /-
theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
- ∫ a, f a ∂∑ i in s, μ i = ∑ i in s, ∫ a, f a ∂μ i := by
- classical
- refine' Finset.induction_on' s _ _
- -- `induction s using finset.induction_on'` fails
- · simp
- · intro i t hi ht hit iht
- simp only [Finset.sum_insert hit, ← iht]
- exact integral_add_measure (hf _ hi) (integrable_finset_sum_measure.2 fun j hj => hf j (ht hj))
+ ∫ a, f a ∂∑ i in s, μ i = ∑ i in s, ∫ a, f a ∂μ i := by classical
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
-/
#print MeasureTheory.nndist_integral_add_measure_le_lintegral /-
+-- `induction s using finset.induction_on'` fails
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
(nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1590,7 +1590,7 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
rw [← of_real_rpow_of_nonneg (norm_nonneg _) to_real_nonneg, ofReal_norm_eq_coe_nnnorm]
simp only [snorm_eq_lintegral_rpow_nnnorm hp1 hp2, one_div]
rw [integral_eq_lintegral_of_nonneg_ae]; rotate_left
- · exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
+ · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
· exact (hf.ae_strongly_measurable.norm.ae_measurable.pow_const _).AEStronglyMeasurable
rw [A, ← of_real_rpow_of_nonneg to_real_nonneg (inv_nonneg.2 to_real_nonneg), of_real_to_real]
exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).Ne
@@ -2063,9 +2063,9 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae,
integral_eq_lintegral_of_nonneg_ae]
rotate_left
- · exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
+ · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
· exact (hg.1.norm.AEMeasurable.pow aemeasurable_const).AEStronglyMeasurable
- · exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
+ · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
· exact (hf.1.norm.AEMeasurable.pow aemeasurable_const).AEStronglyMeasurable
· exact eventually_of_forall fun x => mul_nonneg (norm_nonneg _) (norm_nonneg _)
· exact hf.1.norm.mul hg.1.norm
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1864,7 +1864,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
filter_upwards [hhh] with a ha
exact ENNReal.coe_tsum (nnreal.summable_coe.mp ha)
· filter_upwards [hhh] with x hx
- exact (summable_of_summable_norm hx).HasSum
+ exact (Summable.of_norm hx).HasSum
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe
@@ -1962,11 +1962,11 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
-/
-#print MeasureTheory.set_integral_eq_subtype /-
-theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → E) : ∫ x in s, f x = ∫ x : s, f x := by rw [← map_comap_subtype_coe hs];
+#print MeasureTheory.integral_subtype /-
+theorem integral_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s) (f : α → E) :
+ ∫ x in s, f x = ∫ x : s, f x := by rw [← map_comap_subtype_coe hs];
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
-#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
+#align measure_theory.set_integral_eq_subtype MeasureTheory.integral_subtype
-/
#print MeasureTheory.integral_dirac' /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2019 Zhouhang Zhou. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
-/
-import Mathbin.MeasureTheory.Integral.SetToL1
+import MeasureTheory.Integral.SetToL1
#align_import measure_theory.integral.bochner from "leanprover-community/mathlib"@"48fb5b5280e7c81672afc9524185ae994553ebf4"
@@ -1831,7 +1831,7 @@ theorem integral_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ :
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
-/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:354:22: unsupported: parse error @ arg 0: next failed, no more args -/
#print MeasureTheory.integral_tsum /-
theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
(hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) : ∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ :=
@@ -1849,7 +1849,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
_).tsum_eq.symm
· intro n
trace
- "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args"
+ "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:354:22: unsupported: parse error @ arg 0: next failed, no more args"
rfl
· simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
rw [aestronglyMeasurable_iff_aemeasurable]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2019 Zhouhang Zhou. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
-
-! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit 48fb5b5280e7c81672afc9524185ae994553ebf4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Integral.SetToL1
+#align_import measure_theory.integral.bochner from "leanprover-community/mathlib"@"48fb5b5280e7c81672afc9524185ae994553ebf4"
+
/-!
# Bochner integral
mathlib commit https://github.com/leanprover-community/mathlib/commit/728ef9dbb281241906f25cbeb30f90d83e0bb451
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
+! leanprover-community/mathlib commit 48fb5b5280e7c81672afc9524185ae994553ebf4
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -845,6 +845,7 @@ theorem integral_zero : integral (0 : α →₁[μ] E) = 0 :=
variable {α E}
#print MeasureTheory.L1.integral_add /-
+@[integral_simps]
theorem integral_add (f g : α →₁[μ] E) : integral (f + g) = integral f + integral g :=
by
simp only [integral]
@@ -853,6 +854,7 @@ theorem integral_add (f g : α →₁[μ] E) : integral (f + g) = integral f + i
-/
#print MeasureTheory.L1.integral_neg /-
+@[integral_simps]
theorem integral_neg (f : α →₁[μ] E) : integral (-f) = -integral f :=
by
simp only [integral]
@@ -861,6 +863,7 @@ theorem integral_neg (f : α →₁[μ] E) : integral (-f) = -integral f :=
-/
#print MeasureTheory.L1.integral_sub /-
+@[integral_simps]
theorem integral_sub (f g : α →₁[μ] E) : integral (f - g) = integral f - integral g :=
by
simp only [integral]
@@ -869,6 +872,7 @@ theorem integral_sub (f g : α →₁[μ] E) : integral (f - g) = integral f - i
-/
#print MeasureTheory.L1.integral_smul /-
+@[integral_simps]
theorem integral_smul (c : 𝕜) (f : α →₁[μ] E) : integral (c • f) = c • integral f :=
by
simp only [integral]
@@ -1063,6 +1067,7 @@ theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀
-/
#print MeasureTheory.integral_neg /-
+@[integral_simps]
theorem integral_neg (f : α → E) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
@@ -1093,6 +1098,7 @@ theorem integral_sub' (hf : Integrable f μ) (hg : Integrable g μ) :
-/
#print MeasureTheory.integral_smul /-
+@[integral_simps]
theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
@@ -2134,13 +2140,6 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
end Properties
--- PLEASE REPORT THIS TO MATHPORT DEVS, THIS SHOULD NOT HAPPEN.
--- failed to format: unknown constant 'Lean.Meta._root_.Lean.Parser.Command.registerSimpAttr'
-/-- Simp set for integral rules. -/ register_simp_attr integral_simps
-
-attribute [integral_simps] integral_neg integral_smul L1.integral_add L1.integral_sub
- L1.integral_smul L1.integral_neg
-
section IntegralTrim
variable {H β γ : Type _} [NormedAddCommGroup H] {m m0 : MeasurableSpace β} {μ : Measure β}
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -917,7 +917,7 @@ theorem integral_eq_norm_posPart_sub (f : α →₁[μ] ℝ) :
(fun f : α →₁[μ] ℝ => integral f = ‖Lp.pos_part f‖ - ‖Lp.neg_part f‖)
(simple_func.dense_range one_ne_top) (isClosed_eq _ _) _ f
· simp only [integral]
- exact cont _
+ exact Cont _
·
refine'
Continuous.sub (continuous_norm.comp Lp.continuous_pos_part)
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -174,20 +174,27 @@ def weightedSMul {m : MeasurableSpace α} (μ : Measure α) (s : Set α) : F →
#align measure_theory.weighted_smul MeasureTheory.weightedSMul
-/
+#print MeasureTheory.weightedSMul_apply /-
theorem weightedSMul_apply {m : MeasurableSpace α} (μ : Measure α) (s : Set α) (x : F) :
weightedSMul μ s x = (μ s).toReal • x := by simp [weighted_smul]
#align measure_theory.weighted_smul_apply MeasureTheory.weightedSMul_apply
+-/
+#print MeasureTheory.weightedSMul_zero_measure /-
@[simp]
theorem weightedSMul_zero_measure {m : MeasurableSpace α} :
weightedSMul (0 : Measure α) = (0 : Set α → F →L[ℝ] F) := by ext1; simp [weighted_smul]
#align measure_theory.weighted_smul_zero_measure MeasureTheory.weightedSMul_zero_measure
+-/
+#print MeasureTheory.weightedSMul_empty /-
@[simp]
theorem weightedSMul_empty {m : MeasurableSpace α} (μ : Measure α) :
weightedSMul μ ∅ = (0 : F →L[ℝ] F) := by ext1 x; rw [weighted_smul_apply]; simp
#align measure_theory.weighted_smul_empty MeasureTheory.weightedSMul_empty
+-/
+#print MeasureTheory.weightedSMul_add_measure /-
theorem weightedSMul_add_measure {m : MeasurableSpace α} (μ ν : Measure α) {s : Set α}
(hμs : μ s ≠ ∞) (hνs : ν s ≠ ∞) :
(weightedSMul (μ + ν) s : F →L[ℝ] F) = weightedSMul μ s + weightedSMul ν s :=
@@ -198,7 +205,9 @@ theorem weightedSMul_add_measure {m : MeasurableSpace α} (μ ν : Measure α) {
push_cast
rw [Pi.add_apply, ENNReal.toReal_add hμs hνs, add_smul]
#align measure_theory.weighted_smul_add_measure MeasureTheory.weightedSMul_add_measure
+-/
+#print MeasureTheory.weightedSMul_smul_measure /-
theorem weightedSMul_smul_measure {m : MeasurableSpace α} (μ : Measure α) (c : ℝ≥0∞) {s : Set α} :
(weightedSMul (c • μ) s : F →L[ℝ] F) = c.toReal • weightedSMul μ s :=
by
@@ -208,16 +217,22 @@ theorem weightedSMul_smul_measure {m : MeasurableSpace α} (μ : Measure α) (c
push_cast
simp_rw [Pi.smul_apply, smul_eq_mul, to_real_mul, smul_smul]
#align measure_theory.weighted_smul_smul_measure MeasureTheory.weightedSMul_smul_measure
+-/
+#print MeasureTheory.weightedSMul_congr /-
theorem weightedSMul_congr (s t : Set α) (hst : μ s = μ t) :
(weightedSMul μ s : F →L[ℝ] F) = weightedSMul μ t := by ext1 x; simp_rw [weighted_smul_apply];
congr 2
#align measure_theory.weighted_smul_congr MeasureTheory.weightedSMul_congr
+-/
+#print MeasureTheory.weightedSMul_null /-
theorem weightedSMul_null {s : Set α} (h_zero : μ s = 0) : (weightedSMul μ s : F →L[ℝ] F) = 0 := by
ext1 x; rw [weighted_smul_apply, h_zero]; simp
#align measure_theory.weighted_smul_null MeasureTheory.weightedSMul_null
+-/
+#print MeasureTheory.weightedSMul_union' /-
theorem weightedSMul_union' (s t : Set α) (ht : MeasurableSet t) (hs_finite : μ s ≠ ∞)
(ht_finite : μ t ≠ ∞) (h_inter : s ∩ t = ∅) :
(weightedSMul μ (s ∪ t) : F →L[ℝ] F) = weightedSMul μ s + weightedSMul μ t :=
@@ -227,19 +242,25 @@ theorem weightedSMul_union' (s t : Set α) (ht : MeasurableSet t) (hs_finite :
measure_union (set.disjoint_iff_inter_eq_empty.mpr h_inter) ht,
ENNReal.toReal_add hs_finite ht_finite, add_smul]
#align measure_theory.weighted_smul_union' MeasureTheory.weightedSMul_union'
+-/
+#print MeasureTheory.weightedSMul_union /-
@[nolint unused_arguments]
theorem weightedSMul_union (s t : Set α) (hs : MeasurableSet s) (ht : MeasurableSet t)
(hs_finite : μ s ≠ ∞) (ht_finite : μ t ≠ ∞) (h_inter : s ∩ t = ∅) :
(weightedSMul μ (s ∪ t) : F →L[ℝ] F) = weightedSMul μ s + weightedSMul μ t :=
weightedSMul_union' s t ht hs_finite ht_finite h_inter
#align measure_theory.weighted_smul_union MeasureTheory.weightedSMul_union
+-/
+#print MeasureTheory.weightedSMul_smul /-
theorem weightedSMul_smul [NormedField 𝕜] [NormedSpace 𝕜 F] [SMulCommClass ℝ 𝕜 F] (c : 𝕜)
(s : Set α) (x : F) : weightedSMul μ s (c • x) = c • weightedSMul μ s x := by
simp_rw [weighted_smul_apply, smul_comm]
#align measure_theory.weighted_smul_smul MeasureTheory.weightedSMul_smul
+-/
+#print MeasureTheory.norm_weightedSMul_le /-
theorem norm_weightedSMul_le (s : Set α) : ‖(weightedSMul μ s : F →L[ℝ] F)‖ ≤ (μ s).toReal :=
calc
‖(weightedSMul μ s : F →L[ℝ] F)‖ = ‖(μ s).toReal‖ * ‖ContinuousLinearMap.id ℝ F‖ :=
@@ -249,21 +270,25 @@ theorem norm_weightedSMul_le (s : Set α) : ‖(weightedSMul μ s : F →L[ℝ]
_ = abs (μ s).toReal := (Real.norm_eq_abs _)
_ = (μ s).toReal := abs_eq_self.mpr ENNReal.toReal_nonneg
#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSMul_le
+-/
+#print MeasureTheory.dominatedFinMeasAdditive_weightedSMul /-
theorem dominatedFinMeasAdditive_weightedSMul {m : MeasurableSpace α} (μ : Measure α) :
DominatedFinMeasAdditive μ (weightedSMul μ : Set α → F →L[ℝ] F) 1 :=
⟨weightedSMul_union, fun s _ _ => (norm_weightedSMul_le s).trans (one_mul _).symm.le⟩
#align measure_theory.dominated_fin_meas_additive_weighted_smul MeasureTheory.dominatedFinMeasAdditive_weightedSMul
+-/
+#print MeasureTheory.weightedSMul_nonneg /-
theorem weightedSMul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weightedSMul μ s x :=
by
simp only [weighted_smul, Algebra.id.smul_eq_mul, coe_smul', id.def, coe_id', Pi.smul_apply]
exact mul_nonneg to_real_nonneg hx
#align measure_theory.weighted_smul_nonneg MeasureTheory.weightedSMul_nonneg
+-/
end WeightedSmul
--- mathport name: «expr →ₛ »
local infixr:25 " →ₛ " => SimpleFunc
namespace SimpleFunc
@@ -286,14 +311,19 @@ def negPart [Neg E] (f : α →ₛ E) : α →ₛ E :=
#align measure_theory.simple_func.neg_part MeasureTheory.SimpleFunc.negPart
-/
+#print MeasureTheory.SimpleFunc.posPart_map_norm /-
theorem posPart_map_norm (f : α →ₛ ℝ) : (posPart f).map norm = posPart f := by ext;
rw [map_apply, Real.norm_eq_abs, abs_of_nonneg]; exact le_max_right _ _
#align measure_theory.simple_func.pos_part_map_norm MeasureTheory.SimpleFunc.posPart_map_norm
+-/
+#print MeasureTheory.SimpleFunc.negPart_map_norm /-
theorem negPart_map_norm (f : α →ₛ ℝ) : (negPart f).map norm = negPart f := by rw [neg_part];
exact pos_part_map_norm _
#align measure_theory.simple_func.neg_part_map_norm MeasureTheory.SimpleFunc.negPart_map_norm
+-/
+#print MeasureTheory.SimpleFunc.posPart_sub_negPart /-
theorem posPart_sub_negPart (f : α →ₛ ℝ) : f.posPart - f.neg_part = f :=
by
simp only [pos_part, neg_part]
@@ -301,6 +331,7 @@ theorem posPart_sub_negPart (f : α →ₛ ℝ) : f.posPart - f.neg_part = f :=
rw [coe_sub]
exact max_zero_sub_eq_self (f a)
#align measure_theory.simple_func.pos_part_sub_neg_part MeasureTheory.SimpleFunc.posPart_sub_negPart
+-/
end PosPart
@@ -328,22 +359,29 @@ def integral {m : MeasurableSpace α} (μ : Measure α) (f : α →ₛ F) : F :=
#align measure_theory.simple_func.integral MeasureTheory.SimpleFunc.integral
-/
+#print MeasureTheory.SimpleFunc.integral_def /-
theorem integral_def {m : MeasurableSpace α} (μ : Measure α) (f : α →ₛ F) :
f.integral μ = f.setToSimpleFunc (weightedSMul μ) :=
rfl
#align measure_theory.simple_func.integral_def MeasureTheory.SimpleFunc.integral_def
+-/
+#print MeasureTheory.SimpleFunc.integral_eq /-
theorem integral_eq {m : MeasurableSpace α} (μ : Measure α) (f : α →ₛ F) :
f.integral μ = ∑ x in f.range, (μ (f ⁻¹' {x})).toReal • x := by
simp [integral, set_to_simple_func, weighted_smul_apply]
#align measure_theory.simple_func.integral_eq MeasureTheory.SimpleFunc.integral_eq
+-/
+#print MeasureTheory.SimpleFunc.integral_eq_sum_filter /-
theorem integral_eq_sum_filter [DecidablePred fun x : F => x ≠ 0] {m : MeasurableSpace α}
(f : α →ₛ F) (μ : Measure α) :
f.integral μ = ∑ x in f.range.filterₓ fun x => x ≠ 0, (μ (f ⁻¹' {x})).toReal • x := by
rw [integral_def, set_to_simple_func_eq_sum_filter]; simp_rw [weighted_smul_apply]; congr
#align measure_theory.simple_func.integral_eq_sum_filter MeasureTheory.SimpleFunc.integral_eq_sum_filter
+-/
+#print MeasureTheory.SimpleFunc.integral_eq_sum_of_subset /-
/-- The Bochner integral is equal to a sum over any set that includes `f.range` (except `0`). -/
theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α →ₛ F} {s : Finset F}
(hs : (f.range.filterₓ fun x => x ≠ 0) ⊆ s) :
@@ -355,7 +393,9 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
rw [simple_func.mem_range] at hx ;
rw [preimage_eq_empty] <;> simp [Set.disjoint_singleton_left, hx]
#align measure_theory.simple_func.integral_eq_sum_of_subset MeasureTheory.SimpleFunc.integral_eq_sum_of_subset
+-/
+#print MeasureTheory.SimpleFunc.integral_const /-
@[simp]
theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
(const α y).integral μ = (μ univ).toReal • y := by
@@ -364,7 +404,9 @@ theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
integral_eq_sum_of_subset <| (filter_subset _ _).trans (range_const_subset _ _)
_ = (μ univ).toReal • y := by simp
#align measure_theory.simple_func.integral_const MeasureTheory.SimpleFunc.integral_const
+-/
+#print MeasureTheory.SimpleFunc.integral_piecewise_zero /-
@[simp]
theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ : Measure α) {s : Set α}
(hs : MeasurableSet s) : (piecewise s hs f 0).integral μ = f.integral (μ.restrict s) := by
@@ -382,14 +424,18 @@ theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ :
measure.restrict_apply (f.measurable_set_preimage _)]
exact fun h₀ => (mem_filter.1 hy).2 (Eq.symm h₀)
#align measure_theory.simple_func.integral_piecewise_zero MeasureTheory.SimpleFunc.integral_piecewise_zero
+-/
+#print MeasureTheory.SimpleFunc.map_integral /-
/-- Calculate the integral of `g ∘ f : α →ₛ F`, where `f` is an integrable function from `α` to `E`
and `g` is a function from `E` to `F`. We require `g 0 = 0` so that `g ∘ f` is integrable. -/
theorem map_integral (f : α →ₛ E) (g : E → F) (hf : Integrable f μ) (hg : g 0 = 0) :
(f.map g).integral μ = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • g x :=
map_setToSimpleFunc _ weightedSMul_union hf hg
#align measure_theory.simple_func.map_integral MeasureTheory.SimpleFunc.map_integral
+-/
+#print MeasureTheory.SimpleFunc.integral_eq_lintegral' /-
/-- `simple_func.integral` and `simple_func.lintegral` agree when the integrand has type
`α →ₛ ℝ≥0∞`. But since `ℝ≥0∞` is not a `normed_space`, we need some form of coercion.
See `integral_eq_lintegral` for a simpler version. -/
@@ -408,14 +454,18 @@ theorem integral_eq_lintegral' {f : α →ₛ E} {g : E → ℝ≥0∞} (hf : In
· apply mul_ne_top (ht a) (hf'.meas_preimage_singleton_ne_zero a0).Ne
· simp [hg0]
#align measure_theory.simple_func.integral_eq_lintegral' MeasureTheory.SimpleFunc.integral_eq_lintegral'
+-/
variable [NormedField 𝕜] [NormedSpace 𝕜 E] [NormedSpace ℝ E] [SMulCommClass ℝ 𝕜 E]
+#print MeasureTheory.SimpleFunc.integral_congr /-
theorem integral_congr {f g : α →ₛ E} (hf : Integrable f μ) (h : f =ᵐ[μ] g) :
f.integral μ = g.integral μ :=
setToSimpleFunc_congr (weightedSMul μ) (fun s hs => weightedSMul_null) weightedSMul_union hf h
#align measure_theory.simple_func.integral_congr MeasureTheory.SimpleFunc.integral_congr
+-/
+#print MeasureTheory.SimpleFunc.integral_eq_lintegral /-
/-- `simple_func.bintegral` and `simple_func.integral` agree when the integrand has type
`α →ₛ ℝ≥0∞`. But since `ℝ≥0∞` is not a `normed_space`, we need some form of coercion. -/
theorem integral_eq_lintegral {f : α →ₛ ℝ} (hf : Integrable f μ) (h_pos : 0 ≤ᵐ[μ] f) :
@@ -426,26 +476,36 @@ theorem integral_eq_lintegral {f : α →ₛ ℝ} (hf : Integrable f μ) (h_pos
rw [← integral_eq_lintegral' hf]
exacts [integral_congr hf this, ENNReal.ofReal_zero, fun b => ENNReal.ofReal_ne_top]
#align measure_theory.simple_func.integral_eq_lintegral MeasureTheory.SimpleFunc.integral_eq_lintegral
+-/
+#print MeasureTheory.SimpleFunc.integral_add /-
theorem integral_add {f g : α →ₛ E} (hf : Integrable f μ) (hg : Integrable g μ) :
integral μ (f + g) = integral μ f + integral μ g :=
setToSimpleFunc_add _ weightedSMul_union hf hg
#align measure_theory.simple_func.integral_add MeasureTheory.SimpleFunc.integral_add
+-/
+#print MeasureTheory.SimpleFunc.integral_neg /-
theorem integral_neg {f : α →ₛ E} (hf : Integrable f μ) : integral μ (-f) = -integral μ f :=
setToSimpleFunc_neg _ weightedSMul_union hf
#align measure_theory.simple_func.integral_neg MeasureTheory.SimpleFunc.integral_neg
+-/
+#print MeasureTheory.SimpleFunc.integral_sub /-
theorem integral_sub {f g : α →ₛ E} (hf : Integrable f μ) (hg : Integrable g μ) :
integral μ (f - g) = integral μ f - integral μ g :=
setToSimpleFunc_sub _ weightedSMul_union hf hg
#align measure_theory.simple_func.integral_sub MeasureTheory.SimpleFunc.integral_sub
+-/
+#print MeasureTheory.SimpleFunc.integral_smul /-
theorem integral_smul (c : 𝕜) {f : α →ₛ E} (hf : Integrable f μ) :
integral μ (c • f) = c • integral μ f :=
setToSimpleFunc_smul _ weightedSMul_union weightedSMul_smul c hf
#align measure_theory.simple_func.integral_smul MeasureTheory.SimpleFunc.integral_smul
+-/
+#print MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm /-
theorem norm_setToSimpleFunc_le_integral_norm (T : Set α → E →L[ℝ] F) {C : ℝ}
(hT_norm : ∀ s, MeasurableSet s → μ s < ∞ → ‖T s‖ ≤ C * (μ s).toReal) {f : α →ₛ E}
(hf : Integrable f μ) : ‖f.setToSimpleFunc T‖ ≤ C * (f.map norm).integral μ :=
@@ -455,14 +515,18 @@ theorem norm_setToSimpleFunc_le_integral_norm (T : Set α → E →L[ℝ] F) {C
_ = C * (f.map norm).integral μ := by rw [map_integral f norm hf norm_zero];
simp_rw [smul_eq_mul]
#align measure_theory.simple_func.norm_set_to_simple_func_le_integral_norm MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm
+-/
+#print MeasureTheory.SimpleFunc.norm_integral_le_integral_norm /-
theorem norm_integral_le_integral_norm (f : α →ₛ E) (hf : Integrable f μ) :
‖f.integral μ‖ ≤ (f.map norm).integral μ :=
by
refine' (norm_set_to_simple_func_le_integral_norm _ (fun s _ _ => _) hf).trans (one_mul _).le
exact (norm_weighted_smul_le s).trans (one_mul _).symm.le
#align measure_theory.simple_func.norm_integral_le_integral_norm MeasureTheory.SimpleFunc.norm_integral_le_integral_norm
+-/
+#print MeasureTheory.SimpleFunc.integral_add_measure /-
theorem integral_add_measure {ν} (f : α →ₛ E) (hf : Integrable f (μ + ν)) :
f.integral (μ + ν) = f.integral μ + f.integral ν :=
by
@@ -473,6 +537,7 @@ theorem integral_add_measure {ν} (f : α →ₛ E) (hf : Integrable f (μ + ν)
rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, ENNReal.add_ne_top] at hμνs
rw [weighted_smul_add_measure _ _ hμνs.1 hμνs.2]
#align measure_theory.simple_func.integral_add_measure MeasureTheory.SimpleFunc.integral_add_measure
+-/
end Integral
@@ -488,14 +553,17 @@ variable {α E μ}
namespace SimpleFunc
+#print MeasureTheory.L1.SimpleFunc.norm_eq_integral /-
theorem norm_eq_integral (f : α →₁ₛ[μ] E) : ‖f‖ = ((toSimpleFunc f).map norm).integral μ :=
by
rw [norm_eq_sum_mul f, (to_simple_func f).map_integral norm (simple_func.integrable f) norm_zero]
simp_rw [smul_eq_mul]
#align measure_theory.L1.simple_func.norm_eq_integral MeasureTheory.L1.SimpleFunc.norm_eq_integral
+-/
section PosPart
+#print MeasureTheory.L1.SimpleFunc.posPart /-
/-- Positive part of a simple function in L1 space. -/
def posPart (f : α →₁ₛ[μ] ℝ) : α →₁ₛ[μ] ℝ :=
⟨Lp.posPart (f : α →₁[μ] ℝ), by
@@ -504,21 +572,28 @@ def posPart (f : α →₁ₛ[μ] ℝ) : α →₁ₛ[μ] ℝ :=
simp only [Subtype.coe_mk, Lp.coe_pos_part, ← hsf, ae_eq_fun.pos_part_mk, simple_func.pos_part,
simple_func.coe_map, mk_eq_mk]⟩
#align measure_theory.L1.simple_func.pos_part MeasureTheory.L1.SimpleFunc.posPart
+-/
+#print MeasureTheory.L1.SimpleFunc.negPart /-
/-- Negative part of a simple function in L1 space. -/
def negPart (f : α →₁ₛ[μ] ℝ) : α →₁ₛ[μ] ℝ :=
posPart (-f)
#align measure_theory.L1.simple_func.neg_part MeasureTheory.L1.SimpleFunc.negPart
+-/
+#print MeasureTheory.L1.SimpleFunc.coe_posPart /-
@[norm_cast]
theorem coe_posPart (f : α →₁ₛ[μ] ℝ) : (posPart f : α →₁[μ] ℝ) = Lp.posPart (f : α →₁[μ] ℝ) :=
rfl
#align measure_theory.L1.simple_func.coe_pos_part MeasureTheory.L1.SimpleFunc.coe_posPart
+-/
+#print MeasureTheory.L1.SimpleFunc.coe_negPart /-
@[norm_cast]
theorem coe_negPart (f : α →₁ₛ[μ] ℝ) : (negPart f : α →₁[μ] ℝ) = Lp.negPart (f : α →₁[μ] ℝ) :=
rfl
#align measure_theory.L1.simple_func.coe_neg_part MeasureTheory.L1.SimpleFunc.coe_negPart
+-/
end PosPart
@@ -536,71 +611,93 @@ variable [NormedField 𝕜] [NormedSpace 𝕜 E] [NormedSpace ℝ E] [SMulCommCl
attribute [local instance] simple_func.normed_space
+#print MeasureTheory.L1.SimpleFunc.integral /-
/-- The Bochner integral over simple functions in L1 space. -/
def integral (f : α →₁ₛ[μ] E) : E :=
(toSimpleFunc f).integral μ
#align measure_theory.L1.simple_func.integral MeasureTheory.L1.SimpleFunc.integral
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_eq_integral /-
theorem integral_eq_integral (f : α →₁ₛ[μ] E) : integral f = (toSimpleFunc f).integral μ :=
rfl
#align measure_theory.L1.simple_func.integral_eq_integral MeasureTheory.L1.SimpleFunc.integral_eq_integral
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_eq_lintegral /-
theorem integral_eq_lintegral {f : α →₁ₛ[μ] ℝ} (h_pos : 0 ≤ᵐ[μ] toSimpleFunc f) :
integral f = ENNReal.toReal (∫⁻ a, ENNReal.ofReal ((toSimpleFunc f) a) ∂μ) := by
rw [integral, simple_func.integral_eq_lintegral (simple_func.integrable f) h_pos]
#align measure_theory.L1.simple_func.integral_eq_lintegral MeasureTheory.L1.SimpleFunc.integral_eq_lintegral
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S /-
theorem integral_eq_setToL1S (f : α →₁ₛ[μ] E) : integral f = setToL1S (weightedSMul μ) f :=
rfl
#align measure_theory.L1.simple_func.integral_eq_set_to_L1s MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_congr /-
theorem integral_congr {f g : α →₁ₛ[μ] E} (h : toSimpleFunc f =ᵐ[μ] toSimpleFunc g) :
integral f = integral g :=
SimpleFunc.integral_congr (SimpleFunc.integrable f) h
#align measure_theory.L1.simple_func.integral_congr MeasureTheory.L1.SimpleFunc.integral_congr
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_add /-
theorem integral_add (f g : α →₁ₛ[μ] E) : integral (f + g) = integral f + integral g :=
setToL1S_add _ (fun _ _ => weightedSMul_null) weightedSMul_union _ _
#align measure_theory.L1.simple_func.integral_add MeasureTheory.L1.SimpleFunc.integral_add
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_smul /-
theorem integral_smul (c : 𝕜) (f : α →₁ₛ[μ] E) : integral (c • f) = c • integral f :=
setToL1S_smul _ (fun _ _ => weightedSMul_null) weightedSMul_union weightedSMul_smul c f
#align measure_theory.L1.simple_func.integral_smul MeasureTheory.L1.SimpleFunc.integral_smul
+-/
+#print MeasureTheory.L1.SimpleFunc.norm_integral_le_norm /-
theorem norm_integral_le_norm (f : α →₁ₛ[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
by
rw [integral, norm_eq_integral]
exact (to_simple_func f).norm_integral_le_integral_norm (simple_func.integrable f)
#align measure_theory.L1.simple_func.norm_integral_le_norm MeasureTheory.L1.SimpleFunc.norm_integral_le_norm
+-/
variable {E' : Type _} [NormedAddCommGroup E'] [NormedSpace ℝ E'] [NormedSpace 𝕜 E']
variable (α E μ 𝕜)
+#print MeasureTheory.L1.SimpleFunc.integralCLM' /-
/-- The Bochner integral over simple functions in L1 space as a continuous linear map. -/
def integralCLM' : (α →₁ₛ[μ] E) →L[𝕜] E :=
LinearMap.mkContinuous ⟨integral, integral_add, integral_smul⟩ 1 fun f =>
le_trans (norm_integral_le_norm _) <| by rw [one_mul]
#align measure_theory.L1.simple_func.integral_clm' MeasureTheory.L1.SimpleFunc.integralCLM'
+-/
+#print MeasureTheory.L1.SimpleFunc.integralCLM /-
/-- The Bochner integral over simple functions in L1 space as a continuous linear map over ℝ. -/
def integralCLM : (α →₁ₛ[μ] E) →L[ℝ] E :=
integralCLM' α E ℝ μ
#align measure_theory.L1.simple_func.integral_clm MeasureTheory.L1.SimpleFunc.integralCLM
+-/
variable {α E μ 𝕜}
--- mathport name: simple_func.integral_clm
local notation "Integral" => integralCLM α E μ
open ContinuousLinearMap
+#print MeasureTheory.L1.SimpleFunc.norm_Integral_le_one /-
theorem norm_Integral_le_one : ‖Integral‖ ≤ 1 :=
LinearMap.mkContinuous_norm_le _ zero_le_one _
#align measure_theory.L1.simple_func.norm_Integral_le_one MeasureTheory.L1.SimpleFunc.norm_Integral_le_one
+-/
section PosPart
+#print MeasureTheory.L1.SimpleFunc.posPart_toSimpleFunc /-
theorem posPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
toSimpleFunc (posPart f) =ᵐ[μ] (toSimpleFunc f).posPart :=
by
@@ -613,7 +710,9 @@ theorem posPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
refine' ae_eq.mono fun a h => _
rw [h, Eq]
#align measure_theory.L1.simple_func.pos_part_to_simple_func MeasureTheory.L1.SimpleFunc.posPart_toSimpleFunc
+-/
+#print MeasureTheory.L1.SimpleFunc.negPart_toSimpleFunc /-
theorem negPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
toSimpleFunc (negPart f) =ᵐ[μ] (toSimpleFunc f).neg_part :=
by
@@ -625,7 +724,9 @@ theorem negPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
rw [h₂]
rfl
#align measure_theory.L1.simple_func.neg_part_to_simple_func MeasureTheory.L1.SimpleFunc.negPart_toSimpleFunc
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_eq_norm_posPart_sub /-
theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f = ‖posPart f‖ - ‖negPart f‖ :=
by
-- Convert things in `L¹` to their `simple_func` counterpart
@@ -662,6 +763,7 @@ theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f =
· exact (simple_func.integrable f).posPart.congr ae_eq₁
· exact (simple_func.integrable f).neg_part.congr ae_eq₂
#align measure_theory.L1.simple_func.integral_eq_norm_pos_part_sub MeasureTheory.L1.SimpleFunc.integral_eq_norm_posPart_sub
+-/
end PosPart
@@ -671,7 +773,6 @@ end SimpleFunc
open SimpleFunc
--- mathport name: simple_func.integral_clm
local notation "Integral" => @integralCLM α E _ _ _ _ _ μ _
variable [NormedSpace ℝ E] [NontriviallyNormedField 𝕜] [NormedSpace 𝕜 E] [SMulCommClass ℝ 𝕜 E]
@@ -685,31 +786,42 @@ open ContinuousLinearMap
variable (𝕜)
+#print MeasureTheory.L1.integralCLM' /-
/-- The Bochner integral in L1 space as a continuous linear map. -/
def integralCLM' : (α →₁[μ] E) →L[𝕜] E :=
(integralCLM' α E 𝕜 μ).extend (coeToLp α E 𝕜) (simpleFunc.denseRange one_ne_top)
simpleFunc.uniformInducing
#align measure_theory.L1.integral_clm' MeasureTheory.L1.integralCLM'
+-/
variable {𝕜}
+#print MeasureTheory.L1.integralCLM /-
/-- The Bochner integral in L1 space as a continuous linear map over ℝ. -/
def integralCLM : (α →₁[μ] E) →L[ℝ] E :=
integralCLM' ℝ
#align measure_theory.L1.integral_clm MeasureTheory.L1.integralCLM
+-/
+#print MeasureTheory.L1.integral /-
/-- The Bochner integral in L1 space -/
irreducible_def integral (f : α →₁[μ] E) : E :=
integralCLM f
#align measure_theory.L1.integral MeasureTheory.L1.integral
+-/
+#print MeasureTheory.L1.integral_eq /-
theorem integral_eq (f : α →₁[μ] E) : integral f = integralCLM f := by simp only [integral]
#align measure_theory.L1.integral_eq MeasureTheory.L1.integral_eq
+-/
+#print MeasureTheory.L1.integral_eq_setToL1 /-
theorem integral_eq_setToL1 (f : α →₁[μ] E) :
integral f = setToL1 (dominatedFinMeasAdditive_weightedSMul μ) f := by simp only [integral]; rfl
#align measure_theory.L1.integral_eq_set_to_L1 MeasureTheory.L1.integral_eq_setToL1
+-/
+#print MeasureTheory.L1.SimpleFunc.integral_L1_eq_integral /-
@[norm_cast]
theorem SimpleFunc.integral_L1_eq_integral (f : α →₁ₛ[μ] E) :
integral (f : α →₁[μ] E) = SimpleFunc.integral f :=
@@ -717,52 +829,64 @@ theorem SimpleFunc.integral_L1_eq_integral (f : α →₁ₛ[μ] E) :
simp only [integral]
exact set_to_L1_eq_set_to_L1s_clm (dominated_fin_meas_additive_weighted_smul μ) f
#align measure_theory.L1.simple_func.integral_L1_eq_integral MeasureTheory.L1.SimpleFunc.integral_L1_eq_integral
+-/
variable (α E)
+#print MeasureTheory.L1.integral_zero /-
@[simp]
theorem integral_zero : integral (0 : α →₁[μ] E) = 0 :=
by
simp only [integral]
exact map_zero integral_clm
#align measure_theory.L1.integral_zero MeasureTheory.L1.integral_zero
+-/
variable {α E}
+#print MeasureTheory.L1.integral_add /-
theorem integral_add (f g : α →₁[μ] E) : integral (f + g) = integral f + integral g :=
by
simp only [integral]
exact map_add integral_clm f g
#align measure_theory.L1.integral_add MeasureTheory.L1.integral_add
+-/
+#print MeasureTheory.L1.integral_neg /-
theorem integral_neg (f : α →₁[μ] E) : integral (-f) = -integral f :=
by
simp only [integral]
exact map_neg integral_clm f
#align measure_theory.L1.integral_neg MeasureTheory.L1.integral_neg
+-/
+#print MeasureTheory.L1.integral_sub /-
theorem integral_sub (f g : α →₁[μ] E) : integral (f - g) = integral f - integral g :=
by
simp only [integral]
exact map_sub integral_clm f g
#align measure_theory.L1.integral_sub MeasureTheory.L1.integral_sub
+-/
+#print MeasureTheory.L1.integral_smul /-
theorem integral_smul (c : 𝕜) (f : α →₁[μ] E) : integral (c • f) = c • integral f :=
by
simp only [integral]
show (integral_clm' 𝕜) (c • f) = c • (integral_clm' 𝕜) f; exact map_smul (integral_clm' 𝕜) c f
#align measure_theory.L1.integral_smul MeasureTheory.L1.integral_smul
+-/
--- mathport name: integral_clm
local notation "Integral" => @integralCLM α E _ _ μ _ _
--- mathport name: simple_func.integral_clm'
local notation "sIntegral" => @SimpleFunc.integralCLM α E _ _ μ _
+#print MeasureTheory.L1.norm_Integral_le_one /-
theorem norm_Integral_le_one : ‖Integral‖ ≤ 1 :=
norm_setToL1_le (dominatedFinMeasAdditive_weightedSMul μ) zero_le_one
#align measure_theory.L1.norm_Integral_le_one MeasureTheory.L1.norm_Integral_le_one
+-/
+#print MeasureTheory.L1.norm_integral_le /-
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
calc
‖integral f‖ = ‖Integral f‖ := by simp only [integral]
@@ -770,16 +894,20 @@ theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
_ ≤ 1 * ‖f‖ := (mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _)
_ = ‖f‖ := one_mul _
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
+-/
+#print MeasureTheory.L1.continuous_integral /-
@[continuity]
theorem continuous_integral : Continuous fun f : α →₁[μ] E => integral f :=
by
simp only [integral]
exact L1.integral_clm.continuous
#align measure_theory.L1.continuous_integral MeasureTheory.L1.continuous_integral
+-/
section PosPart
+#print MeasureTheory.L1.integral_eq_norm_posPart_sub /-
theorem integral_eq_norm_posPart_sub (f : α →₁[μ] ℝ) :
integral f = ‖Lp.posPart f‖ - ‖Lp.negPart f‖ :=
by
@@ -799,6 +927,7 @@ theorem integral_eq_norm_posPart_sub (f : α →₁[μ] ℝ) :
norm_cast
exact simple_func.integral_eq_norm_pos_part_sub _
#align measure_theory.L1.integral_eq_norm_pos_part_sub MeasureTheory.L1.integral_eq_norm_posPart_sub
+-/
end PosPart
@@ -836,16 +965,12 @@ end
`∫ x, f x = 0` will be parsed incorrectly. -/
--- mathport name: «expr∫ , ∂ »
notation3"∫ "(...)", "r:60:(scoped f => f)" ∂"μ:70 => integral μ r
--- mathport name: «expr∫ , »
notation3"∫ "(...)", "r:60:(scoped f => integral volume f) => r
--- mathport name: «expr∫ in , ∂ »
notation3"∫ "(...)" in "s", "r:60:(scoped f => f)" ∂"μ:70 => integral (Measure.restrict μ s) r
--- mathport name: «expr∫ in , »
notation3"∫ "(...)" in "s", "r:60:(scoped f => integral Measure.restrict volume s f) => r
section Properties
@@ -867,50 +992,66 @@ theorem integral_eq_setToFun (f : α → E) :
#align measure_theory.integral_eq_set_to_fun MeasureTheory.integral_eq_setToFun
-/
+#print MeasureTheory.L1.integral_eq_integral /-
theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact (L1.set_to_fun_eq_set_to_L1 (dominated_fin_meas_additive_weighted_smul μ) f).symm
#align measure_theory.L1.integral_eq_integral MeasureTheory.L1.integral_eq_integral
+-/
+#print MeasureTheory.integral_undef /-
theorem integral_undef (h : ¬Integrable f μ) : ∫ a, f a ∂μ = 0 := by rw [integral];
exact @dif_neg _ (id _) h _ _ _
#align measure_theory.integral_undef MeasureTheory.integral_undef
+-/
+#print MeasureTheory.integral_non_aestronglyMeasurable /-
theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : ∫ a, f a ∂μ = 0 :=
integral_undef <| not_and_of_not_left _ h
#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aestronglyMeasurable
+-/
variable (α E)
+#print MeasureTheory.integral_zero /-
theorem integral_zero : ∫ a : α, (0 : E) ∂μ = 0 :=
by
simp only [integral, L1.integral]
exact set_to_fun_zero (dominated_fin_meas_additive_weighted_smul μ)
#align measure_theory.integral_zero MeasureTheory.integral_zero
+-/
+#print MeasureTheory.integral_zero' /-
@[simp]
theorem integral_zero' : integral μ (0 : α → E) = 0 :=
integral_zero α E
#align measure_theory.integral_zero' MeasureTheory.integral_zero'
+-/
variable {α E}
+#print MeasureTheory.integrable_of_integral_eq_one /-
theorem integrable_of_integral_eq_one {f : α → ℝ} (h : ∫ x, f x ∂μ = 1) : Integrable f μ := by
contrapose h; rw [integral_undef h]; exact zero_ne_one
#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
+-/
+#print MeasureTheory.integral_add /-
theorem integral_add (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, f a + g a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_add (dominated_fin_meas_additive_weighted_smul μ) hf hg
#align measure_theory.integral_add MeasureTheory.integral_add
+-/
+#print MeasureTheory.integral_add' /-
theorem integral_add' (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, (f + g) a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ :=
integral_add hf hg
#align measure_theory.integral_add' MeasureTheory.integral_add'
+-/
#print MeasureTheory.integral_finset_sum /-
theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀ i ∈ s, Integrable (f i) μ) :
@@ -921,53 +1062,71 @@ theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀
#align measure_theory.integral_finset_sum MeasureTheory.integral_finset_sum
-/
+#print MeasureTheory.integral_neg /-
theorem integral_neg (f : α → E) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_neg (dominated_fin_meas_additive_weighted_smul μ) f
#align measure_theory.integral_neg MeasureTheory.integral_neg
+-/
+#print MeasureTheory.integral_neg' /-
theorem integral_neg' (f : α → E) : ∫ a, (-f) a ∂μ = -∫ a, f a ∂μ :=
integral_neg f
#align measure_theory.integral_neg' MeasureTheory.integral_neg'
+-/
+#print MeasureTheory.integral_sub /-
theorem integral_sub (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, f a - g a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_sub (dominated_fin_meas_additive_weighted_smul μ) hf hg
#align measure_theory.integral_sub MeasureTheory.integral_sub
+-/
+#print MeasureTheory.integral_sub' /-
theorem integral_sub' (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, (f - g) a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
integral_sub hf hg
#align measure_theory.integral_sub' MeasureTheory.integral_sub'
+-/
+#print MeasureTheory.integral_smul /-
theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_smul (dominated_fin_meas_additive_weighted_smul μ) weighted_smul_smul c f
#align measure_theory.integral_smul MeasureTheory.integral_smul
+-/
+#print MeasureTheory.integral_mul_left /-
theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
∫ a, r * f a ∂μ = r * ∫ a, f a ∂μ :=
integral_smul r f
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
+-/
+#print MeasureTheory.integral_mul_right /-
theorem integral_mul_right {L : Type _} [IsROrC L] (r : L) (f : α → L) :
∫ a, f a * r ∂μ = (∫ a, f a ∂μ) * r := by simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
+-/
+#print MeasureTheory.integral_div /-
theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
∫ a, f a / r ∂μ = (∫ a, f a ∂μ) / r := by
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
+-/
+#print MeasureTheory.integral_congr_ae /-
theorem integral_congr_ae (h : f =ᵐ[μ] g) : ∫ a, f a ∂μ = ∫ a, g a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_congr_ae (dominated_fin_meas_additive_weighted_smul μ) h
#align measure_theory.integral_congr_ae MeasureTheory.integral_congr_ae
+-/
#print MeasureTheory.L1.integral_of_fun_eq_integral /-
@[simp]
@@ -979,13 +1138,16 @@ theorem L1.integral_of_fun_eq_integral {f : α → E} (hf : Integrable f μ) :
#align measure_theory.L1.integral_of_fun_eq_integral MeasureTheory.L1.integral_of_fun_eq_integral
-/
+#print MeasureTheory.continuous_integral /-
@[continuity]
theorem continuous_integral : Continuous fun f : α →₁[μ] E => ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact continuous_set_to_fun (dominated_fin_meas_additive_weighted_smul μ)
#align measure_theory.continuous_integral MeasureTheory.continuous_integral
+-/
+#print MeasureTheory.norm_integral_le_lintegral_norm /-
theorem norm_integral_le_lintegral_norm (f : α → E) :
‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
by
@@ -994,18 +1156,24 @@ theorem norm_integral_le_lintegral_norm (f : α → E) :
exact L1.norm_integral_le _
· rw [integral_undef hf, norm_zero]; exact to_real_nonneg
#align measure_theory.norm_integral_le_lintegral_norm MeasureTheory.norm_integral_le_lintegral_norm
+-/
+#print MeasureTheory.ennnorm_integral_le_lintegral_ennnorm /-
theorem ennnorm_integral_le_lintegral_ennnorm (f : α → E) :
(‖∫ a, f a ∂μ‖₊ : ℝ≥0∞) ≤ ∫⁻ a, ‖f a‖₊ ∂μ :=
by
simp_rw [← ofReal_norm_eq_coe_nnnorm]; apply ENNReal.ofReal_le_of_le_toReal
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
+-/
+#print MeasureTheory.integral_eq_zero_of_ae /-
theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : ∫ a, f a ∂μ = 0 := by
simp [integral_congr_ae hf, integral_zero]
#align measure_theory.integral_eq_zero_of_ae MeasureTheory.integral_eq_zero_of_ae
+-/
+#print MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero /-
/-- If `f` has finite integral, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
@@ -1020,7 +1188,9 @@ theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
(tendsto_set_lintegral_zero (ne_of_lt hf) hs) (fun i => zero_le _) fun i =>
ennnorm_integral_le_lintegral_ennnorm _
#align measure_theory.has_finite_integral.tendsto_set_integral_nhds_zero MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero
+-/
+#print MeasureTheory.Integrable.tendsto_set_integral_nhds_zero /-
/-- If `f` is integrable, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
theorem Integrable.tendsto_set_integral_nhds_zero {ι} {f : α → E} (hf : Integrable f μ)
@@ -1028,7 +1198,9 @@ theorem Integrable.tendsto_set_integral_nhds_zero {ι} {f : α → E} (hf : Inte
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) :=
hf.2.tendsto_set_integral_nhds_zero hs
#align measure_theory.integrable.tendsto_set_integral_nhds_zero MeasureTheory.Integrable.tendsto_set_integral_nhds_zero
+-/
+#print MeasureTheory.tendsto_integral_of_L1 /-
/-- If `F i → f` in `L1`, then `∫ x, F i x ∂μ → ∫ x, f x ∂μ`. -/
theorem tendsto_integral_of_L1 {ι} (f : α → E) (hfi : Integrable f μ) {F : ι → α → E} {l : Filter ι}
(hFi : ∀ᶠ i in l, Integrable (F i) μ)
@@ -1038,7 +1210,9 @@ theorem tendsto_integral_of_L1 {ι} (f : α → E) (hfi : Integrable f μ) {F :
simp only [integral, L1.integral]
exact tendsto_set_to_fun_of_L1 (dominated_fin_meas_additive_weighted_smul μ) f hfi hFi hF
#align measure_theory.tendsto_integral_of_L1 MeasureTheory.tendsto_integral_of_L1
+-/
+#print MeasureTheory.tendsto_integral_of_dominated_convergence /-
/-- Lebesgue dominated convergence theorem provides sufficient conditions under which almost
everywhere convergence of a sequence of functions implies the convergence of their integrals.
We could weaken the condition `bound_integrable` to require `has_finite_integral bound μ` instead
@@ -1055,7 +1229,9 @@ theorem tendsto_integral_of_dominated_convergence {F : ℕ → α → E} {f : α
tendsto_set_to_fun_of_dominated_convergence (dominated_fin_meas_additive_weighted_smul μ) bound
F_measurable bound_integrable h_bound h_lim
#align measure_theory.tendsto_integral_of_dominated_convergence MeasureTheory.tendsto_integral_of_dominated_convergence
+-/
+#print MeasureTheory.tendsto_integral_filter_of_dominated_convergence /-
/-- Lebesgue dominated convergence theorem for filters with a countable basis -/
theorem tendsto_integral_filter_of_dominated_convergence {ι} {l : Filter ι} [l.IsCountablyGenerated]
{F : ι → α → E} {f : α → E} (bound : α → ℝ) (hF_meas : ∀ᶠ n in l, AEStronglyMeasurable (F n) μ)
@@ -1068,7 +1244,9 @@ theorem tendsto_integral_filter_of_dominated_convergence {ι} {l : Filter ι} [l
tendsto_set_to_fun_filter_of_dominated_convergence (dominated_fin_meas_additive_weighted_smul μ)
bound hF_meas h_bound bound_integrable h_lim
#align measure_theory.tendsto_integral_filter_of_dominated_convergence MeasureTheory.tendsto_integral_filter_of_dominated_convergence
+-/
+#print MeasureTheory.hasSum_integral_of_dominated_convergence /-
/-- Lebesgue dominated convergence theorem for series. -/
theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι → α → E} {f : α → E}
(bound : ι → α → ℝ) (hF_meas : ∀ n, AEStronglyMeasurable (F n) μ)
@@ -1101,9 +1279,11 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
‖∑ n in s, F n a‖ ≤ ∑ n in s, bound n a := norm_sum_le_of_le _ fun n hn => hFa n
_ ≤ ∑' n, bound n a := sum_le_tsum _ (fun n hn => ha0 n) has
#align measure_theory.has_sum_integral_of_dominated_convergence MeasureTheory.hasSum_integral_of_dominated_convergence
+-/
variable {X : Type _} [TopologicalSpace X] [FirstCountableTopology X]
+#print MeasureTheory.continuousWithinAt_of_dominated /-
theorem continuousWithinAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α → ℝ} {s : Set X}
(hF_meas : ∀ᶠ x in 𝓝[s] x₀, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ᶠ x in 𝓝[s] x₀, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
@@ -1115,7 +1295,9 @@ theorem continuousWithinAt_of_dominated {F : X → α → E} {x₀ : X} {bound :
continuous_within_at_set_to_fun_of_dominated (dominated_fin_meas_additive_weighted_smul μ)
hF_meas h_bound bound_integrable h_cont
#align measure_theory.continuous_within_at_of_dominated MeasureTheory.continuousWithinAt_of_dominated
+-/
+#print MeasureTheory.continuousAt_of_dominated /-
theorem continuousAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α → ℝ}
(hF_meas : ∀ᶠ x in 𝓝 x₀, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ᶠ x in 𝓝 x₀, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
@@ -1127,7 +1309,9 @@ theorem continuousAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α
continuous_at_set_to_fun_of_dominated (dominated_fin_meas_additive_weighted_smul μ) hF_meas
h_bound bound_integrable h_cont
#align measure_theory.continuous_at_of_dominated MeasureTheory.continuousAt_of_dominated
+-/
+#print MeasureTheory.continuousOn_of_dominated /-
theorem continuousOn_of_dominated {F : X → α → E} {bound : α → ℝ} {s : Set X}
(hF_meas : ∀ x ∈ s, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ x ∈ s, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
@@ -1138,7 +1322,9 @@ theorem continuousOn_of_dominated {F : X → α → E} {bound : α → ℝ} {s :
continuous_on_set_to_fun_of_dominated (dominated_fin_meas_additive_weighted_smul μ) hF_meas
h_bound bound_integrable h_cont
#align measure_theory.continuous_on_of_dominated MeasureTheory.continuousOn_of_dominated
+-/
+#print MeasureTheory.continuous_of_dominated /-
theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
(hF_meas : ∀ x, AEStronglyMeasurable (F x) μ) (h_bound : ∀ x, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a)
(bound_integrable : Integrable bound μ) (h_cont : ∀ᵐ a ∂μ, Continuous fun x => F x a) :
@@ -1149,7 +1335,9 @@ theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
continuous_set_to_fun_of_dominated (dominated_fin_meas_additive_weighted_smul μ) hF_meas h_bound
bound_integrable h_cont
#align measure_theory.continuous_of_dominated MeasureTheory.continuous_of_dominated
+-/
+#print MeasureTheory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part /-
/-- The Bochner integral of a real-valued function `f : α → ℝ` is the difference between the
integral of the positive part of `f` and the integral of the negative part of `f`. -/
theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
@@ -1185,7 +1373,9 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [eq₁, eq₂, integral, dif_pos]
exact L1.integral_eq_norm_pos_part_sub _
#align measure_theory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part MeasureTheory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part
+-/
+#print MeasureTheory.integral_eq_lintegral_of_nonneg_ae /-
theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
(hfm : AEStronglyMeasurable f μ) :
∫ a, f a ∂μ = ENNReal.toReal (∫⁻ a, (ENNReal.ofReal <| f a) ∂μ) :=
@@ -1210,6 +1400,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
rw [Real.norm_eq_abs, abs_of_nonneg h]
rw [this, hfi]; rfl
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
+-/
#print MeasureTheory.integral_norm_eq_lintegral_nnnorm /-
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
@@ -1229,6 +1420,7 @@ theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f :
#align measure_theory.of_real_integral_norm_eq_lintegral_nnnorm MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm
-/
+#print MeasureTheory.integral_eq_integral_pos_part_sub_integral_neg_part /-
theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
∫ a, f a ∂μ = ∫ a, Real.toNNReal (f a) ∂μ - ∫ a, Real.toNNReal (-f a) ∂μ :=
by
@@ -1236,7 +1428,9 @@ theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf
· simp
· exact hf.neg.real_to_nnreal
#align measure_theory.integral_eq_integral_pos_part_sub_integral_neg_part MeasureTheory.integral_eq_integral_pos_part_sub_integral_neg_part
+-/
+#print MeasureTheory.integral_nonneg_of_ae /-
theorem integral_nonneg_of_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) : 0 ≤ ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
@@ -1244,7 +1438,9 @@ theorem integral_nonneg_of_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) : 0 ≤ ∫
set_to_fun_nonneg (dominated_fin_meas_additive_weighted_smul μ)
(fun s _ _ => weighted_smul_nonneg s) hf
#align measure_theory.integral_nonneg_of_ae MeasureTheory.integral_nonneg_of_ae
+-/
+#print MeasureTheory.lintegral_coe_eq_integral /-
theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x => (f x : ℝ)) μ) :
∫⁻ a, f a ∂μ = ENNReal.ofReal (∫ a, f a ∂μ) :=
by
@@ -1254,7 +1450,9 @@ theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x
rw [ENNReal.ofReal_toReal]
rw [← lt_top_iff_ne_top]; convert hfi.has_finite_integral; ext1 x; rw [NNReal.nnnorm_eq]
#align measure_theory.lintegral_coe_eq_integral MeasureTheory.lintegral_coe_eq_integral
+-/
+#print MeasureTheory.ofReal_integral_eq_lintegral_ofReal /-
theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f μ) (f_nn : 0 ≤ᵐ[μ] f) :
ENNReal.ofReal (∫ x, f x ∂μ) = ∫⁻ x, ENNReal.ofReal (f x) ∂μ :=
by
@@ -1267,7 +1465,9 @@ theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f
filter_upwards [f_nn] with x hx
exact congr_arg ENNReal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
+-/
+#print MeasureTheory.integral_toReal /-
theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
∫ a, (f a).toReal ∂μ = (∫⁻ a, f a ∂μ).toReal :=
by
@@ -1276,13 +1476,17 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
intro x hx; rw [lt_top_iff_ne_top] at hx ; simp [hx]
· exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
+-/
+#print MeasureTheory.lintegral_coe_le_coe_iff_integral_le /-
theorem lintegral_coe_le_coe_iff_integral_le {f : α → ℝ≥0} (hfi : Integrable (fun x => (f x : ℝ)) μ)
{b : ℝ≥0} : ∫⁻ a, f a ∂μ ≤ b ↔ ∫ a, (f a : ℝ) ∂μ ≤ b := by
rw [lintegral_coe_eq_integral f hfi, ENNReal.ofReal, ENNReal.coe_le_coe,
Real.toNNReal_le_iff_le_coe]
#align measure_theory.lintegral_coe_le_coe_iff_integral_le MeasureTheory.lintegral_coe_le_coe_iff_integral_le
+-/
+#print MeasureTheory.integral_coe_le_of_lintegral_coe_le /-
theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (h : ∫⁻ a, f a ∂μ ≤ b) :
∫ a, (f a : ℝ) ∂μ ≤ b :=
by
@@ -1290,22 +1494,30 @@ theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (
· exact (lintegral_coe_le_coe_iff_integral_le hf).1 h
· rw [integral_undef hf]; exact b.2
#align measure_theory.integral_coe_le_of_lintegral_coe_le MeasureTheory.integral_coe_le_of_lintegral_coe_le
+-/
+#print MeasureTheory.integral_nonneg /-
theorem integral_nonneg {f : α → ℝ} (hf : 0 ≤ f) : 0 ≤ ∫ a, f a ∂μ :=
integral_nonneg_of_ae <| eventually_of_forall hf
#align measure_theory.integral_nonneg MeasureTheory.integral_nonneg
+-/
+#print MeasureTheory.integral_nonpos_of_ae /-
theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : ∫ a, f a ∂μ ≤ 0 :=
by
have hf : 0 ≤ᵐ[μ] -f := hf.mono fun a h => by rwa [Pi.neg_apply, Pi.zero_apply, neg_nonneg]
have : 0 ≤ ∫ a, -f a ∂μ := integral_nonneg_of_ae hf
rwa [integral_neg, neg_nonneg] at this
#align measure_theory.integral_nonpos_of_ae MeasureTheory.integral_nonpos_of_ae
+-/
+#print MeasureTheory.integral_nonpos /-
theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : ∫ a, f a ∂μ ≤ 0 :=
integral_nonpos_of_ae <| eventually_of_forall hf
#align measure_theory.integral_nonpos MeasureTheory.integral_nonpos
+-/
+#print MeasureTheory.integral_eq_zero_iff_of_nonneg_ae /-
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 := by
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
@@ -1314,28 +1526,36 @@ theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLE, (· ∘ ·), Pi.zero_apply,
ENNReal.ofReal_eq_zero]
#align measure_theory.integral_eq_zero_iff_of_nonneg_ae MeasureTheory.integral_eq_zero_iff_of_nonneg_ae
+-/
+#print MeasureTheory.integral_eq_zero_iff_of_nonneg /-
theorem integral_eq_zero_iff_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 :=
integral_eq_zero_iff_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_eq_zero_iff_of_nonneg MeasureTheory.integral_eq_zero_iff_of_nonneg
+-/
+#print MeasureTheory.integral_pos_iff_support_of_nonneg_ae /-
theorem integral_pos_iff_support_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
0 < ∫ x, f x ∂μ ↔ 0 < μ (Function.support f) := by
simp_rw [(integral_nonneg_of_ae hf).lt_iff_ne, pos_iff_ne_zero, Ne.def, @eq_comm ℝ 0,
integral_eq_zero_iff_of_nonneg_ae hf hfi, Filter.EventuallyEq, ae_iff, Pi.zero_apply,
Function.support]
#align measure_theory.integral_pos_iff_support_of_nonneg_ae MeasureTheory.integral_pos_iff_support_of_nonneg_ae
+-/
+#print MeasureTheory.integral_pos_iff_support_of_nonneg /-
theorem integral_pos_iff_support_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
0 < ∫ x, f x ∂μ ↔ 0 < μ (Function.support f) :=
integral_pos_iff_support_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_pos_iff_support_of_nonneg MeasureTheory.integral_pos_iff_support_of_nonneg
+-/
section NormedAddCommGroup
variable {H : Type _} [NormedAddCommGroup H]
+#print MeasureTheory.L1.norm_eq_integral_norm /-
theorem L1.norm_eq_integral_norm (f : α →₁[μ] H) : ‖f‖ = ∫ a, ‖f a‖ ∂μ :=
by
simp only [snorm, snorm', ENNReal.one_toReal, ENNReal.rpow_one, Lp.norm_def, if_false,
@@ -1344,6 +1564,7 @@ theorem L1.norm_eq_integral_norm (f : α →₁[μ] H) : ‖f‖ = ∫ a, ‖f a
(Lp.ae_strongly_measurable f).norm]
simp [ofReal_norm_eq_coe_nnnorm]
#align measure_theory.L1.norm_eq_integral_norm MeasureTheory.L1.norm_eq_integral_norm
+-/
#print MeasureTheory.L1.norm_of_fun_eq_integral_norm /-
theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
@@ -1356,6 +1577,7 @@ theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
#align measure_theory.L1.norm_of_fun_eq_integral_norm MeasureTheory.L1.norm_of_fun_eq_integral_norm
-/
+#print MeasureTheory.Memℒp.snorm_eq_integral_rpow_norm /-
theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1 : p ≠ 0) (hp2 : p ≠ ∞)
(hf : Memℒp f p μ) : snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) :=
by
@@ -1370,9 +1592,11 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
rw [A, ← of_real_rpow_of_nonneg to_real_nonneg (inv_nonneg.2 to_real_nonneg), of_real_to_real]
exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).Ne
#align measure_theory.mem_ℒp.snorm_eq_integral_rpow_norm MeasureTheory.Memℒp.snorm_eq_integral_rpow_norm
+-/
end NormedAddCommGroup
+#print MeasureTheory.integral_mono_ae /-
theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ᵐ[μ] g) :
∫ a, f a ∂μ ≤ ∫ a, g a ∂μ := by
simp only [integral, L1.integral]
@@ -1380,13 +1604,17 @@ theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integra
set_to_fun_mono (dominated_fin_meas_additive_weighted_smul μ)
(fun s _ _ => weighted_smul_nonneg s) hf hg h
#align measure_theory.integral_mono_ae MeasureTheory.integral_mono_ae
+-/
+#print MeasureTheory.integral_mono /-
@[mono]
theorem integral_mono {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ g) :
∫ a, f a ∂μ ≤ ∫ a, g a ∂μ :=
integral_mono_ae hf hg <| eventually_of_forall h
#align measure_theory.integral_mono MeasureTheory.integral_mono
+-/
+#print MeasureTheory.integral_mono_of_nonneg /-
theorem integral_mono_of_nonneg {f g : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hgi : Integrable g μ)
(h : f ≤ᵐ[μ] g) : ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ :=
by
@@ -1397,7 +1625,9 @@ theorem integral_mono_of_nonneg {f g : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hgi :
· rw [integral_non_ae_strongly_measurable hfm]
exact integral_nonneg_of_ae (hf.trans h)
#align measure_theory.integral_mono_of_nonneg MeasureTheory.integral_mono_of_nonneg
+-/
+#print MeasureTheory.integral_mono_measure /-
theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0 ≤ᵐ[ν] f)
(hfi : Integrable f ν) : ∫ a, f a ∂μ ≤ ∫ a, f a ∂ν :=
by
@@ -1408,7 +1638,9 @@ theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0
exacts [lintegral_mono' hle le_rfl, ((has_finite_integral_iff_of_real hf').1 hfi'.2).Ne,
((has_finite_integral_iff_of_real hf).1 hfi.2).Ne]
#align measure_theory.integral_mono_measure MeasureTheory.integral_mono_measure
+-/
+#print MeasureTheory.norm_integral_le_integral_norm /-
theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖ ≤ ∫ a, ‖f a‖ ∂μ :=
have le_ae : ∀ᵐ a ∂μ, 0 ≤ ‖f a‖ := eventually_of_forall fun a => norm_nonneg _
by_cases
@@ -1422,14 +1654,18 @@ theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖
rw [integral_non_ae_strongly_measurable h, norm_zero]
exact integral_nonneg_of_ae le_ae
#align measure_theory.norm_integral_le_integral_norm MeasureTheory.norm_integral_le_integral_norm
+-/
+#print MeasureTheory.norm_integral_le_of_norm_le /-
theorem norm_integral_le_of_norm_le {f : α → E} {g : α → ℝ} (hg : Integrable g μ)
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ g x) : ‖∫ x, f x ∂μ‖ ≤ ∫ x, g x ∂μ :=
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, ‖f x‖ ∂μ := norm_integral_le_integral_norm f
_ ≤ ∫ x, g x ∂μ := integral_mono_of_nonneg (eventually_of_forall fun x => norm_nonneg _) hg h
#align measure_theory.norm_integral_le_of_norm_le MeasureTheory.norm_integral_le_of_norm_le
+-/
+#print MeasureTheory.SimpleFunc.integral_eq_integral /-
theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ) :
f.integral μ = ∫ x, f x ∂μ :=
by
@@ -1437,11 +1673,14 @@ theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ
L1.simple_func.integral_L1_eq_integral, L1.simple_func.integral_eq_integral]
exact simple_func.integral_congr hfi (Lp.simple_func.to_simple_func_to_Lp _ _).symm
#align measure_theory.simple_func.integral_eq_integral MeasureTheory.SimpleFunc.integral_eq_integral
+-/
+#print MeasureTheory.SimpleFunc.integral_eq_sum /-
theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
∫ x, f x ∂μ = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
rw [← f.integral_eq_integral hfi, simple_func.integral, ← simple_func.integral_eq]; rfl
#align measure_theory.simple_func.integral_eq_sum MeasureTheory.SimpleFunc.integral_eq_sum
+-/
#print MeasureTheory.integral_const /-
@[simp]
@@ -1461,12 +1700,14 @@ theorem integral_const (c : E) : ∫ x : α, c ∂μ = (μ univ).toReal • c :=
#align measure_theory.integral_const MeasureTheory.integral_const
-/
+#print MeasureTheory.norm_integral_le_of_norm_le_const /-
theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C : ℝ}
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : ‖∫ x, f x ∂μ‖ ≤ C * (μ univ).toReal :=
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, C ∂μ := norm_integral_le_of_norm_le (integrable_const C) h
_ = C * (μ univ).toReal := by rw [integral_const, smul_eq_mul, mul_comm]
#align measure_theory.norm_integral_le_of_norm_le_const MeasureTheory.norm_integral_le_of_norm_le_const
+-/
#print MeasureTheory.tendsto_integral_approxOn_of_measurable /-
theorem tendsto_integral_approxOn_of_measurable [MeasurableSpace E] [BorelSpace E] {f : α → E}
@@ -1482,6 +1723,7 @@ theorem tendsto_integral_approxOn_of_measurable [MeasurableSpace E] [BorelSpace
#align measure_theory.tendsto_integral_approx_on_of_measurable MeasureTheory.tendsto_integral_approxOn_of_measurable
-/
+#print MeasureTheory.tendsto_integral_approxOn_of_measurable_of_range_subset /-
theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace E] [BorelSpace E]
{f : α → E} (fmeas : Measurable f) (hf : Integrable f μ) (s : Set E) [SeparableSpace s]
(hs : range f ∪ {0} ⊆ s) :
@@ -1491,9 +1733,11 @@ theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace
apply tendsto_integral_approx_on_of_measurable hf fmeas _ _ (integrable_zero _ _ _)
exact eventually_of_forall fun x => subset_closure (hs (Set.mem_union_left _ (mem_range_self _)))
#align measure_theory.tendsto_integral_approx_on_of_measurable_of_range_subset MeasureTheory.tendsto_integral_approxOn_of_measurable_of_range_subset
+-/
variable {ν : Measure α}
+#print MeasureTheory.integral_add_measure /-
theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integrable f ν) :
∫ x, f x ∂(μ + ν) = ∫ x, f x ∂μ + ∫ x, f x ∂ν :=
by
@@ -1516,14 +1760,18 @@ theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integ
rw [weighted_smul, weighted_smul, weighted_smul, ← add_smul, measure.coe_add, Pi.add_apply,
to_real_add hμνs.1.Ne hμνs.2.Ne]
#align measure_theory.integral_add_measure MeasureTheory.integral_add_measure
+-/
+#print MeasureTheory.integral_zero_measure /-
@[simp]
theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) : ∫ x, f x ∂(0 : Measure α) = 0 :=
by
simp only [integral, L1.integral]
exact set_to_fun_measure_zero (dominated_fin_meas_additive_weighted_smul _) rfl
#align measure_theory.integral_zero_measure MeasureTheory.integral_zero_measure
+-/
+#print MeasureTheory.integral_finset_sum_measure /-
theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
∫ a, f a ∂∑ i in s, μ i = ∑ i in s, ∫ a, f a ∂μ i := by
@@ -1535,14 +1783,18 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E}
simp only [Finset.sum_insert hit, ← iht]
exact integral_add_measure (hf _ hi) (integrable_finset_sum_measure.2 fun j hj => hf j (ht hj))
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
+-/
+#print MeasureTheory.nndist_integral_add_measure_le_lintegral /-
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
(nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν :=
by
rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel']
exact ennnorm_integral_le_lintegral_ennnorm _
#align measure_theory.nndist_integral_add_measure_le_lintegral MeasureTheory.nndist_integral_add_measure_le_lintegral
+-/
+#print MeasureTheory.hasSum_integral_measure /-
theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
(hf : Integrable f (Measure.sum μ)) :
HasSum (fun i => ∫ a, f a ∂μ i) (∫ a, f a ∂Measure.sum μ) :=
@@ -1567,13 +1819,17 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
rw [← hν, lintegral_add_measure, lintegral_finset_sum_measure] at hs
exact lt_of_add_lt_add_left hs
#align measure_theory.has_sum_integral_measure MeasureTheory.hasSum_integral_measure
+-/
+#print MeasureTheory.integral_sum_measure /-
theorem integral_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
(hf : Integrable f (Measure.sum μ)) : ∫ a, f a ∂Measure.sum μ = ∑' i, ∫ a, f a ∂μ i :=
(hasSum_integral_measure hf).tsum_eq.symm
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
+-/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args -/
+#print MeasureTheory.integral_tsum /-
theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
(hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) : ∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ :=
by
@@ -1607,7 +1863,9 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
· filter_upwards [hhh] with x hx
exact (summable_of_summable_norm hx).HasSum
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
+-/
+#print MeasureTheory.integral_smul_measure /-
@[simp]
theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : ∫ x, f x ∂c • μ = c.toReal • ∫ x, f x ∂μ :=
by
@@ -1623,7 +1881,9 @@ theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : ∫ x, f x ∂c
rw [← set_to_fun_congr_smul_measure c hc hdfma hdfma_smul f]
exact set_to_fun_congr_left' _ _ (fun s hs hμs => weighted_smul_smul_measure μ c) f
#align measure_theory.integral_smul_measure MeasureTheory.integral_smul_measure
+-/
+#print MeasureTheory.integral_map_of_stronglyMeasurable /-
theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α → β} (hφ : Measurable φ)
{f : β → E} (hfm : StronglyMeasurable f) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
by
@@ -1648,7 +1908,9 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
rw [hy]
simp
#align measure_theory.integral_map_of_strongly_measurable MeasureTheory.integral_map_of_stronglyMeasurable
+-/
+#print MeasureTheory.integral_map /-
theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → E}
(hfm : AEStronglyMeasurable f (Measure.map φ μ)) :
∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
@@ -1661,7 +1923,9 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
_ = ∫ x, g (φ x) ∂μ := (integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _))
_ = ∫ x, f (φ x) ∂μ := integral_congr_ae <| ae_eq_comp hφ hfm.ae_eq_mk.symm
#align measure_theory.integral_map MeasureTheory.integral_map
+-/
+#print MeasurableEmbedding.integral_map /-
theorem MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α → β}
(hf : MeasurableEmbedding f) (g : β → E) : ∫ y, g y ∂Measure.map f μ = ∫ x, g (f x) ∂μ :=
by
@@ -1670,23 +1934,30 @@ theorem MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α
· rw [integral_non_ae_strongly_measurable hgm, integral_non_ae_strongly_measurable]
rwa [← hf.ae_strongly_measurable_map_iff]
#align measurable_embedding.integral_map MeasurableEmbedding.integral_map
+-/
+#print ClosedEmbedding.integral_map /-
theorem ClosedEmbedding.integral_map {β} [TopologicalSpace α] [BorelSpace α] [TopologicalSpace β]
[MeasurableSpace β] [BorelSpace β] {φ : α → β} (hφ : ClosedEmbedding φ) (f : β → E) :
∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
hφ.MeasurableEmbedding.integral_map _
#align closed_embedding.integral_map ClosedEmbedding.integral_map
+-/
+#print MeasureTheory.integral_map_equiv /-
theorem integral_map_equiv {β} [MeasurableSpace β] (e : α ≃ᵐ β) (f : β → E) :
∫ y, f y ∂Measure.map e μ = ∫ x, f (e x) ∂μ :=
e.MeasurableEmbedding.integral_map f
#align measure_theory.integral_map_equiv MeasureTheory.integral_map_equiv
+-/
+#print MeasureTheory.MeasurePreserving.integral_comp /-
theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α → β} {ν}
(h₁ : MeasurePreserving f μ ν) (h₂ : MeasurableEmbedding f) (g : β → E) :
∫ x, g (f x) ∂μ = ∫ y, g y ∂ν :=
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
+-/
#print MeasureTheory.set_integral_eq_subtype /-
theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
@@ -1695,6 +1966,7 @@ theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : Measur
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
-/
+#print MeasureTheory.integral_dirac' /-
@[simp]
theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : StronglyMeasurable f) :
∫ x, f x ∂Measure.dirac a = f a := by
@@ -1704,7 +1976,9 @@ theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : Stro
integral_congr_ae <| ae_eq_dirac' hfm.measurable
_ = f a := by simp [measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac' MeasureTheory.integral_dirac'
+-/
+#print MeasureTheory.integral_dirac /-
@[simp]
theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α) :
∫ x, f x ∂Measure.dirac a = f a :=
@@ -1712,7 +1986,9 @@ theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f :
∫ x, f x ∂Measure.dirac a = ∫ x, f a ∂Measure.dirac a := integral_congr_ae <| ae_eq_dirac f
_ = f a := by simp [measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
+-/
+#print MeasureTheory.set_integral_dirac' /-
theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
{s : Set α} (hs : MeasurableSet s) [Decidable (a ∈ s)] :
∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 :=
@@ -1723,7 +1999,9 @@ theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : Stro
· exact integral_dirac' _ _ hf
· exact integral_zero_measure _
#align measure_theory.set_integral_dirac' MeasureTheory.set_integral_dirac'
+-/
+#print MeasureTheory.set_integral_dirac /-
theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
(s : Set α) [Decidable (a ∈ s)] : ∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 :=
by
@@ -1732,7 +2010,9 @@ theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f
· exact integral_dirac _ _
· exact integral_zero_measure _
#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
+-/
+#print MeasureTheory.mul_meas_ge_le_integral_of_nonneg /-
theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
(hf_int : Integrable f μ) (ε : ℝ) : ε * (μ {x | ε ≤ f x}).toReal ≤ ∫ x, f x ∂μ :=
by
@@ -1765,7 +2045,9 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
ext1 x
rw [abs_of_nonneg (hf_nonneg x)]
#align measure_theory.mul_meas_ge_le_integral_of_nonneg MeasureTheory.mul_meas_ge_le_integral_of_nonneg
+-/
+#print MeasureTheory.integral_mul_norm_le_Lp_mul_Lq /-
/-- Hölder's inequality for the integral of a product of norms. The integral of the product of two
norms of functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are
conjugate exponents. -/
@@ -1819,7 +2101,9 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AEMeasurable.coe_nnreal_ennreal
hg.1.nnnorm.AEMeasurable.coe_nnreal_ennreal
#align measure_theory.integral_mul_norm_le_Lp_mul_Lq MeasureTheory.integral_mul_norm_le_Lp_mul_Lq
+-/
+#print MeasureTheory.integral_mul_le_Lp_mul_Lq_of_nonneg /-
/-- Hölder's inequality for functions `α → ℝ`. The integral of the product of two nonnegative
functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are conjugate
exponents. -/
@@ -1846,6 +2130,7 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
rw [h_left, h_right_f, h_right_g]
exact integral_mul_norm_le_Lp_mul_Lq hpq hf hg
#align measure_theory.integral_mul_le_Lp_mul_Lq_of_nonneg MeasureTheory.integral_mul_le_Lp_mul_Lq_of_nonneg
+-/
end Properties
@@ -1868,10 +2153,12 @@ def SimpleFunc.toLargerSpace (hm : m ≤ m0) (f : @SimpleFunc β m γ) : SimpleF
#align measure_theory.simple_func.to_larger_space MeasureTheory.SimpleFunc.toLargerSpace
-/
+#print MeasureTheory.SimpleFunc.coe_toLargerSpace_eq /-
theorem SimpleFunc.coe_toLargerSpace_eq (hm : m ≤ m0) (f : @SimpleFunc β m γ) :
⇑(f.toLargerSpace hm) = f :=
rfl
#align measure_theory.simple_func.coe_to_larger_space_eq MeasureTheory.SimpleFunc.coe_toLargerSpace_eq
+-/
#print MeasureTheory.integral_simpleFunc_larger_space /-
theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F)
@@ -1987,6 +2274,7 @@ section SnormBound
variable {m0 : MeasurableSpace α} {μ : Measure α}
+#print MeasureTheory.snorm_one_le_of_le /-
theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f μ) (hfint' : 0 ≤ ∫ x, f x ∂μ)
(hf : ∀ᵐ ω ∂μ, f ω ≤ r) : snorm f 1 μ ≤ 2 * μ Set.univ * r :=
by
@@ -2035,7 +2323,9 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
rwa [← two_mul, mul_assoc, mul_le_mul_left (two_pos : (0 : ℝ) < 2)]
· exact hfint.neg.sup (integrable_zero _ _ μ)
#align measure_theory.snorm_one_le_of_le MeasureTheory.snorm_one_le_of_le
+-/
+#print MeasureTheory.snorm_one_le_of_le' /-
theorem snorm_one_le_of_le' {r : ℝ} {f : α → ℝ} (hfint : Integrable f μ) (hfint' : 0 ≤ ∫ x, f x ∂μ)
(hf : ∀ᵐ ω ∂μ, f ω ≤ r) : snorm f 1 μ ≤ 2 * μ Set.univ * ENNReal.ofReal r :=
by
@@ -2043,6 +2333,7 @@ theorem snorm_one_le_of_le' {r : ℝ} {f : α → ℝ} (hfint : Integrable f μ)
simp only [Real.coe_toNNReal', le_max_iff]
filter_upwards [hf] with ω hω using Or.inl hω
#align measure_theory.snorm_one_le_of_le' MeasureTheory.snorm_one_le_of_le'
+-/
end SnormBound
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -837,16 +837,16 @@ end
-- mathport name: «expr∫ , ∂ »
-notation3"∫ "(...)", "r:(scoped f => f)" ∂"μ => integral μ r
+notation3"∫ "(...)", "r:60:(scoped f => f)" ∂"μ:70 => integral μ r
-- mathport name: «expr∫ , »
-notation3"∫ "(...)", "r:(scoped f => integral volume f) => r
+notation3"∫ "(...)", "r:60:(scoped f => integral volume f) => r
-- mathport name: «expr∫ in , ∂ »
-notation3"∫ "(...)" in "s", "r:(scoped f => f)" ∂"μ => integral (Measure.restrict μ s) r
+notation3"∫ "(...)" in "s", "r:60:(scoped f => f)" ∂"μ:70 => integral (Measure.restrict μ s) r
-- mathport name: «expr∫ in , »
-notation3"∫ "(...)" in "s", "r:(scoped f => integral Measure.restrict volume s f) => r
+notation3"∫ "(...)" in "s", "r:60:(scoped f => integral Measure.restrict volume s f) => r
section Properties
@@ -855,14 +855,14 @@ open ContinuousLinearMap MeasureTheory.SimpleFunc
variable {f g : α → E} {m : MeasurableSpace α} {μ : Measure α}
#print MeasureTheory.integral_eq /-
-theorem integral_eq (f : α → E) (hf : Integrable f μ) : (∫ a, f a ∂μ) = L1.integral (hf.toL1 f) :=
- by rw [integral]; exact @dif_pos _ (id _) hf _ _ _
+theorem integral_eq (f : α → E) (hf : Integrable f μ) : ∫ a, f a ∂μ = L1.integral (hf.toL1 f) := by
+ rw [integral]; exact @dif_pos _ (id _) hf _ _ _
#align measure_theory.integral_eq MeasureTheory.integral_eq
-/
#print MeasureTheory.integral_eq_setToFun /-
theorem integral_eq_setToFun (f : α → E) :
- (∫ a, f a ∂μ) = setToFun μ (weightedSMul μ) (dominatedFinMeasAdditive_weightedSMul μ) f := by
+ ∫ a, f a ∂μ = setToFun μ (weightedSMul μ) (dominatedFinMeasAdditive_weightedSMul μ) f := by
simp only [integral, L1.integral]; rfl
#align measure_theory.integral_eq_set_to_fun MeasureTheory.integral_eq_setToFun
-/
@@ -873,17 +873,17 @@ theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f
exact (L1.set_to_fun_eq_set_to_L1 (dominated_fin_meas_additive_weighted_smul μ) f).symm
#align measure_theory.L1.integral_eq_integral MeasureTheory.L1.integral_eq_integral
-theorem integral_undef (h : ¬Integrable f μ) : (∫ a, f a ∂μ) = 0 := by rw [integral];
+theorem integral_undef (h : ¬Integrable f μ) : ∫ a, f a ∂μ = 0 := by rw [integral];
exact @dif_neg _ (id _) h _ _ _
#align measure_theory.integral_undef MeasureTheory.integral_undef
-theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : (∫ a, f a ∂μ) = 0 :=
+theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : ∫ a, f a ∂μ = 0 :=
integral_undef <| not_and_of_not_left _ h
#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aestronglyMeasurable
variable (α E)
-theorem integral_zero : (∫ a : α, (0 : E) ∂μ) = 0 :=
+theorem integral_zero : ∫ a : α, (0 : E) ∂μ = 0 :=
by
simp only [integral, L1.integral]
exact set_to_fun_zero (dominated_fin_meas_additive_weighted_smul μ)
@@ -896,74 +896,74 @@ theorem integral_zero' : integral μ (0 : α → E) = 0 :=
variable {α E}
-theorem integrable_of_integral_eq_one {f : α → ℝ} (h : (∫ x, f x ∂μ) = 1) : Integrable f μ := by
+theorem integrable_of_integral_eq_one {f : α → ℝ} (h : ∫ x, f x ∂μ = 1) : Integrable f μ := by
contrapose h; rw [integral_undef h]; exact zero_ne_one
#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
theorem integral_add (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, f a + g a ∂μ) = (∫ a, f a ∂μ) + ∫ a, g a ∂μ :=
+ ∫ a, f a + g a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_add (dominated_fin_meas_additive_weighted_smul μ) hf hg
#align measure_theory.integral_add MeasureTheory.integral_add
theorem integral_add' (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, (f + g) a ∂μ) = (∫ a, f a ∂μ) + ∫ a, g a ∂μ :=
+ ∫ a, (f + g) a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ :=
integral_add hf hg
#align measure_theory.integral_add' MeasureTheory.integral_add'
#print MeasureTheory.integral_finset_sum /-
theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀ i ∈ s, Integrable (f i) μ) :
- (∫ a, ∑ i in s, f i a ∂μ) = ∑ i in s, ∫ a, f i a ∂μ :=
+ ∫ a, ∑ i in s, f i a ∂μ = ∑ i in s, ∫ a, f i a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_finset_sum (dominated_fin_meas_additive_weighted_smul _) s hf
#align measure_theory.integral_finset_sum MeasureTheory.integral_finset_sum
-/
-theorem integral_neg (f : α → E) : (∫ a, -f a ∂μ) = -∫ a, f a ∂μ :=
+theorem integral_neg (f : α → E) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_neg (dominated_fin_meas_additive_weighted_smul μ) f
#align measure_theory.integral_neg MeasureTheory.integral_neg
-theorem integral_neg' (f : α → E) : (∫ a, (-f) a ∂μ) = -∫ a, f a ∂μ :=
+theorem integral_neg' (f : α → E) : ∫ a, (-f) a ∂μ = -∫ a, f a ∂μ :=
integral_neg f
#align measure_theory.integral_neg' MeasureTheory.integral_neg'
theorem integral_sub (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, f a - g a ∂μ) = (∫ a, f a ∂μ) - ∫ a, g a ∂μ :=
+ ∫ a, f a - g a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_sub (dominated_fin_meas_additive_weighted_smul μ) hf hg
#align measure_theory.integral_sub MeasureTheory.integral_sub
theorem integral_sub' (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, (f - g) a ∂μ) = (∫ a, f a ∂μ) - ∫ a, g a ∂μ :=
+ ∫ a, (f - g) a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
integral_sub hf hg
#align measure_theory.integral_sub' MeasureTheory.integral_sub'
-theorem integral_smul (c : 𝕜) (f : α → E) : (∫ a, c • f a ∂μ) = c • ∫ a, f a ∂μ :=
+theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_smul (dominated_fin_meas_additive_weighted_smul μ) weighted_smul_smul c f
#align measure_theory.integral_smul MeasureTheory.integral_smul
theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, r * f a ∂μ) = r * ∫ a, f a ∂μ :=
+ ∫ a, r * f a ∂μ = r * ∫ a, f a ∂μ :=
integral_smul r f
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
theorem integral_mul_right {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, f a * r ∂μ) = (∫ a, f a ∂μ) * r := by simp only [mul_comm]; exact integral_mul_left r f
+ ∫ a, f a * r ∂μ = (∫ a, f a ∂μ) * r := by simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, f a / r ∂μ) = (∫ a, f a ∂μ) / r := by
+ ∫ a, f a / r ∂μ = (∫ a, f a ∂μ) / r := by
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
-theorem integral_congr_ae (h : f =ᵐ[μ] g) : (∫ a, f a ∂μ) = ∫ a, g a ∂μ :=
+theorem integral_congr_ae (h : f =ᵐ[μ] g) : ∫ a, f a ∂μ = ∫ a, g a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_congr_ae (dominated_fin_meas_additive_weighted_smul μ) h
@@ -972,7 +972,7 @@ theorem integral_congr_ae (h : f =ᵐ[μ] g) : (∫ a, f a ∂μ) = ∫ a, g a
#print MeasureTheory.L1.integral_of_fun_eq_integral /-
@[simp]
theorem L1.integral_of_fun_eq_integral {f : α → E} (hf : Integrable f μ) :
- (∫ a, (hf.toL1 f) a ∂μ) = ∫ a, f a ∂μ :=
+ ∫ a, (hf.toL1 f) a ∂μ = ∫ a, f a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_to_L1 (dominated_fin_meas_additive_weighted_smul μ) hf
@@ -1002,7 +1002,7 @@ theorem ennnorm_integral_le_lintegral_ennnorm (f : α → E) :
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
-theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : (∫ a, f a ∂μ) = 0 := by
+theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : ∫ a, f a ∂μ = 0 := by
simp [integral_congr_ae hf, integral_zero]
#align measure_theory.integral_eq_zero_of_ae MeasureTheory.integral_eq_zero_of_ae
@@ -1153,13 +1153,13 @@ theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
/-- The Bochner integral of a real-valued function `f : α → ℝ` is the difference between the
integral of the positive part of `f` and the integral of the negative part of `f`. -/
theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
- (∫ a, f a ∂μ) =
- ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) -
- ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) :=
+ ∫ a, f a ∂μ =
+ ENNReal.toReal (∫⁻ a, (ENNReal.ofReal <| f a) ∂μ) -
+ ENNReal.toReal (∫⁻ a, (ENNReal.ofReal <| -f a) ∂μ) :=
by
let f₁ := hf.toL1 f
-- Go to the `L¹` space
- have eq₁ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) = ‖Lp.posPart f₁‖ :=
+ have eq₁ : ENNReal.toReal (∫⁻ a, (ENNReal.ofReal <| f a) ∂μ) = ‖Lp.posPart f₁‖ :=
by
rw [L1.norm_def]
congr 1
@@ -1171,7 +1171,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [Real.nnnorm_of_nonneg (le_max_right _ _)]
simp only [Real.coe_toNNReal', Subtype.coe_mk]
-- Go to the `L¹` space
- have eq₂ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) = ‖Lp.negPart f₁‖ :=
+ have eq₂ : ENNReal.toReal (∫⁻ a, (ENNReal.ofReal <| -f a) ∂μ) = ‖Lp.negPart f₁‖ :=
by
rw [L1.norm_def]
congr 1
@@ -1188,11 +1188,11 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
(hfm : AEStronglyMeasurable f μ) :
- (∫ a, f a ∂μ) = ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) :=
+ ∫ a, f a ∂μ = ENNReal.toReal (∫⁻ a, (ENNReal.ofReal <| f a) ∂μ) :=
by
by_cases hfi : integrable f μ
· rw [integral_eq_lintegral_pos_part_sub_lintegral_neg_part hfi]
- have h_min : (∫⁻ a, ENNReal.ofReal (-f a) ∂μ) = 0 :=
+ have h_min : ∫⁻ a, ENNReal.ofReal (-f a) ∂μ = 0 :=
by
rw [lintegral_eq_zero_iff']
· refine' hf.mono _
@@ -1204,7 +1204,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
· rw [integral_undef hfi]
simp_rw [integrable, hfm, has_finite_integral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
Classical.not_not] at hfi
- have : (∫⁻ a : α, ENNReal.ofReal (f a) ∂μ) = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ :=
+ have : ∫⁻ a : α, ENNReal.ofReal (f a) ∂μ = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ :=
by
refine' lintegral_congr_ae (hf.mono fun a h => _)
rw [Real.norm_eq_abs, abs_of_nonneg h]
@@ -1213,7 +1213,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
#print MeasureTheory.integral_norm_eq_lintegral_nnnorm /-
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
- (hf : AEStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
+ (hf : AEStronglyMeasurable f μ) : ∫ x, ‖f x‖ ∂μ = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
@@ -1230,7 +1230,7 @@ theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f :
-/
theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
- (∫ a, f a ∂μ) = (∫ a, Real.toNNReal (f a) ∂μ) - ∫ a, Real.toNNReal (-f a) ∂μ :=
+ ∫ a, f a ∂μ = ∫ a, Real.toNNReal (f a) ∂μ - ∫ a, Real.toNNReal (-f a) ∂μ :=
by
rw [← integral_sub hf.real_to_nnreal]
· simp
@@ -1246,7 +1246,7 @@ theorem integral_nonneg_of_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) : 0 ≤ ∫
#align measure_theory.integral_nonneg_of_ae MeasureTheory.integral_nonneg_of_ae
theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x => (f x : ℝ)) μ) :
- (∫⁻ a, f a ∂μ) = ENNReal.ofReal (∫ a, f a ∂μ) :=
+ ∫⁻ a, f a ∂μ = ENNReal.ofReal (∫ a, f a ∂μ) :=
by
simp_rw [integral_eq_lintegral_of_nonneg_ae (eventually_of_forall fun x => (f x).coe_nonneg)
hfi.ae_strongly_measurable,
@@ -1269,7 +1269,7 @@ theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
- (∫ a, (f a).toReal ∂μ) = (∫⁻ a, f a ∂μ).toReal :=
+ ∫ a, (f a).toReal ∂μ = (∫⁻ a, f a ∂μ).toReal :=
by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_to_real.ae_strongly_measurable]
· rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
@@ -1278,13 +1278,13 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
theorem lintegral_coe_le_coe_iff_integral_le {f : α → ℝ≥0} (hfi : Integrable (fun x => (f x : ℝ)) μ)
- {b : ℝ≥0} : (∫⁻ a, f a ∂μ) ≤ b ↔ (∫ a, (f a : ℝ) ∂μ) ≤ b := by
+ {b : ℝ≥0} : ∫⁻ a, f a ∂μ ≤ b ↔ ∫ a, (f a : ℝ) ∂μ ≤ b := by
rw [lintegral_coe_eq_integral f hfi, ENNReal.ofReal, ENNReal.coe_le_coe,
Real.toNNReal_le_iff_le_coe]
#align measure_theory.lintegral_coe_le_coe_iff_integral_le MeasureTheory.lintegral_coe_le_coe_iff_integral_le
-theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (h : (∫⁻ a, f a ∂μ) ≤ b) :
- (∫ a, (f a : ℝ) ∂μ) ≤ b :=
+theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (h : ∫⁻ a, f a ∂μ ≤ b) :
+ ∫ a, (f a : ℝ) ∂μ ≤ b :=
by
by_cases hf : integrable (fun a => (f a : ℝ)) μ
· exact (lintegral_coe_le_coe_iff_integral_le hf).1 h
@@ -1295,19 +1295,19 @@ theorem integral_nonneg {f : α → ℝ} (hf : 0 ≤ f) : 0 ≤ ∫ a, f a ∂μ
integral_nonneg_of_ae <| eventually_of_forall hf
#align measure_theory.integral_nonneg MeasureTheory.integral_nonneg
-theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : (∫ a, f a ∂μ) ≤ 0 :=
+theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : ∫ a, f a ∂μ ≤ 0 :=
by
have hf : 0 ≤ᵐ[μ] -f := hf.mono fun a h => by rwa [Pi.neg_apply, Pi.zero_apply, neg_nonneg]
have : 0 ≤ ∫ a, -f a ∂μ := integral_nonneg_of_ae hf
rwa [integral_neg, neg_nonneg] at this
#align measure_theory.integral_nonpos_of_ae MeasureTheory.integral_nonpos_of_ae
-theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : (∫ a, f a ∂μ) ≤ 0 :=
+theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : ∫ a, f a ∂μ ≤ 0 :=
integral_nonpos_of_ae <| eventually_of_forall hf
#align measure_theory.integral_nonpos MeasureTheory.integral_nonpos
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = 0 ↔ f =ᵐ[μ] 0 := by
+ ∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 := by
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
lintegral_eq_zero_iff' (ennreal.measurable_of_real.comp_ae_measurable hfi.1.AEMeasurable), ←
ENNReal.not_lt_top, ← has_finite_integral_iff_of_real hf, hfi.2, not_true, or_false_iff, ←
@@ -1316,19 +1316,19 @@ theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
#align measure_theory.integral_eq_zero_iff_of_nonneg_ae MeasureTheory.integral_eq_zero_iff_of_nonneg_ae
theorem integral_eq_zero_iff_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = 0 ↔ f =ᵐ[μ] 0 :=
+ ∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 :=
integral_eq_zero_iff_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_eq_zero_iff_of_nonneg MeasureTheory.integral_eq_zero_iff_of_nonneg
theorem integral_pos_iff_support_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
- (0 < ∫ x, f x ∂μ) ↔ 0 < μ (Function.support f) := by
+ 0 < ∫ x, f x ∂μ ↔ 0 < μ (Function.support f) := by
simp_rw [(integral_nonneg_of_ae hf).lt_iff_ne, pos_iff_ne_zero, Ne.def, @eq_comm ℝ 0,
integral_eq_zero_iff_of_nonneg_ae hf hfi, Filter.EventuallyEq, ae_iff, Pi.zero_apply,
Function.support]
#align measure_theory.integral_pos_iff_support_of_nonneg_ae MeasureTheory.integral_pos_iff_support_of_nonneg_ae
theorem integral_pos_iff_support_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
- (0 < ∫ x, f x ∂μ) ↔ 0 < μ (Function.support f) :=
+ 0 < ∫ x, f x ∂μ ↔ 0 < μ (Function.support f) :=
integral_pos_iff_support_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_pos_iff_support_of_nonneg MeasureTheory.integral_pos_iff_support_of_nonneg
@@ -1359,7 +1359,7 @@ theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1 : p ≠ 0) (hp2 : p ≠ ∞)
(hf : Memℒp f p μ) : snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) :=
by
- have A : (∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.to_real) ∂μ) = ∫⁻ a : α, ‖f a‖₊ ^ p.to_real ∂μ :=
+ have A : ∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.to_real) ∂μ = ∫⁻ a : α, ‖f a‖₊ ^ p.to_real ∂μ :=
by
apply lintegral_congr fun x => _
rw [← of_real_rpow_of_nonneg (norm_nonneg _) to_real_nonneg, ofReal_norm_eq_coe_nnnorm]
@@ -1374,8 +1374,7 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
end NormedAddCommGroup
theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ᵐ[μ] g) :
- (∫ a, f a ∂μ) ≤ ∫ a, g a ∂μ :=
- by
+ ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ := by
simp only [integral, L1.integral]
exact
set_to_fun_mono (dominated_fin_meas_additive_weighted_smul μ)
@@ -1384,12 +1383,12 @@ theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integra
@[mono]
theorem integral_mono {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ g) :
- (∫ a, f a ∂μ) ≤ ∫ a, g a ∂μ :=
+ ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ :=
integral_mono_ae hf hg <| eventually_of_forall h
#align measure_theory.integral_mono MeasureTheory.integral_mono
theorem integral_mono_of_nonneg {f g : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hgi : Integrable g μ)
- (h : f ≤ᵐ[μ] g) : (∫ a, f a ∂μ) ≤ ∫ a, g a ∂μ :=
+ (h : f ≤ᵐ[μ] g) : ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ :=
by
by_cases hfm : ae_strongly_measurable f μ
· refine' integral_mono_ae ⟨hfm, _⟩ hgi h
@@ -1400,7 +1399,7 @@ theorem integral_mono_of_nonneg {f g : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hgi :
#align measure_theory.integral_mono_of_nonneg MeasureTheory.integral_mono_of_nonneg
theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0 ≤ᵐ[ν] f)
- (hfi : Integrable f ν) : (∫ a, f a ∂μ) ≤ ∫ a, f a ∂ν :=
+ (hfi : Integrable f ν) : ∫ a, f a ∂μ ≤ ∫ a, f a ∂ν :=
by
have hfi' : integrable f μ := hfi.mono_measure hle
have hf' : 0 ≤ᵐ[μ] f := hle.absolutely_continuous hf
@@ -1440,13 +1439,13 @@ theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ
#align measure_theory.simple_func.integral_eq_integral MeasureTheory.SimpleFunc.integral_eq_integral
theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
+ ∫ x, f x ∂μ = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
rw [← f.integral_eq_integral hfi, simple_func.integral, ← simple_func.integral_eq]; rfl
#align measure_theory.simple_func.integral_eq_sum MeasureTheory.SimpleFunc.integral_eq_sum
#print MeasureTheory.integral_const /-
@[simp]
-theorem integral_const (c : E) : (∫ x : α, c ∂μ) = (μ univ).toReal • c :=
+theorem integral_const (c : E) : ∫ x : α, c ∂μ = (μ univ).toReal • c :=
by
cases' (@le_top _ _ _ (μ univ)).lt_or_eq with hμ hμ
· haveI : is_finite_measure μ := ⟨hμ⟩
@@ -1496,7 +1495,7 @@ theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace
variable {ν : Measure α}
theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integrable f ν) :
- (∫ x, f x ∂μ + ν) = (∫ x, f x ∂μ) + ∫ x, f x ∂ν :=
+ ∫ x, f x ∂(μ + ν) = ∫ x, f x ∂μ + ∫ x, f x ∂ν :=
by
have hfi := hμ.add_measure hν
simp_rw [integral_eq_set_to_fun]
@@ -1519,8 +1518,7 @@ theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integ
#align measure_theory.integral_add_measure MeasureTheory.integral_add_measure
@[simp]
-theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) :
- (∫ x, f x ∂(0 : Measure α)) = 0 :=
+theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) : ∫ x, f x ∂(0 : Measure α) = 0 :=
by
simp only [integral, L1.integral]
exact set_to_fun_measure_zero (dominated_fin_meas_additive_weighted_smul _) rfl
@@ -1528,7 +1526,7 @@ theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) :
theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
- (∫ a, f a ∂∑ i in s, μ i) = ∑ i in s, ∫ a, f a ∂μ i := by
+ ∫ a, f a ∂∑ i in s, μ i = ∑ i in s, ∫ a, f a ∂μ i := by
classical
refine' Finset.induction_on' s _ _
-- `induction s using finset.induction_on'` fails
@@ -1539,7 +1537,7 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E}
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
- (nndist (∫ x, f x ∂μ) (∫ x, f x ∂μ + ν) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν :=
+ (nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν :=
by
rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel']
exact ennnorm_integral_le_lintegral_ennnorm _
@@ -1553,13 +1551,13 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
simp only [HasSum, ← integral_finset_sum_measure fun i _ => hfi i]
refine' metric.nhds_basis_ball.tendsto_right_iff.mpr fun ε ε0 => _
lift ε to ℝ≥0 using ε0.le
- have hf_lt : (∫⁻ x, ‖f x‖₊ ∂measure.sum μ) < ∞ := hf.2
- have hmem : ∀ᶠ y in 𝓝 (∫⁻ x, ‖f x‖₊ ∂measure.sum μ), (∫⁻ x, ‖f x‖₊ ∂measure.sum μ) < y + ε :=
+ have hf_lt : ∫⁻ x, ‖f x‖₊ ∂measure.sum μ < ∞ := hf.2
+ have hmem : ∀ᶠ y in 𝓝 (∫⁻ x, ‖f x‖₊ ∂measure.sum μ), ∫⁻ x, ‖f x‖₊ ∂measure.sum μ < y + ε :=
by
refine' tendsto_id.add tendsto_const_nhds (lt_mem_nhds <| ENNReal.lt_add_right _ _)
exacts [hf_lt.ne, ENNReal.coe_ne_zero.2 (NNReal.coe_ne_zero.1 ε0.ne')]
refine' ((has_sum_lintegral_measure (fun x => ‖f x‖₊) μ).Eventually hmem).mono fun s hs => _
- obtain ⟨ν, hν⟩ : ∃ ν, (∑ i in s, μ i) + ν = measure.sum μ :=
+ obtain ⟨ν, hν⟩ : ∃ ν, ∑ i in s, μ i + ν = measure.sum μ :=
by
refine' ⟨measure.sum fun i : ↥(sᶜ : Set ι) => μ i, _⟩
simpa only [← measure.sum_coe_finset] using measure.sum_add_sum_compl (s : Set ι) μ
@@ -1571,14 +1569,13 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
#align measure_theory.has_sum_integral_measure MeasureTheory.hasSum_integral_measure
theorem integral_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
- (hf : Integrable f (Measure.sum μ)) : (∫ a, f a ∂Measure.sum μ) = ∑' i, ∫ a, f a ∂μ i :=
+ (hf : Integrable f (Measure.sum μ)) : ∫ a, f a ∂Measure.sum μ = ∑' i, ∫ a, f a ∂μ i :=
(hasSum_integral_measure hf).tsum_eq.symm
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args -/
theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
- (hf' : (∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ) ≠ ∞) :
- (∫ a : α, ∑' i, f i a ∂μ) = ∑' i, ∫ a : α, f i a ∂μ :=
+ (hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) : ∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ :=
by
have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) :=
@@ -1601,7 +1598,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
apply AEMeasurable.nnreal_tsum
exact fun i => (hf i).nnnorm.AEMeasurable
· dsimp [has_finite_integral]
- have : (∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ) < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
+ have : ∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
convert this using 1
apply lintegral_congr_ae
simp_rw [← coe_nnnorm, ← NNReal.coe_tsum, NNReal.nnnorm_eq]
@@ -1612,7 +1609,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
@[simp]
-theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : (∫ x, f x ∂c • μ) = c.toReal • ∫ x, f x ∂μ :=
+theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : ∫ x, f x ∂c • μ = c.toReal • ∫ x, f x ∂μ :=
by
-- First we consider the “degenerate” case `c = ∞`
rcases eq_or_ne c ∞ with (rfl | hc)
@@ -1628,7 +1625,7 @@ theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : (∫ x, f x ∂c
#align measure_theory.integral_smul_measure MeasureTheory.integral_smul_measure
theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α → β} (hφ : Measurable φ)
- {f : β → E} (hfm : StronglyMeasurable f) : (∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
+ {f : β → E} (hfm : StronglyMeasurable f) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
by
by_cases hfi : integrable f (measure.map φ μ); swap
· rw [integral_undef hfi, integral_undef]
@@ -1654,10 +1651,10 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → E}
(hfm : AEStronglyMeasurable f (Measure.map φ μ)) :
- (∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
+ ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
let g := hfm.mk f
calc
- (∫ y, f y ∂Measure.map φ μ) = ∫ y, g y ∂Measure.map φ μ := integral_congr_ae hfm.ae_eq_mk
+ ∫ y, f y ∂Measure.map φ μ = ∫ y, g y ∂Measure.map φ μ := integral_congr_ae hfm.ae_eq_mk
_ = ∫ y, g y ∂Measure.map (hφ.mk φ) μ := by congr 1; exact measure.map_congr hφ.ae_eq_mk
_ = ∫ x, g (hφ.mk φ x) ∂μ :=
(integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk)
@@ -1666,7 +1663,7 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
#align measure_theory.integral_map MeasureTheory.integral_map
theorem MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α → β}
- (hf : MeasurableEmbedding f) (g : β → E) : (∫ y, g y ∂Measure.map f μ) = ∫ x, g (f x) ∂μ :=
+ (hf : MeasurableEmbedding f) (g : β → E) : ∫ y, g y ∂Measure.map f μ = ∫ x, g (f x) ∂μ :=
by
by_cases hgm : ae_strongly_measurable g (measure.map f μ)
· exact integral_map hf.measurable.ae_measurable hgm
@@ -1676,49 +1673,49 @@ theorem MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α
theorem ClosedEmbedding.integral_map {β} [TopologicalSpace α] [BorelSpace α] [TopologicalSpace β]
[MeasurableSpace β] [BorelSpace β] {φ : α → β} (hφ : ClosedEmbedding φ) (f : β → E) :
- (∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
+ ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
hφ.MeasurableEmbedding.integral_map _
#align closed_embedding.integral_map ClosedEmbedding.integral_map
theorem integral_map_equiv {β} [MeasurableSpace β] (e : α ≃ᵐ β) (f : β → E) :
- (∫ y, f y ∂Measure.map e μ) = ∫ x, f (e x) ∂μ :=
+ ∫ y, f y ∂Measure.map e μ = ∫ x, f (e x) ∂μ :=
e.MeasurableEmbedding.integral_map f
#align measure_theory.integral_map_equiv MeasureTheory.integral_map_equiv
theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α → β} {ν}
(h₁ : MeasurePreserving f μ ν) (h₂ : MeasurableEmbedding f) (g : β → E) :
- (∫ x, g (f x) ∂μ) = ∫ y, g y ∂ν :=
+ ∫ x, g (f x) ∂μ = ∫ y, g y ∂ν :=
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
#print MeasureTheory.set_integral_eq_subtype /-
theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → E) : (∫ x in s, f x) = ∫ x : s, f x := by rw [← map_comap_subtype_coe hs];
+ (f : α → E) : ∫ x in s, f x = ∫ x : s, f x := by rw [← map_comap_subtype_coe hs];
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
-/
@[simp]
theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : StronglyMeasurable f) :
- (∫ x, f x ∂Measure.dirac a) = f a := by
+ ∫ x, f x ∂Measure.dirac a = f a := by
borelize E
calc
- (∫ x, f x ∂measure.dirac a) = ∫ x, f a ∂measure.dirac a :=
+ ∫ x, f x ∂measure.dirac a = ∫ x, f a ∂measure.dirac a :=
integral_congr_ae <| ae_eq_dirac' hfm.measurable
_ = f a := by simp [measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac' MeasureTheory.integral_dirac'
@[simp]
theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α) :
- (∫ x, f x ∂Measure.dirac a) = f a :=
+ ∫ x, f x ∂Measure.dirac a = f a :=
calc
- (∫ x, f x ∂Measure.dirac a) = ∫ x, f a ∂Measure.dirac a := integral_congr_ae <| ae_eq_dirac f
+ ∫ x, f x ∂Measure.dirac a = ∫ x, f a ∂Measure.dirac a := integral_congr_ae <| ae_eq_dirac f
_ = f a := by simp [measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
{s : Set α} (hs : MeasurableSet s) [Decidable (a ∈ s)] :
- (∫ x in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0 :=
+ ∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 :=
by
rw [restrict_dirac' hs]
swap; · infer_instance
@@ -1728,7 +1725,7 @@ theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : Stro
#align measure_theory.set_integral_dirac' MeasureTheory.set_integral_dirac'
theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
- (s : Set α) [Decidable (a ∈ s)] : (∫ x in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0 :=
+ (s : Set α) [Decidable (a ∈ s)] : ∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 :=
by
rw [restrict_dirac]
split_ifs
@@ -1762,7 +1759,7 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
· simp only [Ne.def, WithTop.mul_eq_top_iff, ENNReal.ofReal_eq_zero, not_le,
ENNReal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
exact fun _ => measure_ne_top _ _
- · have h_lt_top : (∫⁻ a, ‖f a‖₊ ∂μ) < ∞ := hf_int.has_finite_integral
+ · have h_lt_top : ∫⁻ a, ‖f a‖₊ ∂μ < ∞ := hf_int.has_finite_integral
simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
convert h_lt_top.ne
ext1 x
@@ -1775,7 +1772,7 @@ conjugate exponents. -/
theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α → E} {p q : ℝ}
(hpq : p.IsConjugateExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
- (∫ a, ‖f a‖ * ‖g a‖ ∂μ) ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) :=
+ ∫ a, ‖f a‖ * ‖g a‖ ∂μ ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) :=
by
-- translate the Bochner integrals into Lebesgue integrals.
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae,
@@ -1790,14 +1787,14 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
rw [ENNReal.toReal_rpow, ENNReal.toReal_rpow, ← ENNReal.toReal_mul]
-- replace norms by nnnorm
have h_left :
- (∫⁻ a, ENNReal.ofReal (‖f a‖ * ‖g a‖) ∂μ) =
+ ∫⁻ a, ENNReal.ofReal (‖f a‖ * ‖g a‖) ∂μ =
∫⁻ a, ((fun x => (‖f x‖₊ : ℝ≥0∞)) * fun x => ‖g x‖₊) a ∂μ :=
by simp_rw [Pi.mul_apply, ← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_mul (norm_nonneg _)]
- have h_right_f : (∫⁻ a, ENNReal.ofReal (‖f a‖ ^ p) ∂μ) = ∫⁻ a, ‖f a‖₊ ^ p ∂μ :=
+ have h_right_f : ∫⁻ a, ENNReal.ofReal (‖f a‖ ^ p) ∂μ = ∫⁻ a, ‖f a‖₊ ^ p ∂μ :=
by
refine' lintegral_congr fun x => _
rw [← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.nonneg]
- have h_right_g : (∫⁻ a, ENNReal.ofReal (‖g a‖ ^ q) ∂μ) = ∫⁻ a, ‖g a‖₊ ^ q ∂μ :=
+ have h_right_g : ∫⁻ a, ENNReal.ofReal (‖g a‖ ^ q) ∂μ = ∫⁻ a, ‖g a‖₊ ^ q ∂μ :=
by
refine' lintegral_congr fun x => _
rw [← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.symm.nonneg]
@@ -1829,19 +1826,19 @@ exponents. -/
theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExponent q) {f g : α → ℝ}
(hf_nonneg : 0 ≤ᵐ[μ] f) (hg_nonneg : 0 ≤ᵐ[μ] g) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
- (∫ a, f a * g a ∂μ) ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) :=
+ ∫ a, f a * g a ∂μ ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) :=
by
- have h_left : (∫ a, f a * g a ∂μ) = ∫ a, ‖f a‖ * ‖g a‖ ∂μ :=
+ have h_left : ∫ a, f a * g a ∂μ = ∫ a, ‖f a‖ * ‖g a‖ ∂μ :=
by
refine' integral_congr_ae _
filter_upwards [hf_nonneg, hg_nonneg] with x hxf hxg
rw [Real.norm_of_nonneg hxf, Real.norm_of_nonneg hxg]
- have h_right_f : (∫ a, f a ^ p ∂μ) = ∫ a, ‖f a‖ ^ p ∂μ :=
+ have h_right_f : ∫ a, f a ^ p ∂μ = ∫ a, ‖f a‖ ^ p ∂μ :=
by
refine' integral_congr_ae _
filter_upwards [hf_nonneg] with x hxf
rw [Real.norm_of_nonneg hxf]
- have h_right_g : (∫ a, g a ^ q ∂μ) = ∫ a, ‖g a‖ ^ q ∂μ :=
+ have h_right_g : ∫ a, g a ^ q ∂μ = ∫ a, ‖g a‖ ^ q ∂μ :=
by
refine' integral_congr_ae _
filter_upwards [hg_nonneg] with x hxg
@@ -1879,7 +1876,7 @@ theorem SimpleFunc.coe_toLargerSpace_eq (hm : m ≤ m0) (f : @SimpleFunc β m γ
#print MeasureTheory.integral_simpleFunc_larger_space /-
theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F)
(hf_int : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in @SimpleFunc.range β F m f, ENNReal.toReal (μ (f ⁻¹' {x})) • x :=
+ ∫ x, f x ∂μ = ∑ x in @SimpleFunc.range β F m f, ENNReal.toReal (μ (f ⁻¹' {x})) • x :=
by
simp_rw [← f.coe_to_larger_space_eq hm]
have hf_int : integrable (f.to_larger_space hm) μ := by rwa [simple_func.coe_to_larger_space_eq]
@@ -1890,7 +1887,7 @@ theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F
#print MeasureTheory.integral_trim_simpleFunc /-
theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_int : Integrable f μ) :
- (∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm :=
+ ∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm :=
by
have hf : strongly_measurable[m] f := @simple_func.strongly_measurable β F m _ f
have hf_int_m := hf_int.trim hm hf
@@ -1904,7 +1901,7 @@ theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_in
#print MeasureTheory.integral_trim /-
theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : strongly_measurable[m] f) :
- (∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm := by
+ ∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm := by
borelize F
by_cases hf_int : integrable f μ
swap
@@ -1919,7 +1916,7 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : strongly_measurable[m
simple_func.integrable_approx_on_range (hf.mono hm).Measurable hf_int
have hf_seq_int_m : ∀ n, integrable (f_seq n) (μ.trim hm) := fun n =>
(hf_seq_int n).trim hm (hf_seq_meas n)
- have hf_seq_eq : ∀ n, (∫ x, f_seq n x ∂μ) = ∫ x, f_seq n x ∂μ.trim hm := fun n =>
+ have hf_seq_eq : ∀ n, ∫ x, f_seq n x ∂μ = ∫ x, f_seq n x ∂μ.trim hm := fun n =>
integral_trim_simple_func hm (f_seq n) (hf_seq_int n)
have h_lim_1 : at_top.tendsto (fun n => ∫ x, f_seq n x ∂μ) (𝓝 (∫ x, f x ∂μ)) :=
by
@@ -1940,7 +1937,7 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : strongly_measurable[m
#print MeasureTheory.integral_trim_ae /-
theorem integral_trim_ae (hm : m ≤ m0) {f : β → F} (hf : AEStronglyMeasurable f (μ.trim hm)) :
- (∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm :=
+ ∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm :=
by
rw [integral_congr_ae (ae_eq_of_ae_eq_trim hf.ae_eq_mk), integral_congr_ae hf.ae_eq_mk]
exact integral_trim hm hf.strongly_measurable_mk
@@ -1999,7 +1996,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, MulZeroClass.mul_zero]
exact le_rfl
rw [hr, Nonneg.coe_zero] at hf
- have hnegf : (∫ x, -f x ∂μ) = 0 :=
+ have hnegf : ∫ x, -f x ∂μ = 0 :=
by
rw [integral_neg, neg_eq_zero]
exact le_antisymm (integral_nonpos_of_ae hf) hfint'
@@ -2019,7 +2016,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
· norm_num
haveI := hμ
rw [integral_eq_integral_pos_part_sub_integral_neg_part hfint, sub_nonneg] at hfint'
- have hposbdd : (∫ ω, max (f ω) 0 ∂μ) ≤ (μ Set.univ).toReal • r :=
+ have hposbdd : ∫ ω, max (f ω) 0 ∂μ ≤ (μ Set.univ).toReal • r :=
by
rw [← integral_const]
refine' integral_mono_ae hfint.real_to_nnreal (integrable_const r) _
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -248,7 +248,6 @@ theorem norm_weightedSMul_le (s : Set α) : ‖(weightedSMul μ s : F →L[ℝ]
((mul_le_mul_of_nonneg_left norm_id_le (norm_nonneg _)).trans (mul_one _).le)
_ = abs (μ s).toReal := (Real.norm_eq_abs _)
_ = (μ s).toReal := abs_eq_self.mpr ENNReal.toReal_nonneg
-
#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSMul_le
theorem dominatedFinMeasAdditive_weightedSMul {m : MeasurableSpace α} (μ : Measure α) :
@@ -364,7 +363,6 @@ theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
(const α y).integral μ = ∑ z in {y}, (μ (const α y ⁻¹' {z})).toReal • z :=
integral_eq_sum_of_subset <| (filter_subset _ _).trans (range_const_subset _ _)
_ = (μ univ).toReal • y := by simp
-
#align measure_theory.simple_func.integral_const MeasureTheory.SimpleFunc.integral_const
@[simp]
@@ -456,7 +454,6 @@ theorem norm_setToSimpleFunc_le_integral_norm (T : Set α → E →L[ℝ] F) {C
norm_setToSimpleFunc_le_sum_mul_norm_of_integrable T hT_norm f hf
_ = C * (f.map norm).integral μ := by rw [map_integral f norm hf norm_zero];
simp_rw [smul_eq_mul]
-
#align measure_theory.simple_func.norm_set_to_simple_func_le_integral_norm MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm
theorem norm_integral_le_integral_norm (f : α →ₛ E) (hf : Integrable f μ) :
@@ -772,7 +769,6 @@ theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
_ ≤ ‖Integral‖ * ‖f‖ := (le_op_norm _ _)
_ ≤ 1 * ‖f‖ := (mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _)
_ = ‖f‖ := one_mul _
-
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
@[continuity]
@@ -1104,7 +1100,6 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
calc
‖∑ n in s, F n a‖ ≤ ∑ n in s, bound n a := norm_sum_le_of_le _ fun n hn => hFa n
_ ≤ ∑' n, bound n a := sum_le_tsum _ (fun n hn => ha0 n) has
-
#align measure_theory.has_sum_integral_of_dominated_convergence MeasureTheory.hasSum_integral_of_dominated_convergence
variable {X : Type _} [TopologicalSpace X] [FirstCountableTopology X]
@@ -1422,8 +1417,7 @@ theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖
calc
‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
norm_integral_le_lintegral_norm _
- _ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm
- )
+ _ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm)
fun h : ¬AEStronglyMeasurable f μ =>
by
rw [integral_non_ae_strongly_measurable h, norm_zero]
@@ -1435,7 +1429,6 @@ theorem norm_integral_le_of_norm_le {f : α → E} {g : α → ℝ} (hg : Integr
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, ‖f x‖ ∂μ := norm_integral_le_integral_norm f
_ ≤ ∫ x, g x ∂μ := integral_mono_of_nonneg (eventually_of_forall fun x => norm_nonneg _) hg h
-
#align measure_theory.norm_integral_le_of_norm_le MeasureTheory.norm_integral_le_of_norm_le
theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ) :
@@ -1474,7 +1467,6 @@ theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, C ∂μ := norm_integral_le_of_norm_le (integrable_const C) h
_ = C * (μ univ).toReal := by rw [integral_const, smul_eq_mul, mul_comm]
-
#align measure_theory.norm_integral_le_of_norm_le_const MeasureTheory.norm_integral_le_of_norm_le_const
#print MeasureTheory.tendsto_integral_approxOn_of_measurable /-
@@ -1671,7 +1663,6 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
(integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk)
_ = ∫ x, g (φ x) ∂μ := (integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _))
_ = ∫ x, f (φ x) ∂μ := integral_congr_ae <| ae_eq_comp hφ hfm.ae_eq_mk.symm
-
#align measure_theory.integral_map MeasureTheory.integral_map
theorem MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α → β}
@@ -1715,7 +1706,6 @@ theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : Stro
(∫ x, f x ∂measure.dirac a) = ∫ x, f a ∂measure.dirac a :=
integral_congr_ae <| ae_eq_dirac' hfm.measurable
_ = f a := by simp [measure.dirac_apply_of_mem]
-
#align measure_theory.integral_dirac' MeasureTheory.integral_dirac'
@[simp]
@@ -1724,7 +1714,6 @@ theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f :
calc
(∫ x, f x ∂Measure.dirac a) = ∫ x, f a ∂Measure.dirac a := integral_congr_ae <| ae_eq_dirac f
_ = f a := by simp [measure.dirac_apply_of_mem]
-
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -1863,11 +1863,8 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
end Properties
-/- failed to parenthesize: unknown constant 'Lean.Meta._root_.Lean.Parser.Command.registerSimpAttr'
-[PrettyPrinter.parenthesize.input] (Lean.Meta._root_.Lean.Parser.Command.registerSimpAttr
- [(Command.docComment "/--" "Simp set for integral rules. -/")]
- "register_simp_attr"
- `integral_simps)-/-- failed to format: unknown constant 'Lean.Meta._root_.Lean.Parser.Command.registerSimpAttr'
+-- PLEASE REPORT THIS TO MATHPORT DEVS, THIS SHOULD NOT HAPPEN.
+-- failed to format: unknown constant 'Lean.Meta._root_.Lean.Parser.Command.registerSimpAttr'
/-- Simp set for integral rules. -/ register_simp_attr integral_simps
attribute [integral_simps] integral_neg integral_smul L1.integral_add L1.integral_sub
mathlib commit https://github.com/leanprover-community/mathlib/commit/58a272265b5e05f258161260dd2c5d247213cbd3
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit 8f9fea08977f7e450770933ee6abb20733b47c92
+! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.MeasureTheory.Integral.SetToL1
/-!
# Bochner integral
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The Bochner integral extends the definition of the Lebesgue integral to functions that map from a
measure space into a Banach space (complete normed vector space). It is constructed here by
extending the integral on simple functions.
mathlib commit https://github.com/leanprover-community/mathlib/commit/13361559d66b84f80b6d5a1c4a26aa5054766725
@@ -163,99 +163,101 @@ open ContinuousLinearMap
variable [NormedAddCommGroup F] [NormedSpace ℝ F] {m : MeasurableSpace α} {μ : Measure α}
+#print MeasureTheory.weightedSMul /-
/-- Given a set `s`, return the continuous linear map `λ x, (μ s).to_real • x`. The extension of
that set function through `set_to_L1` gives the Bochner integral of L1 functions. -/
-def weightedSmul {m : MeasurableSpace α} (μ : Measure α) (s : Set α) : F →L[ℝ] F :=
+def weightedSMul {m : MeasurableSpace α} (μ : Measure α) (s : Set α) : F →L[ℝ] F :=
(μ s).toReal • ContinuousLinearMap.id ℝ F
-#align measure_theory.weighted_smul MeasureTheory.weightedSmul
+#align measure_theory.weighted_smul MeasureTheory.weightedSMul
+-/
-theorem weightedSmul_apply {m : MeasurableSpace α} (μ : Measure α) (s : Set α) (x : F) :
- weightedSmul μ s x = (μ s).toReal • x := by simp [weighted_smul]
-#align measure_theory.weighted_smul_apply MeasureTheory.weightedSmul_apply
+theorem weightedSMul_apply {m : MeasurableSpace α} (μ : Measure α) (s : Set α) (x : F) :
+ weightedSMul μ s x = (μ s).toReal • x := by simp [weighted_smul]
+#align measure_theory.weighted_smul_apply MeasureTheory.weightedSMul_apply
@[simp]
-theorem weightedSmul_zero_measure {m : MeasurableSpace α} :
- weightedSmul (0 : Measure α) = (0 : Set α → F →L[ℝ] F) := by ext1; simp [weighted_smul]
-#align measure_theory.weighted_smul_zero_measure MeasureTheory.weightedSmul_zero_measure
+theorem weightedSMul_zero_measure {m : MeasurableSpace α} :
+ weightedSMul (0 : Measure α) = (0 : Set α → F →L[ℝ] F) := by ext1; simp [weighted_smul]
+#align measure_theory.weighted_smul_zero_measure MeasureTheory.weightedSMul_zero_measure
@[simp]
-theorem weightedSmul_empty {m : MeasurableSpace α} (μ : Measure α) :
- weightedSmul μ ∅ = (0 : F →L[ℝ] F) := by ext1 x; rw [weighted_smul_apply]; simp
-#align measure_theory.weighted_smul_empty MeasureTheory.weightedSmul_empty
+theorem weightedSMul_empty {m : MeasurableSpace α} (μ : Measure α) :
+ weightedSMul μ ∅ = (0 : F →L[ℝ] F) := by ext1 x; rw [weighted_smul_apply]; simp
+#align measure_theory.weighted_smul_empty MeasureTheory.weightedSMul_empty
-theorem weightedSmul_add_measure {m : MeasurableSpace α} (μ ν : Measure α) {s : Set α}
+theorem weightedSMul_add_measure {m : MeasurableSpace α} (μ ν : Measure α) {s : Set α}
(hμs : μ s ≠ ∞) (hνs : ν s ≠ ∞) :
- (weightedSmul (μ + ν) s : F →L[ℝ] F) = weightedSmul μ s + weightedSmul ν s :=
+ (weightedSMul (μ + ν) s : F →L[ℝ] F) = weightedSMul μ s + weightedSMul ν s :=
by
ext1 x
push_cast
simp_rw [Pi.add_apply, weighted_smul_apply]
push_cast
rw [Pi.add_apply, ENNReal.toReal_add hμs hνs, add_smul]
-#align measure_theory.weighted_smul_add_measure MeasureTheory.weightedSmul_add_measure
+#align measure_theory.weighted_smul_add_measure MeasureTheory.weightedSMul_add_measure
-theorem weightedSmul_smul_measure {m : MeasurableSpace α} (μ : Measure α) (c : ℝ≥0∞) {s : Set α} :
- (weightedSmul (c • μ) s : F →L[ℝ] F) = c.toReal • weightedSmul μ s :=
+theorem weightedSMul_smul_measure {m : MeasurableSpace α} (μ : Measure α) (c : ℝ≥0∞) {s : Set α} :
+ (weightedSMul (c • μ) s : F →L[ℝ] F) = c.toReal • weightedSMul μ s :=
by
ext1 x
push_cast
simp_rw [Pi.smul_apply, weighted_smul_apply]
push_cast
simp_rw [Pi.smul_apply, smul_eq_mul, to_real_mul, smul_smul]
-#align measure_theory.weighted_smul_smul_measure MeasureTheory.weightedSmul_smul_measure
+#align measure_theory.weighted_smul_smul_measure MeasureTheory.weightedSMul_smul_measure
-theorem weightedSmul_congr (s t : Set α) (hst : μ s = μ t) :
- (weightedSmul μ s : F →L[ℝ] F) = weightedSmul μ t := by ext1 x; simp_rw [weighted_smul_apply];
+theorem weightedSMul_congr (s t : Set α) (hst : μ s = μ t) :
+ (weightedSMul μ s : F →L[ℝ] F) = weightedSMul μ t := by ext1 x; simp_rw [weighted_smul_apply];
congr 2
-#align measure_theory.weighted_smul_congr MeasureTheory.weightedSmul_congr
+#align measure_theory.weighted_smul_congr MeasureTheory.weightedSMul_congr
-theorem weightedSmul_null {s : Set α} (h_zero : μ s = 0) : (weightedSmul μ s : F →L[ℝ] F) = 0 := by
+theorem weightedSMul_null {s : Set α} (h_zero : μ s = 0) : (weightedSMul μ s : F →L[ℝ] F) = 0 := by
ext1 x; rw [weighted_smul_apply, h_zero]; simp
-#align measure_theory.weighted_smul_null MeasureTheory.weightedSmul_null
+#align measure_theory.weighted_smul_null MeasureTheory.weightedSMul_null
-theorem weightedSmul_union' (s t : Set α) (ht : MeasurableSet t) (hs_finite : μ s ≠ ∞)
+theorem weightedSMul_union' (s t : Set α) (ht : MeasurableSet t) (hs_finite : μ s ≠ ∞)
(ht_finite : μ t ≠ ∞) (h_inter : s ∩ t = ∅) :
- (weightedSmul μ (s ∪ t) : F →L[ℝ] F) = weightedSmul μ s + weightedSmul μ t :=
+ (weightedSMul μ (s ∪ t) : F →L[ℝ] F) = weightedSMul μ s + weightedSMul μ t :=
by
ext1 x
simp_rw [add_apply, weighted_smul_apply,
measure_union (set.disjoint_iff_inter_eq_empty.mpr h_inter) ht,
ENNReal.toReal_add hs_finite ht_finite, add_smul]
-#align measure_theory.weighted_smul_union' MeasureTheory.weightedSmul_union'
+#align measure_theory.weighted_smul_union' MeasureTheory.weightedSMul_union'
@[nolint unused_arguments]
-theorem weightedSmul_union (s t : Set α) (hs : MeasurableSet s) (ht : MeasurableSet t)
+theorem weightedSMul_union (s t : Set α) (hs : MeasurableSet s) (ht : MeasurableSet t)
(hs_finite : μ s ≠ ∞) (ht_finite : μ t ≠ ∞) (h_inter : s ∩ t = ∅) :
- (weightedSmul μ (s ∪ t) : F →L[ℝ] F) = weightedSmul μ s + weightedSmul μ t :=
- weightedSmul_union' s t ht hs_finite ht_finite h_inter
-#align measure_theory.weighted_smul_union MeasureTheory.weightedSmul_union
+ (weightedSMul μ (s ∪ t) : F →L[ℝ] F) = weightedSMul μ s + weightedSMul μ t :=
+ weightedSMul_union' s t ht hs_finite ht_finite h_inter
+#align measure_theory.weighted_smul_union MeasureTheory.weightedSMul_union
-theorem weightedSmul_smul [NormedField 𝕜] [NormedSpace 𝕜 F] [SMulCommClass ℝ 𝕜 F] (c : 𝕜)
- (s : Set α) (x : F) : weightedSmul μ s (c • x) = c • weightedSmul μ s x := by
+theorem weightedSMul_smul [NormedField 𝕜] [NormedSpace 𝕜 F] [SMulCommClass ℝ 𝕜 F] (c : 𝕜)
+ (s : Set α) (x : F) : weightedSMul μ s (c • x) = c • weightedSMul μ s x := by
simp_rw [weighted_smul_apply, smul_comm]
-#align measure_theory.weighted_smul_smul MeasureTheory.weightedSmul_smul
+#align measure_theory.weighted_smul_smul MeasureTheory.weightedSMul_smul
-theorem norm_weightedSmul_le (s : Set α) : ‖(weightedSmul μ s : F →L[ℝ] F)‖ ≤ (μ s).toReal :=
+theorem norm_weightedSMul_le (s : Set α) : ‖(weightedSMul μ s : F →L[ℝ] F)‖ ≤ (μ s).toReal :=
calc
- ‖(weightedSmul μ s : F →L[ℝ] F)‖ = ‖(μ s).toReal‖ * ‖ContinuousLinearMap.id ℝ F‖ :=
+ ‖(weightedSMul μ s : F →L[ℝ] F)‖ = ‖(μ s).toReal‖ * ‖ContinuousLinearMap.id ℝ F‖ :=
norm_smul _ _
_ ≤ ‖(μ s).toReal‖ :=
((mul_le_mul_of_nonneg_left norm_id_le (norm_nonneg _)).trans (mul_one _).le)
_ = abs (μ s).toReal := (Real.norm_eq_abs _)
_ = (μ s).toReal := abs_eq_self.mpr ENNReal.toReal_nonneg
-#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSmul_le
+#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSMul_le
-theorem dominatedFinMeasAdditive_weightedSmul {m : MeasurableSpace α} (μ : Measure α) :
- DominatedFinMeasAdditive μ (weightedSmul μ : Set α → F →L[ℝ] F) 1 :=
- ⟨weightedSmul_union, fun s _ _ => (norm_weightedSmul_le s).trans (one_mul _).symm.le⟩
-#align measure_theory.dominated_fin_meas_additive_weighted_smul MeasureTheory.dominatedFinMeasAdditive_weightedSmul
+theorem dominatedFinMeasAdditive_weightedSMul {m : MeasurableSpace α} (μ : Measure α) :
+ DominatedFinMeasAdditive μ (weightedSMul μ : Set α → F →L[ℝ] F) 1 :=
+ ⟨weightedSMul_union, fun s _ _ => (norm_weightedSMul_le s).trans (one_mul _).symm.le⟩
+#align measure_theory.dominated_fin_meas_additive_weighted_smul MeasureTheory.dominatedFinMeasAdditive_weightedSMul
-theorem weightedSmul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weightedSmul μ s x :=
+theorem weightedSMul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weightedSMul μ s x :=
by
simp only [weighted_smul, Algebra.id.smul_eq_mul, coe_smul', id.def, coe_id', Pi.smul_apply]
exact mul_nonneg to_real_nonneg hx
-#align measure_theory.weighted_smul_nonneg MeasureTheory.weightedSmul_nonneg
+#align measure_theory.weighted_smul_nonneg MeasureTheory.weightedSMul_nonneg
end WeightedSmul
@@ -268,15 +270,19 @@ section PosPart
variable [LinearOrder E] [Zero E] [MeasurableSpace α]
+#print MeasureTheory.SimpleFunc.posPart /-
/-- Positive part of a simple function. -/
def posPart (f : α →ₛ E) : α →ₛ E :=
f.map fun b => max b 0
#align measure_theory.simple_func.pos_part MeasureTheory.SimpleFunc.posPart
+-/
+#print MeasureTheory.SimpleFunc.negPart /-
/-- Negative part of a simple function. -/
def negPart [Neg E] (f : α →ₛ E) : α →ₛ E :=
posPart (-f)
#align measure_theory.simple_func.neg_part MeasureTheory.SimpleFunc.negPart
+-/
theorem posPart_map_norm (f : α →ₛ ℝ) : (posPart f).map norm = posPart f := by ext;
rw [map_apply, Real.norm_eq_abs, abs_of_nonneg]; exact le_max_right _ _
@@ -312,14 +318,16 @@ variable [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ F] {p :
[NormedAddCommGroup G] [NormedAddCommGroup F'] [NormedSpace ℝ F'] {m : MeasurableSpace α}
{μ : Measure α}
+#print MeasureTheory.SimpleFunc.integral /-
/-- Bochner integral of simple functions whose codomain is a real `normed_space`.
This is equal to `∑ x in f.range, (μ (f ⁻¹' {x})).to_real • x` (see `integral_eq`). -/
def integral {m : MeasurableSpace α} (μ : Measure α) (f : α →ₛ F) : F :=
- f.setToSimpleFunc (weightedSmul μ)
+ f.setToSimpleFunc (weightedSMul μ)
#align measure_theory.simple_func.integral MeasureTheory.SimpleFunc.integral
+-/
theorem integral_def {m : MeasurableSpace α} (μ : Measure α) (f : α →ₛ F) :
- f.integral μ = f.setToSimpleFunc (weightedSmul μ) :=
+ f.integral μ = f.setToSimpleFunc (weightedSMul μ) :=
rfl
#align measure_theory.simple_func.integral_def MeasureTheory.SimpleFunc.integral_def
@@ -378,7 +386,7 @@ theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ :
and `g` is a function from `E` to `F`. We require `g 0 = 0` so that `g ∘ f` is integrable. -/
theorem map_integral (f : α →ₛ E) (g : E → F) (hf : Integrable f μ) (hg : g 0 = 0) :
(f.map g).integral μ = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • g x :=
- map_setToSimpleFunc _ weightedSmul_union hf hg
+ map_setToSimpleFunc _ weightedSMul_union hf hg
#align measure_theory.simple_func.map_integral MeasureTheory.SimpleFunc.map_integral
/-- `simple_func.integral` and `simple_func.lintegral` agree when the integrand has type
@@ -404,7 +412,7 @@ variable [NormedField 𝕜] [NormedSpace 𝕜 E] [NormedSpace ℝ E] [SMulCommCl
theorem integral_congr {f g : α →ₛ E} (hf : Integrable f μ) (h : f =ᵐ[μ] g) :
f.integral μ = g.integral μ :=
- setToSimpleFunc_congr (weightedSmul μ) (fun s hs => weightedSmul_null) weightedSmul_union hf h
+ setToSimpleFunc_congr (weightedSMul μ) (fun s hs => weightedSMul_null) weightedSMul_union hf h
#align measure_theory.simple_func.integral_congr MeasureTheory.SimpleFunc.integral_congr
/-- `simple_func.bintegral` and `simple_func.integral` agree when the integrand has type
@@ -420,21 +428,21 @@ theorem integral_eq_lintegral {f : α →ₛ ℝ} (hf : Integrable f μ) (h_pos
theorem integral_add {f g : α →ₛ E} (hf : Integrable f μ) (hg : Integrable g μ) :
integral μ (f + g) = integral μ f + integral μ g :=
- setToSimpleFunc_add _ weightedSmul_union hf hg
+ setToSimpleFunc_add _ weightedSMul_union hf hg
#align measure_theory.simple_func.integral_add MeasureTheory.SimpleFunc.integral_add
theorem integral_neg {f : α →ₛ E} (hf : Integrable f μ) : integral μ (-f) = -integral μ f :=
- setToSimpleFunc_neg _ weightedSmul_union hf
+ setToSimpleFunc_neg _ weightedSMul_union hf
#align measure_theory.simple_func.integral_neg MeasureTheory.SimpleFunc.integral_neg
theorem integral_sub {f g : α →ₛ E} (hf : Integrable f μ) (hg : Integrable g μ) :
integral μ (f - g) = integral μ f - integral μ g :=
- setToSimpleFunc_sub _ weightedSmul_union hf hg
+ setToSimpleFunc_sub _ weightedSMul_union hf hg
#align measure_theory.simple_func.integral_sub MeasureTheory.SimpleFunc.integral_sub
theorem integral_smul (c : 𝕜) {f : α →ₛ E} (hf : Integrable f μ) :
integral μ (c • f) = c • integral μ f :=
- setToSimpleFunc_smul _ weightedSmul_union weightedSmul_smul c hf
+ setToSimpleFunc_smul _ weightedSMul_union weightedSMul_smul c hf
#align measure_theory.simple_func.integral_smul MeasureTheory.SimpleFunc.integral_smul
theorem norm_setToSimpleFunc_le_integral_norm (T : Set α → E →L[ℝ] F) {C : ℝ}
@@ -542,7 +550,7 @@ theorem integral_eq_lintegral {f : α →₁ₛ[μ] ℝ} (h_pos : 0 ≤ᵐ[μ] t
rw [integral, simple_func.integral_eq_lintegral (simple_func.integrable f) h_pos]
#align measure_theory.L1.simple_func.integral_eq_lintegral MeasureTheory.L1.SimpleFunc.integral_eq_lintegral
-theorem integral_eq_setToL1S (f : α →₁ₛ[μ] E) : integral f = setToL1S (weightedSmul μ) f :=
+theorem integral_eq_setToL1S (f : α →₁ₛ[μ] E) : integral f = setToL1S (weightedSMul μ) f :=
rfl
#align measure_theory.L1.simple_func.integral_eq_set_to_L1s MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S
@@ -552,11 +560,11 @@ theorem integral_congr {f g : α →₁ₛ[μ] E} (h : toSimpleFunc f =ᵐ[μ] t
#align measure_theory.L1.simple_func.integral_congr MeasureTheory.L1.SimpleFunc.integral_congr
theorem integral_add (f g : α →₁ₛ[μ] E) : integral (f + g) = integral f + integral g :=
- setToL1S_add _ (fun _ _ => weightedSmul_null) weightedSmul_union _ _
+ setToL1S_add _ (fun _ _ => weightedSMul_null) weightedSMul_union _ _
#align measure_theory.L1.simple_func.integral_add MeasureTheory.L1.SimpleFunc.integral_add
theorem integral_smul (c : 𝕜) (f : α →₁ₛ[μ] E) : integral (c • f) = c • integral f :=
- setToL1S_smul _ (fun _ _ => weightedSmul_null) weightedSmul_union weightedSmul_smul c f
+ setToL1S_smul _ (fun _ _ => weightedSMul_null) weightedSMul_union weightedSMul_smul c f
#align measure_theory.L1.simple_func.integral_smul MeasureTheory.L1.SimpleFunc.integral_smul
theorem norm_integral_le_norm (f : α →₁ₛ[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
@@ -570,20 +578,20 @@ variable {E' : Type _} [NormedAddCommGroup E'] [NormedSpace ℝ E'] [NormedSpace
variable (α E μ 𝕜)
/-- The Bochner integral over simple functions in L1 space as a continuous linear map. -/
-def integralClm' : (α →₁ₛ[μ] E) →L[𝕜] E :=
+def integralCLM' : (α →₁ₛ[μ] E) →L[𝕜] E :=
LinearMap.mkContinuous ⟨integral, integral_add, integral_smul⟩ 1 fun f =>
le_trans (norm_integral_le_norm _) <| by rw [one_mul]
-#align measure_theory.L1.simple_func.integral_clm' MeasureTheory.L1.SimpleFunc.integralClm'
+#align measure_theory.L1.simple_func.integral_clm' MeasureTheory.L1.SimpleFunc.integralCLM'
/-- The Bochner integral over simple functions in L1 space as a continuous linear map over ℝ. -/
-def integralClm : (α →₁ₛ[μ] E) →L[ℝ] E :=
- integralClm' α E ℝ μ
-#align measure_theory.L1.simple_func.integral_clm MeasureTheory.L1.SimpleFunc.integralClm
+def integralCLM : (α →₁ₛ[μ] E) →L[ℝ] E :=
+ integralCLM' α E ℝ μ
+#align measure_theory.L1.simple_func.integral_clm MeasureTheory.L1.SimpleFunc.integralCLM
variable {α E μ 𝕜}
-- mathport name: simple_func.integral_clm
-local notation "Integral" => integralClm α E μ
+local notation "Integral" => integralCLM α E μ
open ContinuousLinearMap
@@ -664,7 +672,7 @@ end SimpleFunc
open SimpleFunc
-- mathport name: simple_func.integral_clm
-local notation "Integral" => @integralClm α E _ _ _ _ _ μ _
+local notation "Integral" => @integralCLM α E _ _ _ _ _ μ _
variable [NormedSpace ℝ E] [NontriviallyNormedField 𝕜] [NormedSpace 𝕜 E] [SMulCommClass ℝ 𝕜 E]
[NormedSpace ℝ F] [CompleteSpace E]
@@ -678,28 +686,28 @@ open ContinuousLinearMap
variable (𝕜)
/-- The Bochner integral in L1 space as a continuous linear map. -/
-def integralClm' : (α →₁[μ] E) →L[𝕜] E :=
- (integralClm' α E 𝕜 μ).extend (coeToLp α E 𝕜) (simpleFunc.denseRange one_ne_top)
+def integralCLM' : (α →₁[μ] E) →L[𝕜] E :=
+ (integralCLM' α E 𝕜 μ).extend (coeToLp α E 𝕜) (simpleFunc.denseRange one_ne_top)
simpleFunc.uniformInducing
-#align measure_theory.L1.integral_clm' MeasureTheory.L1.integralClm'
+#align measure_theory.L1.integral_clm' MeasureTheory.L1.integralCLM'
variable {𝕜}
/-- The Bochner integral in L1 space as a continuous linear map over ℝ. -/
-def integralClm : (α →₁[μ] E) →L[ℝ] E :=
- integralClm' ℝ
-#align measure_theory.L1.integral_clm MeasureTheory.L1.integralClm
+def integralCLM : (α →₁[μ] E) →L[ℝ] E :=
+ integralCLM' ℝ
+#align measure_theory.L1.integral_clm MeasureTheory.L1.integralCLM
/-- The Bochner integral in L1 space -/
irreducible_def integral (f : α →₁[μ] E) : E :=
- integralClm f
+ integralCLM f
#align measure_theory.L1.integral MeasureTheory.L1.integral
-theorem integral_eq (f : α →₁[μ] E) : integral f = integralClm f := by simp only [integral]
+theorem integral_eq (f : α →₁[μ] E) : integral f = integralCLM f := by simp only [integral]
#align measure_theory.L1.integral_eq MeasureTheory.L1.integral_eq
theorem integral_eq_setToL1 (f : α →₁[μ] E) :
- integral f = setToL1 (dominatedFinMeasAdditive_weightedSmul μ) f := by simp only [integral]; rfl
+ integral f = setToL1 (dominatedFinMeasAdditive_weightedSMul μ) f := by simp only [integral]; rfl
#align measure_theory.L1.integral_eq_set_to_L1 MeasureTheory.L1.integral_eq_setToL1
@[norm_cast]
@@ -746,13 +754,13 @@ theorem integral_smul (c : 𝕜) (f : α →₁[μ] E) : integral (c • f) = c
#align measure_theory.L1.integral_smul MeasureTheory.L1.integral_smul
-- mathport name: integral_clm
-local notation "Integral" => @integralClm α E _ _ μ _ _
+local notation "Integral" => @integralCLM α E _ _ μ _ _
-- mathport name: simple_func.integral_clm'
-local notation "sIntegral" => @SimpleFunc.integralClm α E _ _ μ _
+local notation "sIntegral" => @SimpleFunc.integralCLM α E _ _ μ _
theorem norm_Integral_le_one : ‖Integral‖ ≤ 1 :=
- norm_setToL1_le (dominatedFinMeasAdditive_weightedSmul μ) zero_le_one
+ norm_setToL1_le (dominatedFinMeasAdditive_weightedSMul μ) zero_le_one
#align measure_theory.L1.norm_Integral_le_one MeasureTheory.L1.norm_Integral_le_one
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
@@ -815,10 +823,12 @@ section
open scoped Classical
+#print MeasureTheory.integral /-
/-- The Bochner integral -/
irreducible_def integral {m : MeasurableSpace α} (μ : Measure α) (f : α → E) : E :=
if hf : Integrable f μ then L1.integral (hf.toL1 f) else 0
#align measure_theory.integral MeasureTheory.integral
+-/
end
@@ -845,14 +855,18 @@ open ContinuousLinearMap MeasureTheory.SimpleFunc
variable {f g : α → E} {m : MeasurableSpace α} {μ : Measure α}
+#print MeasureTheory.integral_eq /-
theorem integral_eq (f : α → E) (hf : Integrable f μ) : (∫ a, f a ∂μ) = L1.integral (hf.toL1 f) :=
by rw [integral]; exact @dif_pos _ (id _) hf _ _ _
#align measure_theory.integral_eq MeasureTheory.integral_eq
+-/
+#print MeasureTheory.integral_eq_setToFun /-
theorem integral_eq_setToFun (f : α → E) :
- (∫ a, f a ∂μ) = setToFun μ (weightedSmul μ) (dominatedFinMeasAdditive_weightedSmul μ) f := by
+ (∫ a, f a ∂μ) = setToFun μ (weightedSMul μ) (dominatedFinMeasAdditive_weightedSMul μ) f := by
simp only [integral, L1.integral]; rfl
#align measure_theory.integral_eq_set_to_fun MeasureTheory.integral_eq_setToFun
+-/
theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f a ∂μ :=
by
@@ -864,9 +878,9 @@ theorem integral_undef (h : ¬Integrable f μ) : (∫ a, f a ∂μ) = 0 := by rw
exact @dif_neg _ (id _) h _ _ _
#align measure_theory.integral_undef MeasureTheory.integral_undef
-theorem integral_non_aEStronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : (∫ a, f a ∂μ) = 0 :=
+theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : (∫ a, f a ∂μ) = 0 :=
integral_undef <| not_and_of_not_left _ h
-#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aEStronglyMeasurable
+#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aestronglyMeasurable
variable (α E)
@@ -899,12 +913,14 @@ theorem integral_add' (hf : Integrable f μ) (hg : Integrable g μ) :
integral_add hf hg
#align measure_theory.integral_add' MeasureTheory.integral_add'
+#print MeasureTheory.integral_finset_sum /-
theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀ i ∈ s, Integrable (f i) μ) :
(∫ a, ∑ i in s, f i a ∂μ) = ∑ i in s, ∫ a, f i a ∂μ :=
by
simp only [integral, L1.integral]
exact set_to_fun_finset_sum (dominated_fin_meas_additive_weighted_smul _) s hf
#align measure_theory.integral_finset_sum MeasureTheory.integral_finset_sum
+-/
theorem integral_neg (f : α → E) : (∫ a, -f a ∂μ) = -∫ a, f a ∂μ :=
by
@@ -954,6 +970,7 @@ theorem integral_congr_ae (h : f =ᵐ[μ] g) : (∫ a, f a ∂μ) = ∫ a, g a
exact set_to_fun_congr_ae (dominated_fin_meas_additive_weighted_smul μ) h
#align measure_theory.integral_congr_ae MeasureTheory.integral_congr_ae
+#print MeasureTheory.L1.integral_of_fun_eq_integral /-
@[simp]
theorem L1.integral_of_fun_eq_integral {f : α → E} (hf : Integrable f μ) :
(∫ a, (hf.toL1 f) a ∂μ) = ∫ a, f a ∂μ :=
@@ -961,6 +978,7 @@ theorem L1.integral_of_fun_eq_integral {f : α → E} (hf : Integrable f μ) :
simp only [integral, L1.integral]
exact set_to_fun_to_L1 (dominated_fin_meas_additive_weighted_smul μ) hf
#align measure_theory.L1.integral_of_fun_eq_integral MeasureTheory.L1.integral_of_fun_eq_integral
+-/
@[continuity]
theorem continuous_integral : Continuous fun f : α →₁[μ] E => ∫ a, f a ∂μ :=
@@ -1195,6 +1213,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
rw [this, hfi]; rfl
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
+#print MeasureTheory.integral_norm_eq_lintegral_nnnorm /-
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
(hf : AEStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
by
@@ -1202,12 +1221,15 @@ theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α →
· simp_rw [ofReal_norm_eq_coe_nnnorm]
· refine' ae_of_all _ _; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
#align measure_theory.integral_norm_eq_lintegral_nnnorm MeasureTheory.integral_norm_eq_lintegral_nnnorm
+-/
+#print MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm /-
theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
(hf : Integrable f μ) : ENNReal.ofReal (∫ x, ‖f x‖ ∂μ) = ∫⁻ x, ‖f x‖₊ ∂μ := by
rw [integral_norm_eq_lintegral_nnnorm hf.ae_strongly_measurable,
ENNReal.ofReal_toReal (lt_top_iff_ne_top.mp hf.2)]
#align measure_theory.of_real_integral_norm_eq_lintegral_nnnorm MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm
+-/
theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
(∫ a, f a ∂μ) = (∫ a, Real.toNNReal (f a) ∂μ) - ∫ a, Real.toNNReal (-f a) ∂μ :=
@@ -1325,6 +1347,7 @@ theorem L1.norm_eq_integral_norm (f : α →₁[μ] H) : ‖f‖ = ∫ a, ‖f a
simp [ofReal_norm_eq_coe_nnnorm]
#align measure_theory.L1.norm_eq_integral_norm MeasureTheory.L1.norm_eq_integral_norm
+#print MeasureTheory.L1.norm_of_fun_eq_integral_norm /-
theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
‖hf.toL1 f‖ = ∫ a, ‖f a‖ ∂μ := by
rw [L1.norm_eq_integral_norm]
@@ -1333,6 +1356,7 @@ theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
intro a ha
simp [ha]
#align measure_theory.L1.norm_of_fun_eq_integral_norm MeasureTheory.L1.norm_of_fun_eq_integral_norm
+-/
theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1 : p ≠ 0) (hp2 : p ≠ ∞)
(hf : Memℒp f p μ) : snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) :=
@@ -1424,6 +1448,7 @@ theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
rw [← f.integral_eq_integral hfi, simple_func.integral, ← simple_func.integral_eq]; rfl
#align measure_theory.simple_func.integral_eq_sum MeasureTheory.SimpleFunc.integral_eq_sum
+#print MeasureTheory.integral_const /-
@[simp]
theorem integral_const (c : E) : (∫ x : α, c ∂μ) = (μ univ).toReal • c :=
by
@@ -1439,6 +1464,7 @@ theorem integral_const (c : E) : (∫ x : α, c ∂μ) = (μ univ).toReal • c
exact ⟨hc, hμ.not_lt⟩
simp [integral_undef, *]
#align measure_theory.integral_const MeasureTheory.integral_const
+-/
theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C : ℝ}
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : ‖∫ x, f x ∂μ‖ ≤ C * (μ univ).toReal :=
@@ -1448,6 +1474,7 @@ theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C
#align measure_theory.norm_integral_le_of_norm_le_const MeasureTheory.norm_integral_le_of_norm_le_const
+#print MeasureTheory.tendsto_integral_approxOn_of_measurable /-
theorem tendsto_integral_approxOn_of_measurable [MeasurableSpace E] [BorelSpace E] {f : α → E}
{s : Set E} [SeparableSpace s] (hfi : Integrable f μ) (hfm : Measurable f)
(hs : ∀ᵐ x ∂μ, f x ∈ closure s) {y₀ : E} (h₀ : y₀ ∈ s) (h₀i : Integrable (fun x => y₀) μ) :
@@ -1459,6 +1486,7 @@ theorem tendsto_integral_approxOn_of_measurable [MeasurableSpace E] [BorelSpace
tendsto_set_to_fun_approx_on_of_measurable (dominated_fin_meas_additive_weighted_smul μ) hfi hfm
hs h₀ h₀i
#align measure_theory.tendsto_integral_approx_on_of_measurable MeasureTheory.tendsto_integral_approxOn_of_measurable
+-/
theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace E] [BorelSpace E]
{f : α → E} (fmeas : Measurable f) (hf : Integrable f μ) (s : Set E) [SeparableSpace s]
@@ -1669,10 +1697,12 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
+#print MeasureTheory.set_integral_eq_subtype /-
theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
(f : α → E) : (∫ x in s, f x) = ∫ x : s, f x := by rw [← map_comap_subtype_coe hs];
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
+-/
@[simp]
theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : StronglyMeasurable f) :
@@ -1844,17 +1874,20 @@ section IntegralTrim
variable {H β γ : Type _} [NormedAddCommGroup H] {m m0 : MeasurableSpace β} {μ : Measure β}
+#print MeasureTheory.SimpleFunc.toLargerSpace /-
/-- Simple function seen as simple function of a larger `measurable_space`. -/
def SimpleFunc.toLargerSpace (hm : m ≤ m0) (f : @SimpleFunc β m γ) : SimpleFunc β γ :=
⟨@SimpleFunc.toFun β m γ f, fun x => hm _ (@SimpleFunc.measurableSet_fiber β γ m f x),
@SimpleFunc.finite_range β γ m f⟩
#align measure_theory.simple_func.to_larger_space MeasureTheory.SimpleFunc.toLargerSpace
+-/
theorem SimpleFunc.coe_toLargerSpace_eq (hm : m ≤ m0) (f : @SimpleFunc β m γ) :
⇑(f.toLargerSpace hm) = f :=
rfl
#align measure_theory.simple_func.coe_to_larger_space_eq MeasureTheory.SimpleFunc.coe_toLargerSpace_eq
+#print MeasureTheory.integral_simpleFunc_larger_space /-
theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F)
(hf_int : Integrable f μ) :
(∫ x, f x ∂μ) = ∑ x in @SimpleFunc.range β F m f, ENNReal.toReal (μ (f ⁻¹' {x})) • x :=
@@ -1864,7 +1897,9 @@ theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F
rw [simple_func.integral_eq_sum _ hf_int]
congr
#align measure_theory.integral_simple_func_larger_space MeasureTheory.integral_simpleFunc_larger_space
+-/
+#print MeasureTheory.integral_trim_simpleFunc /-
theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_int : Integrable f μ) :
(∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm :=
by
@@ -1876,7 +1911,9 @@ theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_in
congr
exact (trim_measurable_set_eq hm (@simple_func.measurable_set_fiber β F m f x)).symm
#align measure_theory.integral_trim_simple_func MeasureTheory.integral_trim_simpleFunc
+-/
+#print MeasureTheory.integral_trim /-
theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : strongly_measurable[m] f) :
(∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm := by
borelize F
@@ -1910,14 +1947,18 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : strongly_measurable[m
(hf_int.trim hm hf)
exact tendsto_nhds_unique h_lim_1 h_lim_2
#align measure_theory.integral_trim MeasureTheory.integral_trim
+-/
+#print MeasureTheory.integral_trim_ae /-
theorem integral_trim_ae (hm : m ≤ m0) {f : β → F} (hf : AEStronglyMeasurable f (μ.trim hm)) :
(∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm :=
by
rw [integral_congr_ae (ae_eq_of_ae_eq_trim hf.ae_eq_mk), integral_congr_ae hf.ae_eq_mk]
exact integral_trim hm hf.strongly_measurable_mk
#align measure_theory.integral_trim_ae MeasureTheory.integral_trim_ae
+-/
+#print MeasureTheory.ae_eq_trim_of_stronglyMeasurable /-
theorem ae_eq_trim_of_stronglyMeasurable [TopologicalSpace γ] [MetrizableSpace γ] (hm : m ≤ m0)
{f g : β → γ} (hf : strongly_measurable[m] f) (hg : strongly_measurable[m] g)
(hfg : f =ᵐ[μ] g) : f =ᵐ[μ.trim hm] g :=
@@ -1925,13 +1966,17 @@ theorem ae_eq_trim_of_stronglyMeasurable [TopologicalSpace γ] [MetrizableSpace
rwa [eventually_eq, ae_iff, trim_measurable_set_eq hm _]
exact (hf.measurable_set_eq_fun hg).compl
#align measure_theory.ae_eq_trim_of_strongly_measurable MeasureTheory.ae_eq_trim_of_stronglyMeasurable
+-/
+#print MeasureTheory.ae_eq_trim_iff /-
theorem ae_eq_trim_iff [TopologicalSpace γ] [MetrizableSpace γ] (hm : m ≤ m0) {f g : β → γ}
(hf : strongly_measurable[m] f) (hg : strongly_measurable[m] g) :
f =ᵐ[μ.trim hm] g ↔ f =ᵐ[μ] g :=
⟨ae_eq_of_ae_eq_trim, ae_eq_trim_of_stronglyMeasurable hm hf hg⟩
#align measure_theory.ae_eq_trim_iff MeasureTheory.ae_eq_trim_iff
+-/
+#print MeasureTheory.ae_le_trim_of_stronglyMeasurable /-
theorem ae_le_trim_of_stronglyMeasurable [LinearOrder γ] [TopologicalSpace γ]
[OrderClosedTopology γ] [PseudoMetrizableSpace γ] (hm : m ≤ m0) {f g : β → γ}
(hf : strongly_measurable[m] f) (hg : strongly_measurable[m] g) (hfg : f ≤ᵐ[μ] g) :
@@ -1940,12 +1985,15 @@ theorem ae_le_trim_of_stronglyMeasurable [LinearOrder γ] [TopologicalSpace γ]
rwa [eventually_le, ae_iff, trim_measurable_set_eq hm _]
exact (hf.measurable_set_le hg).compl
#align measure_theory.ae_le_trim_of_strongly_measurable MeasureTheory.ae_le_trim_of_stronglyMeasurable
+-/
+#print MeasureTheory.ae_le_trim_iff /-
theorem ae_le_trim_iff [LinearOrder γ] [TopologicalSpace γ] [OrderClosedTopology γ]
[PseudoMetrizableSpace γ] (hm : m ≤ m0) {f g : β → γ} (hf : strongly_measurable[m] f)
(hg : strongly_measurable[m] g) : f ≤ᵐ[μ.trim hm] g ↔ f ≤ᵐ[μ] g :=
⟨ae_le_of_ae_le_trim, ae_le_trim_of_stronglyMeasurable hm hf hg⟩
#align measure_theory.ae_le_trim_iff MeasureTheory.ae_le_trim_iff
+-/
end IntegralTrim
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -350,28 +350,28 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
theorem integral_const {m : MeasurableSpace α} (μ : Measure α) (y : F) :
(const α y).integral μ = (μ univ).toReal • y := by
classical calc
- (const α y).integral μ = ∑ z in {y}, (μ (const α y ⁻¹' {z})).toReal • z :=
- integral_eq_sum_of_subset <| (filter_subset _ _).trans (range_const_subset _ _)
- _ = (μ univ).toReal • y := by simp
-
+ (const α y).integral μ = ∑ z in {y}, (μ (const α y ⁻¹' {z})).toReal • z :=
+ integral_eq_sum_of_subset <| (filter_subset _ _).trans (range_const_subset _ _)
+ _ = (μ univ).toReal • y := by simp
+
#align measure_theory.simple_func.integral_const MeasureTheory.SimpleFunc.integral_const
@[simp]
theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ : Measure α) {s : Set α}
(hs : MeasurableSet s) : (piecewise s hs f 0).integral μ = f.integral (μ.restrict s) := by
classical
- refine'
- (integral_eq_sum_of_subset _).trans
- ((sum_congr rfl fun y hy => _).trans (integral_eq_sum_filter _ _).symm)
- · intro y hy
- simp only [mem_filter, mem_range, coe_piecewise, coe_zero, piecewise_eq_indicator,
- mem_range_indicator] at *
- rcases hy with ⟨⟨rfl, -⟩ | ⟨x, hxs, rfl⟩, h₀⟩
- exacts [(h₀ rfl).elim, ⟨Set.mem_range_self _, h₀⟩]
- · dsimp
- rw [Set.piecewise_eq_indicator, indicator_preimage_of_not_mem,
- measure.restrict_apply (f.measurable_set_preimage _)]
- exact fun h₀ => (mem_filter.1 hy).2 (Eq.symm h₀)
+ refine'
+ (integral_eq_sum_of_subset _).trans
+ ((sum_congr rfl fun y hy => _).trans (integral_eq_sum_filter _ _).symm)
+ · intro y hy
+ simp only [mem_filter, mem_range, coe_piecewise, coe_zero, piecewise_eq_indicator,
+ mem_range_indicator] at *
+ rcases hy with ⟨⟨rfl, -⟩ | ⟨x, hxs, rfl⟩, h₀⟩
+ exacts [(h₀ rfl).elim, ⟨Set.mem_range_self _, h₀⟩]
+ · dsimp
+ rw [Set.piecewise_eq_indicator, indicator_preimage_of_not_mem,
+ measure.restrict_apply (f.measurable_set_preimage _)]
+ exact fun h₀ => (mem_filter.1 hy).2 (Eq.symm h₀)
#align measure_theory.simple_func.integral_piecewise_zero MeasureTheory.SimpleFunc.integral_piecewise_zero
/-- Calculate the integral of `g ∘ f : α →ₛ F`, where `f` is an integrable function from `α` to `E`
@@ -542,9 +542,9 @@ theorem integral_eq_lintegral {f : α →₁ₛ[μ] ℝ} (h_pos : 0 ≤ᵐ[μ] t
rw [integral, simple_func.integral_eq_lintegral (simple_func.integrable f) h_pos]
#align measure_theory.L1.simple_func.integral_eq_lintegral MeasureTheory.L1.SimpleFunc.integral_eq_lintegral
-theorem integral_eq_setToL1s (f : α →₁ₛ[μ] E) : integral f = setToL1s (weightedSmul μ) f :=
+theorem integral_eq_setToL1S (f : α →₁ₛ[μ] E) : integral f = setToL1S (weightedSmul μ) f :=
rfl
-#align measure_theory.L1.simple_func.integral_eq_set_to_L1s MeasureTheory.L1.SimpleFunc.integral_eq_setToL1s
+#align measure_theory.L1.simple_func.integral_eq_set_to_L1s MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S
theorem integral_congr {f g : α →₁ₛ[μ] E} (h : toSimpleFunc f =ᵐ[μ] toSimpleFunc g) :
integral f = integral g :=
@@ -552,11 +552,11 @@ theorem integral_congr {f g : α →₁ₛ[μ] E} (h : toSimpleFunc f =ᵐ[μ] t
#align measure_theory.L1.simple_func.integral_congr MeasureTheory.L1.SimpleFunc.integral_congr
theorem integral_add (f g : α →₁ₛ[μ] E) : integral (f + g) = integral f + integral g :=
- setToL1s_add _ (fun _ _ => weightedSmul_null) weightedSmul_union _ _
+ setToL1S_add _ (fun _ _ => weightedSmul_null) weightedSmul_union _ _
#align measure_theory.L1.simple_func.integral_add MeasureTheory.L1.SimpleFunc.integral_add
theorem integral_smul (c : 𝕜) (f : α →₁ₛ[μ] E) : integral (c • f) = c • integral f :=
- setToL1s_smul _ (fun _ _ => weightedSmul_null) weightedSmul_union weightedSmul_smul c f
+ setToL1S_smul _ (fun _ _ => weightedSmul_null) weightedSmul_union weightedSmul_smul c f
#align measure_theory.L1.simple_func.integral_smul MeasureTheory.L1.SimpleFunc.integral_smul
theorem norm_integral_le_norm (f : α →₁ₛ[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
@@ -600,7 +600,7 @@ theorem posPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
have ae_eq : ∀ᵐ a ∂μ, to_simple_func (pos_part f) a = max ((to_simple_func f) a) 0 :=
by
filter_upwards [to_simple_func_eq_to_fun (pos_part f), Lp.coe_fn_pos_part (f : α →₁[μ] ℝ),
- to_simple_func_eq_to_fun f]with _ _ h₂ _
+ to_simple_func_eq_to_fun f] with _ _ h₂ _
convert h₂
refine' ae_eq.mono fun a h => _
rw [h, Eq]
@@ -623,13 +623,13 @@ theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f =
-- Convert things in `L¹` to their `simple_func` counterpart
have ae_eq₁ : (to_simple_func f).posPart =ᵐ[μ] (to_simple_func (pos_part f)).map norm :=
by
- filter_upwards [pos_part_to_simple_func f]with _ h
+ filter_upwards [pos_part_to_simple_func f] with _ h
rw [simple_func.map_apply, h]
conv_lhs => rw [← simple_func.pos_part_map_norm, simple_func.map_apply]
-- Convert things in `L¹` to their `simple_func` counterpart
have ae_eq₂ : (to_simple_func f).neg_part =ᵐ[μ] (to_simple_func (neg_part f)).map norm :=
by
- filter_upwards [neg_part_to_simple_func f]with _ h
+ filter_upwards [neg_part_to_simple_func f] with _ h
rw [simple_func.map_apply, h]
conv_lhs => rw [← simple_func.neg_part_map_norm, simple_func.map_apply]
-- Convert things in `L¹` to their `simple_func` counterpart
@@ -638,14 +638,14 @@ theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f =
(to_simple_func f).posPart a - (to_simple_func f).neg_part a =
(to_simple_func (pos_part f)).map norm a - (to_simple_func (neg_part f)).map norm a :=
by
- filter_upwards [ae_eq₁, ae_eq₂]with _ h₁ h₂
+ filter_upwards [ae_eq₁, ae_eq₂] with _ h₁ h₂
rw [h₁, h₂]
rw [integral, norm_eq_integral, norm_eq_integral, ← simple_func.integral_sub]
· show
(to_simple_func f).integral μ =
((to_simple_func (pos_part f)).map norm - (to_simple_func (neg_part f)).map norm).integral μ
apply MeasureTheory.SimpleFunc.integral_congr (simple_func.integrable f)
- filter_upwards [ae_eq₁, ae_eq₂]with _ h₁ h₂
+ filter_upwards [ae_eq₁, ae_eq₂] with _ h₁ h₂
show _ = _ - _
rw [← h₁, ← h₂]
have := (to_simple_func f).posPart_sub_negPart
@@ -1066,8 +1066,8 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
have hb_le_tsum : ∀ n, bound n ≤ᵐ[μ] fun a => ∑' n, bound n a :=
by
intro n
- filter_upwards [hb_nonneg,
- bound_summable]with _ ha0 ha_sum using le_tsum ha_sum _ fun i _ => ha0 i
+ filter_upwards [hb_nonneg, bound_summable] with _ ha0 ha_sum using
+ le_tsum ha_sum _ fun i _ => ha0 i
have hF_integrable : ∀ n, integrable (F n) μ :=
by
refine' fun n => bound_integrable.mono' (hF_meas n) _
@@ -1078,8 +1078,8 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
h_lim
· exact eventually_of_forall fun s => s.aestronglyMeasurable_sum fun n hn => hF_meas n
· refine' eventually_of_forall fun s => _
- filter_upwards [eventually_countable_forall.2 h_bound, hb_nonneg,
- bound_summable]with a hFa ha0 has
+ filter_upwards [eventually_countable_forall.2 h_bound, hb_nonneg, bound_summable] with a hFa ha0
+ has
calc
‖∑ n in s, F n a‖ ≤ ∑ n in s, bound n a := norm_sum_le_of_le _ fun n hn => hFa n
_ ≤ ∑' n, bound n a := sum_le_tsum _ (fun n hn => ha0 n) has
@@ -1148,7 +1148,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
- filter_upwards [Lp.coe_fn_pos_part f₁, hf.coe_fn_to_L1]with _ h₁ h₂
+ filter_upwards [Lp.coe_fn_pos_part f₁, hf.coe_fn_to_L1] with _ h₁ h₂
rw [h₁, h₂, ENNReal.ofReal]
congr 1
apply NNReal.eq
@@ -1160,7 +1160,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
- filter_upwards [Lp.coe_fn_neg_part f₁, hf.coe_fn_to_L1]with _ h₁ h₂
+ filter_upwards [Lp.coe_fn_neg_part f₁, hf.coe_fn_to_L1] with _ h₁ h₂
rw [h₁, h₂, ENNReal.ofReal]
congr 1
apply NNReal.eq
@@ -1240,11 +1240,11 @@ theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f
by
simp_rw [integral_congr_ae
(show f =ᵐ[μ] fun x => ‖f x‖ by
- filter_upwards [f_nn]with x hx
+ filter_upwards [f_nn] with x hx
rw [Real.norm_eq_abs, abs_eq_self.mpr hx]),
of_real_integral_norm_eq_lintegral_nnnorm hfi, ← ofReal_norm_eq_coe_nnnorm]
apply lintegral_congr_ae
- filter_upwards [f_nn]with x hx
+ filter_upwards [f_nn] with x hx
exact congr_arg ENNReal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
@@ -1440,7 +1440,7 @@ theorem integral_const (c : E) : (∫ x : α, c ∂μ) = (μ univ).toReal • c
simp [integral_undef, *]
#align measure_theory.integral_const MeasureTheory.integral_const
-theorem norm_integral_le_of_norm_le_const [FiniteMeasure μ] {f : α → E} {C : ℝ}
+theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C : ℝ}
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : ‖∫ x, f x ∂μ‖ ≤ C * (μ univ).toReal :=
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, C ∂μ := norm_integral_le_of_norm_le (integrable_const C) h
@@ -1507,13 +1507,12 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
(∫ a, f a ∂∑ i in s, μ i) = ∑ i in s, ∫ a, f a ∂μ i := by
classical
- refine' Finset.induction_on' s _ _
- -- `induction s using finset.induction_on'` fails
- · simp
- · intro i t hi ht hit iht
- simp only [Finset.sum_insert hit, ← iht]
- exact
- integral_add_measure (hf _ hi) (integrable_finset_sum_measure.2 fun j hj => hf j (ht hj))
+ refine' Finset.induction_on' s _ _
+ -- `induction s using finset.induction_on'` fails
+ · simp
+ · intro i t hi ht hit iht
+ simp only [Finset.sum_insert hit, ← iht]
+ exact integral_add_measure (hf _ hi) (integrable_finset_sum_measure.2 fun j hj => hf j (ht hj))
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
@@ -1566,8 +1565,9 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
intro x hx
rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
exact hx.ne
- convert(MeasureTheory.hasSum_integral_of_dominated_convergence (fun i a => ‖f i a‖₊) hf _ hhh
- ⟨_, _⟩ _).tsum_eq.symm
+ convert
+ (MeasureTheory.hasSum_integral_of_dominated_convergence (fun i a => ‖f i a‖₊) hf _ hhh ⟨_, _⟩
+ _).tsum_eq.symm
· intro n
trace
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args"
@@ -1582,9 +1582,9 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
convert this using 1
apply lintegral_congr_ae
simp_rw [← coe_nnnorm, ← NNReal.coe_tsum, NNReal.nnnorm_eq]
- filter_upwards [hhh]with a ha
+ filter_upwards [hhh] with a ha
exact ENNReal.coe_tsum (nnreal.summable_coe.mp ha)
- · filter_upwards [hhh]with x hx
+ · filter_upwards [hhh] with x hx
exact (summable_of_summable_norm hx).HasSum
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
@@ -1615,7 +1615,8 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
refine'
tendsto_nhds_unique
(tendsto_integral_approx_on_of_measurable_of_range_subset hfm.measurable hfi _ subset.rfl) _
- convert tendsto_integral_approx_on_of_measurable_of_range_subset (hfm.measurable.comp hφ)
+ convert
+ tendsto_integral_approx_on_of_measurable_of_range_subset (hfm.measurable.comp hφ)
((integrable_map_measure hfm.ae_strongly_measurable hφ.ae_measurable).1 hfi) (range f ∪ {0})
(by simp [insert_subset_insert, Set.range_comp_subset_range]) using
1
@@ -1713,8 +1714,8 @@ theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f
· exact integral_zero_measure _
#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
-theorem mul_meas_ge_le_integral_of_nonneg [FiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
- (hf_int : Integrable f μ) (ε : ℝ) : ε * (μ { x | ε ≤ f x }).toReal ≤ ∫ x, f x ∂μ :=
+theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
+ (hf_int : Integrable f μ) (ε : ℝ) : ε * (μ {x | ε ≤ f x}).toReal ≤ ∫ x, f x ∂μ :=
by
cases' lt_or_le ε 0 with hε hε
·
@@ -1724,8 +1725,8 @@ theorem mul_meas_ge_le_integral_of_nonneg [FiniteMeasure μ] {f : α → ℝ} (h
hf_int.ae_strongly_measurable,
← ENNReal.toReal_ofReal hε, ← ENNReal.toReal_mul]
have :
- { x : α | (ENNReal.ofReal ε).toReal ≤ f x } =
- { x : α | ENNReal.ofReal ε ≤ (fun x => ENNReal.ofReal (f x)) x } :=
+ {x : α | (ENNReal.ofReal ε).toReal ≤ f x} =
+ {x : α | ENNReal.ofReal ε ≤ (fun x => ENNReal.ofReal (f x)) x} :=
by
ext1 x
rw [Set.mem_setOf_eq, Set.mem_setOf_eq, ← ENNReal.toReal_ofReal (hf_nonneg x)]
@@ -1811,17 +1812,17 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
have h_left : (∫ a, f a * g a ∂μ) = ∫ a, ‖f a‖ * ‖g a‖ ∂μ :=
by
refine' integral_congr_ae _
- filter_upwards [hf_nonneg, hg_nonneg]with x hxf hxg
+ filter_upwards [hf_nonneg, hg_nonneg] with x hxf hxg
rw [Real.norm_of_nonneg hxf, Real.norm_of_nonneg hxg]
have h_right_f : (∫ a, f a ^ p ∂μ) = ∫ a, ‖f a‖ ^ p ∂μ :=
by
refine' integral_congr_ae _
- filter_upwards [hf_nonneg]with x hxf
+ filter_upwards [hf_nonneg] with x hxf
rw [Real.norm_of_nonneg hxf]
have h_right_g : (∫ a, g a ^ q ∂μ) = ∫ a, ‖g a‖ ^ q ∂μ :=
by
refine' integral_congr_ae _
- filter_upwards [hg_nonneg]with x hxg
+ filter_upwards [hg_nonneg] with x hxg
rw [Real.norm_of_nonneg hxg]
rw [h_left, h_right_f, h_right_g]
exact integral_mul_norm_le_Lp_mul_Lq hpq hf hg
@@ -1966,9 +1967,9 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
rw [integral_neg, neg_eq_zero]
exact le_antisymm (integral_nonpos_of_ae hf) hfint'
have := (integral_eq_zero_iff_of_nonneg_ae _ hfint.neg).1 hnegf
- · filter_upwards [this]with ω hω
+ · filter_upwards [this] with ω hω
rwa [Pi.neg_apply, Pi.zero_apply, neg_eq_zero] at hω
- · filter_upwards [hf]with ω hω
+ · filter_upwards [hf] with ω hω
rwa [Pi.zero_apply, Pi.neg_apply, Right.nonneg_neg_iff]
by_cases hμ : is_finite_measure μ
swap
@@ -1985,7 +1986,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
by
rw [← integral_const]
refine' integral_mono_ae hfint.real_to_nnreal (integrable_const r) _
- filter_upwards [hf]with ω hω using Real.toNNReal_le_iff_le_coe.2 hω
+ filter_upwards [hf] with ω hω using Real.toNNReal_le_iff_le_coe.2 hω
rw [mem_ℒp.snorm_eq_integral_rpow_norm one_ne_zero ENNReal.one_ne_top
(mem_ℒp_one_iff_integrable.2 hfint),
ENNReal.ofReal_le_iff_le_toReal
@@ -2006,7 +2007,7 @@ theorem snorm_one_le_of_le' {r : ℝ} {f : α → ℝ} (hfint : Integrable f μ)
by
refine' snorm_one_le_of_le hfint hfint' _
simp only [Real.coe_toNNReal', le_max_iff]
- filter_upwards [hf]with ω hω using Or.inl hω
+ filter_upwards [hf] with ω hω using Or.inl hω
#align measure_theory.snorm_one_le_of_le' MeasureTheory.snorm_one_le_of_le'
end SnormBound
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -340,9 +340,9 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
f.integral μ = ∑ x in s, (μ (f ⁻¹' {x})).toReal • x :=
by
rw [simple_func.integral_eq_sum_filter, Finset.sum_subset hs]
- rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne.def, Classical.not_not] at hx
- rcases hx with (hx | rfl) <;> [skip;simp]
- rw [simple_func.mem_range] at hx;
+ rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne.def, Classical.not_not] at hx
+ rcases hx with (hx | rfl) <;> [skip; simp]
+ rw [simple_func.mem_range] at hx ;
rw [preimage_eq_empty] <;> simp [Set.disjoint_singleton_left, hx]
#align measure_theory.simple_func.integral_eq_sum_of_subset MeasureTheory.SimpleFunc.integral_eq_sum_of_subset
@@ -367,7 +367,7 @@ theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ :
simp only [mem_filter, mem_range, coe_piecewise, coe_zero, piecewise_eq_indicator,
mem_range_indicator] at *
rcases hy with ⟨⟨rfl, -⟩ | ⟨x, hxs, rfl⟩, h₀⟩
- exacts[(h₀ rfl).elim, ⟨Set.mem_range_self _, h₀⟩]
+ exacts [(h₀ rfl).elim, ⟨Set.mem_range_self _, h₀⟩]
· dsimp
rw [Set.piecewise_eq_indicator, indicator_preimage_of_not_mem,
measure.restrict_apply (f.measurable_set_preimage _)]
@@ -415,7 +415,7 @@ theorem integral_eq_lintegral {f : α →ₛ ℝ} (hf : Integrable f μ) (h_pos
have : f =ᵐ[μ] f.map (ENNReal.toReal ∘ ENNReal.ofReal) :=
h_pos.mono fun a h => (ENNReal.toReal_ofReal h).symm
rw [← integral_eq_lintegral' hf]
- exacts[integral_congr hf this, ENNReal.ofReal_zero, fun b => ENNReal.ofReal_ne_top]
+ exacts [integral_congr hf this, ENNReal.ofReal_zero, fun b => ENNReal.ofReal_ne_top]
#align measure_theory.simple_func.integral_eq_lintegral MeasureTheory.SimpleFunc.integral_eq_lintegral
theorem integral_add {f g : α →ₛ E} (hf : Integrable f μ) (hg : Integrable g μ) :
@@ -462,7 +462,7 @@ theorem integral_add_measure {ν} (f : α →ₛ E) (hf : Integrable f (μ + ν)
refine'
set_to_simple_func_add_left' (weighted_smul μ) (weighted_smul ν) (weighted_smul (μ + ν))
(fun s hs hμνs => _) hf
- rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, ENNReal.add_ne_top] at hμνs
+ rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, ENNReal.add_ne_top] at hμνs
rw [weighted_smul_add_measure _ _ hμνs.1 hμνs.2]
#align measure_theory.simple_func.integral_add_measure MeasureTheory.SimpleFunc.integral_add_measure
@@ -1187,7 +1187,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
rw [h_min, zero_to_real, _root_.sub_zero]
· rw [integral_undef hfi]
simp_rw [integrable, hfm, has_finite_integral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
- Classical.not_not] at hfi
+ Classical.not_not] at hfi
have : (∫⁻ a : α, ENNReal.ofReal (f a) ∂μ) = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ :=
by
refine' lintegral_congr_ae (hf.mono fun a h => _)
@@ -1253,7 +1253,7 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_to_real.ae_strongly_measurable]
· rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
- intro x hx; rw [lt_top_iff_ne_top] at hx; simp [hx]
+ intro x hx; rw [lt_top_iff_ne_top] at hx ; simp [hx]
· exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
@@ -1279,7 +1279,7 @@ theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : (∫ a, f
by
have hf : 0 ≤ᵐ[μ] -f := hf.mono fun a h => by rwa [Pi.neg_apply, Pi.zero_apply, neg_nonneg]
have : 0 ≤ ∫ a, -f a ∂μ := integral_nonneg_of_ae hf
- rwa [integral_neg, neg_nonneg] at this
+ rwa [integral_neg, neg_nonneg] at this
#align measure_theory.integral_nonpos_of_ae MeasureTheory.integral_nonpos_of_ae
theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : (∫ a, f a ∂μ) ≤ 0 :=
@@ -1384,7 +1384,7 @@ theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0
have hf' : 0 ≤ᵐ[μ] f := hle.absolutely_continuous hf
rw [integral_eq_lintegral_of_nonneg_ae hf' hfi'.1, integral_eq_lintegral_of_nonneg_ae hf hfi.1,
ENNReal.toReal_le_toReal]
- exacts[lintegral_mono' hle le_rfl, ((has_finite_integral_iff_of_real hf').1 hfi'.2).Ne,
+ exacts [lintegral_mono' hle le_rfl, ((has_finite_integral_iff_of_real hf').1 hfi'.2).Ne,
((has_finite_integral_iff_of_real hf).1 hfi.2).Ne]
#align measure_theory.integral_mono_measure MeasureTheory.integral_mono_measure
@@ -1490,7 +1490,7 @@ theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integ
set_to_fun_congr_measure_of_add_left hν_dfma (dominated_fin_meas_additive_weighted_smul ν) f
hfi]
refine' set_to_fun_add_left' _ _ _ (fun s hs hμνs => _) f
- rw [measure.coe_add, Pi.add_apply, add_lt_top] at hμνs
+ rw [measure.coe_add, Pi.add_apply, add_lt_top] at hμνs
rw [weighted_smul, weighted_smul, weighted_smul, ← add_smul, measure.coe_add, Pi.add_apply,
to_real_add hμνs.1.Ne hμνs.2.Ne]
#align measure_theory.integral_add_measure MeasureTheory.integral_add_measure
@@ -1535,16 +1535,16 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
have hmem : ∀ᶠ y in 𝓝 (∫⁻ x, ‖f x‖₊ ∂measure.sum μ), (∫⁻ x, ‖f x‖₊ ∂measure.sum μ) < y + ε :=
by
refine' tendsto_id.add tendsto_const_nhds (lt_mem_nhds <| ENNReal.lt_add_right _ _)
- exacts[hf_lt.ne, ENNReal.coe_ne_zero.2 (NNReal.coe_ne_zero.1 ε0.ne')]
+ exacts [hf_lt.ne, ENNReal.coe_ne_zero.2 (NNReal.coe_ne_zero.1 ε0.ne')]
refine' ((has_sum_lintegral_measure (fun x => ‖f x‖₊) μ).Eventually hmem).mono fun s hs => _
obtain ⟨ν, hν⟩ : ∃ ν, (∑ i in s, μ i) + ν = measure.sum μ :=
by
refine' ⟨measure.sum fun i : ↥(sᶜ : Set ι) => μ i, _⟩
simpa only [← measure.sum_coe_finset] using measure.sum_add_sum_compl (s : Set ι) μ
rw [Metric.mem_ball, ← coe_nndist, NNReal.coe_lt_coe, ← ENNReal.coe_lt_coe, ← hν]
- rw [← hν, integrable_add_measure] at hf
+ rw [← hν, integrable_add_measure] at hf
refine' (nndist_integral_add_measure_le_lintegral hf.1 hf.2).trans_lt _
- rw [← hν, lintegral_add_measure, lintegral_finset_sum_measure] at hs
+ rw [← hν, lintegral_add_measure, lintegral_finset_sum_measure] at hs
exact lt_of_add_lt_add_left hs
#align measure_theory.has_sum_integral_measure MeasureTheory.hasSum_integral_measure
@@ -1561,7 +1561,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) :=
by
- rw [← lintegral_tsum hf''] at hf'
+ rw [← lintegral_tsum hf''] at hf'
refine' (ae_lt_top' (AEMeasurable.ennreal_tsum hf'') hf').mono _
intro x hx
rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
@@ -1623,7 +1623,7 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
simp only [simple_func.approx_on_comp, simple_func.integral_eq, measure.map_apply, hφ,
simple_func.measurable_set_preimage, ← preimage_comp, simple_func.coe_comp]
refine' (Finset.sum_subset (simple_func.range_comp_subset_range _ hφ) fun y _ hy => _).symm
- rw [simple_func.mem_range, ← Set.preimage_singleton_eq_empty, simple_func.coe_comp] at hy
+ rw [simple_func.mem_range, ← Set.preimage_singleton_eq_empty, simple_func.coe_comp] at hy
rw [hy]
simp
#align measure_theory.integral_map_of_strongly_measurable MeasureTheory.integral_map_of_stronglyMeasurable
@@ -1740,7 +1740,7 @@ theorem mul_meas_ge_le_integral_of_nonneg [FiniteMeasure μ] {f : α → ℝ} (h
ENNReal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
exact fun _ => measure_ne_top _ _
· have h_lt_top : (∫⁻ a, ‖f a‖₊ ∂μ) < ∞ := hf_int.has_finite_integral
- simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
+ simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
convert h_lt_top.ne
ext1 x
rw [abs_of_nonneg (hf_nonneg x)]
@@ -1836,8 +1836,8 @@ end Properties
`integral_simps)-/-- failed to format: unknown constant 'Lean.Meta._root_.Lean.Parser.Command.registerSimpAttr'
/-- Simp set for integral rules. -/ register_simp_attr integral_simps
-attribute [integral_simps]
- integral_neg integral_smul L1.integral_add L1.integral_sub L1.integral_smul L1.integral_neg
+attribute [integral_simps] integral_neg integral_smul L1.integral_add L1.integral_sub
+ L1.integral_smul L1.integral_neg
section IntegralTrim
@@ -1960,14 +1960,14 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
by
rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, MulZeroClass.mul_zero]
exact le_rfl
- rw [hr, Nonneg.coe_zero] at hf
+ rw [hr, Nonneg.coe_zero] at hf
have hnegf : (∫ x, -f x ∂μ) = 0 :=
by
rw [integral_neg, neg_eq_zero]
exact le_antisymm (integral_nonpos_of_ae hf) hfint'
have := (integral_eq_zero_iff_of_nonneg_ae _ hfint.neg).1 hnegf
· filter_upwards [this]with ω hω
- rwa [Pi.neg_apply, Pi.zero_apply, neg_eq_zero] at hω
+ rwa [Pi.neg_apply, Pi.zero_apply, neg_eq_zero] at hω
· filter_upwards [hf]with ω hω
rwa [Pi.zero_apply, Pi.neg_apply, Right.nonneg_neg_iff]
by_cases hμ : is_finite_measure μ
@@ -1980,7 +1980,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
· simp [hr]
· norm_num
haveI := hμ
- rw [integral_eq_integral_pos_part_sub_integral_neg_part hfint, sub_nonneg] at hfint'
+ rw [integral_eq_integral_pos_part_sub_integral_neg_part hfint, sub_nonneg] at hfint'
have hposbdd : (∫ ω, max (f ω) 0 ∂μ) ≤ (μ Set.univ).toReal • r :=
by
rw [← integral_const]
@@ -1995,7 +1995,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
max_zero_add_max_neg_zero_eq_abs_self, ← Real.coe_toNNReal']
rw [integral_add hfint.real_to_nnreal]
· simp only [Real.coe_toNNReal', ENNReal.toReal_mul, ENNReal.toReal_bit0, ENNReal.one_toReal,
- ENNReal.coe_toReal] at hfint'⊢
+ ENNReal.coe_toReal] at hfint' ⊢
refine' (add_le_add_left hfint' _).trans _
rwa [← two_mul, mul_assoc, mul_le_mul_left (two_pos : (0 : ℝ) < 2)]
· exact hfint.neg.sup (integrable_zero _ _ μ)
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -490,7 +490,7 @@ section PosPart
/-- Positive part of a simple function in L1 space. -/
def posPart (f : α →₁ₛ[μ] ℝ) : α →₁ₛ[μ] ℝ :=
- ⟨lp.posPart (f : α →₁[μ] ℝ), by
+ ⟨Lp.posPart (f : α →₁[μ] ℝ), by
rcases f with ⟨f, s, hsf⟩
use s.pos_part
simp only [Subtype.coe_mk, Lp.coe_pos_part, ← hsf, ae_eq_fun.pos_part_mk, simple_func.pos_part,
@@ -503,12 +503,12 @@ def negPart (f : α →₁ₛ[μ] ℝ) : α →₁ₛ[μ] ℝ :=
#align measure_theory.L1.simple_func.neg_part MeasureTheory.L1.SimpleFunc.negPart
@[norm_cast]
-theorem coe_posPart (f : α →₁ₛ[μ] ℝ) : (posPart f : α →₁[μ] ℝ) = lp.posPart (f : α →₁[μ] ℝ) :=
+theorem coe_posPart (f : α →₁ₛ[μ] ℝ) : (posPart f : α →₁[μ] ℝ) = Lp.posPart (f : α →₁[μ] ℝ) :=
rfl
#align measure_theory.L1.simple_func.coe_pos_part MeasureTheory.L1.SimpleFunc.coe_posPart
@[norm_cast]
-theorem coe_negPart (f : α →₁ₛ[μ] ℝ) : (negPart f : α →₁[μ] ℝ) = lp.negPart (f : α →₁[μ] ℝ) :=
+theorem coe_negPart (f : α →₁ₛ[μ] ℝ) : (negPart f : α →₁[μ] ℝ) = Lp.negPart (f : α →₁[μ] ℝ) :=
rfl
#align measure_theory.L1.simple_func.coe_neg_part MeasureTheory.L1.SimpleFunc.coe_negPart
@@ -774,7 +774,7 @@ theorem continuous_integral : Continuous fun f : α →₁[μ] E => integral f :
section PosPart
theorem integral_eq_norm_posPart_sub (f : α →₁[μ] ℝ) :
- integral f = ‖lp.posPart f‖ - ‖lp.negPart f‖ :=
+ integral f = ‖Lp.posPart f‖ - ‖Lp.negPart f‖ :=
by
-- Use `is_closed_property` and `is_closed_eq`
refine'
@@ -1143,7 +1143,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
by
let f₁ := hf.toL1 f
-- Go to the `L¹` space
- have eq₁ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) = ‖lp.posPart f₁‖ :=
+ have eq₁ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) = ‖Lp.posPart f₁‖ :=
by
rw [L1.norm_def]
congr 1
@@ -1155,7 +1155,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [Real.nnnorm_of_nonneg (le_max_right _ _)]
simp only [Real.coe_toNNReal', Subtype.coe_mk]
-- Go to the `L¹` space
- have eq₂ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) = ‖lp.negPart f₁‖ :=
+ have eq₂ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) = ‖Lp.negPart f₁‖ :=
by
rw [L1.norm_def]
congr 1
@@ -1994,7 +1994,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
simp_rw [ENNReal.one_toReal, _root_.inv_one, Real.rpow_one, Real.norm_eq_abs, ←
max_zero_add_max_neg_zero_eq_abs_self, ← Real.coe_toNNReal']
rw [integral_add hfint.real_to_nnreal]
- · simp only [Real.coe_toNNReal', ENNReal.toReal_mul, [anonymous], ENNReal.one_toReal,
+ · simp only [Real.coe_toNNReal', ENNReal.toReal_mul, ENNReal.toReal_bit0, ENNReal.one_toReal,
ENNReal.coe_toReal] at hfint'⊢
refine' (add_le_add_left hfint' _).trans _
rwa [← two_mul, mul_assoc, mul_le_mul_left (two_pos : (0 : ℝ) < 2)]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -149,7 +149,7 @@ assert_not_exists Differentiable
noncomputable section
-open Topology BigOperators NNReal ENNReal MeasureTheory
+open scoped Topology BigOperators NNReal ENNReal MeasureTheory
open Set Filter TopologicalSpace ENNReal Emetric
@@ -813,7 +813,7 @@ variable [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] [Nontrivia
section
-open Classical
+open scoped Classical
/-- The Bochner integral -/
irreducible_def integral {m : MeasurableSpace α} (μ : Measure α) (f : α → E) : E :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -175,18 +175,12 @@ theorem weightedSmul_apply {m : MeasurableSpace α} (μ : Measure α) (s : Set
@[simp]
theorem weightedSmul_zero_measure {m : MeasurableSpace α} :
- weightedSmul (0 : Measure α) = (0 : Set α → F →L[ℝ] F) :=
- by
- ext1
- simp [weighted_smul]
+ weightedSmul (0 : Measure α) = (0 : Set α → F →L[ℝ] F) := by ext1; simp [weighted_smul]
#align measure_theory.weighted_smul_zero_measure MeasureTheory.weightedSmul_zero_measure
@[simp]
theorem weightedSmul_empty {m : MeasurableSpace α} (μ : Measure α) :
- weightedSmul μ ∅ = (0 : F →L[ℝ] F) := by
- ext1 x
- rw [weighted_smul_apply]
- simp
+ weightedSmul μ ∅ = (0 : F →L[ℝ] F) := by ext1 x; rw [weighted_smul_apply]; simp
#align measure_theory.weighted_smul_empty MeasureTheory.weightedSmul_empty
theorem weightedSmul_add_measure {m : MeasurableSpace α} (μ ν : Measure α) {s : Set α}
@@ -211,18 +205,12 @@ theorem weightedSmul_smul_measure {m : MeasurableSpace α} (μ : Measure α) (c
#align measure_theory.weighted_smul_smul_measure MeasureTheory.weightedSmul_smul_measure
theorem weightedSmul_congr (s t : Set α) (hst : μ s = μ t) :
- (weightedSmul μ s : F →L[ℝ] F) = weightedSmul μ t :=
- by
- ext1 x
- simp_rw [weighted_smul_apply]
+ (weightedSmul μ s : F →L[ℝ] F) = weightedSmul μ t := by ext1 x; simp_rw [weighted_smul_apply];
congr 2
#align measure_theory.weighted_smul_congr MeasureTheory.weightedSmul_congr
-theorem weightedSmul_null {s : Set α} (h_zero : μ s = 0) : (weightedSmul μ s : F →L[ℝ] F) = 0 :=
- by
- ext1 x
- rw [weighted_smul_apply, h_zero]
- simp
+theorem weightedSmul_null {s : Set α} (h_zero : μ s = 0) : (weightedSmul μ s : F →L[ℝ] F) = 0 := by
+ ext1 x; rw [weighted_smul_apply, h_zero]; simp
#align measure_theory.weighted_smul_null MeasureTheory.weightedSmul_null
theorem weightedSmul_union' (s t : Set α) (ht : MeasurableSet t) (hs_finite : μ s ≠ ∞)
@@ -290,16 +278,11 @@ def negPart [Neg E] (f : α →ₛ E) : α →ₛ E :=
posPart (-f)
#align measure_theory.simple_func.neg_part MeasureTheory.SimpleFunc.negPart
-theorem posPart_map_norm (f : α →ₛ ℝ) : (posPart f).map norm = posPart f :=
- by
- ext
- rw [map_apply, Real.norm_eq_abs, abs_of_nonneg]
- exact le_max_right _ _
+theorem posPart_map_norm (f : α →ₛ ℝ) : (posPart f).map norm = posPart f := by ext;
+ rw [map_apply, Real.norm_eq_abs, abs_of_nonneg]; exact le_max_right _ _
#align measure_theory.simple_func.pos_part_map_norm MeasureTheory.SimpleFunc.posPart_map_norm
-theorem negPart_map_norm (f : α →ₛ ℝ) : (negPart f).map norm = negPart f :=
- by
- rw [neg_part]
+theorem negPart_map_norm (f : α →ₛ ℝ) : (negPart f).map norm = negPart f := by rw [neg_part];
exact pos_part_map_norm _
#align measure_theory.simple_func.neg_part_map_norm MeasureTheory.SimpleFunc.negPart_map_norm
@@ -347,11 +330,8 @@ theorem integral_eq {m : MeasurableSpace α} (μ : Measure α) (f : α →ₛ F)
theorem integral_eq_sum_filter [DecidablePred fun x : F => x ≠ 0] {m : MeasurableSpace α}
(f : α →ₛ F) (μ : Measure α) :
- f.integral μ = ∑ x in f.range.filterₓ fun x => x ≠ 0, (μ (f ⁻¹' {x})).toReal • x :=
- by
- rw [integral_def, set_to_simple_func_eq_sum_filter]
- simp_rw [weighted_smul_apply]
- congr
+ f.integral μ = ∑ x in f.range.filterₓ fun x => x ≠ 0, (μ (f ⁻¹' {x})).toReal • x := by
+ rw [integral_def, set_to_simple_func_eq_sum_filter]; simp_rw [weighted_smul_apply]; congr
#align measure_theory.simple_func.integral_eq_sum_filter MeasureTheory.SimpleFunc.integral_eq_sum_filter
/-- The Bochner integral is equal to a sum over any set that includes `f.range` (except `0`). -/
@@ -415,8 +395,7 @@ theorem integral_eq_lintegral' {f : α →ₛ E} {g : E → ℝ≥0∞} (hf : In
rw [smul_eq_mul, to_real_mul, mul_comm]
· intro a ha
by_cases a0 : a = 0
- · rw [a0, hg0, MulZeroClass.zero_mul]
- exact WithTop.zero_ne_top
+ · rw [a0, hg0, MulZeroClass.zero_mul]; exact WithTop.zero_ne_top
· apply mul_ne_top (ht a) (hf'.meas_preimage_singleton_ne_zero a0).Ne
· simp [hg0]
#align measure_theory.simple_func.integral_eq_lintegral' MeasureTheory.SimpleFunc.integral_eq_lintegral'
@@ -464,9 +443,7 @@ theorem norm_setToSimpleFunc_le_integral_norm (T : Set α → E →L[ℝ] F) {C
calc
‖f.setToSimpleFunc T‖ ≤ C * ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) * ‖x‖ :=
norm_setToSimpleFunc_le_sum_mul_norm_of_integrable T hT_norm f hf
- _ = C * (f.map norm).integral μ :=
- by
- rw [map_integral f norm hf norm_zero]
+ _ = C * (f.map norm).integral μ := by rw [map_integral f norm hf norm_zero];
simp_rw [smul_eq_mul]
#align measure_theory.simple_func.norm_set_to_simple_func_le_integral_norm MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm
@@ -722,10 +699,7 @@ theorem integral_eq (f : α →₁[μ] E) : integral f = integralClm f := by sim
#align measure_theory.L1.integral_eq MeasureTheory.L1.integral_eq
theorem integral_eq_setToL1 (f : α →₁[μ] E) :
- integral f = setToL1 (dominatedFinMeasAdditive_weightedSmul μ) f :=
- by
- simp only [integral]
- rfl
+ integral f = setToL1 (dominatedFinMeasAdditive_weightedSmul μ) f := by simp only [integral]; rfl
#align measure_theory.L1.integral_eq_set_to_L1 MeasureTheory.L1.integral_eq_setToL1
@[norm_cast]
@@ -872,16 +846,12 @@ open ContinuousLinearMap MeasureTheory.SimpleFunc
variable {f g : α → E} {m : MeasurableSpace α} {μ : Measure α}
theorem integral_eq (f : α → E) (hf : Integrable f μ) : (∫ a, f a ∂μ) = L1.integral (hf.toL1 f) :=
- by
- rw [integral]
- exact @dif_pos _ (id _) hf _ _ _
+ by rw [integral]; exact @dif_pos _ (id _) hf _ _ _
#align measure_theory.integral_eq MeasureTheory.integral_eq
theorem integral_eq_setToFun (f : α → E) :
- (∫ a, f a ∂μ) = setToFun μ (weightedSmul μ) (dominatedFinMeasAdditive_weightedSmul μ) f :=
- by
- simp only [integral, L1.integral]
- rfl
+ (∫ a, f a ∂μ) = setToFun μ (weightedSmul μ) (dominatedFinMeasAdditive_weightedSmul μ) f := by
+ simp only [integral, L1.integral]; rfl
#align measure_theory.integral_eq_set_to_fun MeasureTheory.integral_eq_setToFun
theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f a ∂μ :=
@@ -890,9 +860,7 @@ theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f
exact (L1.set_to_fun_eq_set_to_L1 (dominated_fin_meas_additive_weighted_smul μ) f).symm
#align measure_theory.L1.integral_eq_integral MeasureTheory.L1.integral_eq_integral
-theorem integral_undef (h : ¬Integrable f μ) : (∫ a, f a ∂μ) = 0 :=
- by
- rw [integral]
+theorem integral_undef (h : ¬Integrable f μ) : (∫ a, f a ∂μ) = 0 := by rw [integral];
exact @dif_neg _ (id _) h _ _ _
#align measure_theory.integral_undef MeasureTheory.integral_undef
@@ -915,11 +883,8 @@ theorem integral_zero' : integral μ (0 : α → E) = 0 :=
variable {α E}
-theorem integrable_of_integral_eq_one {f : α → ℝ} (h : (∫ x, f x ∂μ) = 1) : Integrable f μ :=
- by
- contrapose h
- rw [integral_undef h]
- exact zero_ne_one
+theorem integrable_of_integral_eq_one {f : α → ℝ} (h : (∫ x, f x ∂μ) = 1) : Integrable f μ := by
+ contrapose h; rw [integral_undef h]; exact zero_ne_one
#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
theorem integral_add (hf : Integrable f μ) (hg : Integrable g μ) :
@@ -975,10 +940,7 @@ theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
theorem integral_mul_right {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, f a * r ∂μ) = (∫ a, f a ∂μ) * r :=
- by
- simp only [mul_comm]
- exact integral_mul_left r f
+ (∫ a, f a * r ∂μ) = (∫ a, f a ∂μ) * r := by simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
@@ -1013,15 +975,13 @@ theorem norm_integral_le_lintegral_norm (f : α → E) :
by_cases hf : integrable f μ
· rw [integral_eq f hf, ← integrable.norm_to_L1_eq_lintegral_norm f hf]
exact L1.norm_integral_le _
- · rw [integral_undef hf, norm_zero]
- exact to_real_nonneg
+ · rw [integral_undef hf, norm_zero]; exact to_real_nonneg
#align measure_theory.norm_integral_le_lintegral_norm MeasureTheory.norm_integral_le_lintegral_norm
theorem ennnorm_integral_le_lintegral_ennnorm (f : α → E) :
(‖∫ a, f a ∂μ‖₊ : ℝ≥0∞) ≤ ∫⁻ a, ‖f a‖₊ ∂μ :=
by
- simp_rw [← ofReal_norm_eq_coe_nnnorm]
- apply ENNReal.ofReal_le_of_le_toReal
+ simp_rw [← ofReal_norm_eq_coe_nnnorm]; apply ENNReal.ofReal_le_of_le_toReal
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
@@ -1232,8 +1192,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
by
refine' lintegral_congr_ae (hf.mono fun a h => _)
rw [Real.norm_eq_abs, abs_of_nonneg h]
- rw [this, hfi]
- rfl
+ rw [this, hfi]; rfl
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
@@ -1241,8 +1200,7 @@ theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α →
by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
- · refine' ae_of_all _ _
- simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
+ · refine' ae_of_all _ _; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
#align measure_theory.integral_norm_eq_lintegral_nnnorm MeasureTheory.integral_norm_eq_lintegral_nnnorm
theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
@@ -1294,11 +1252,8 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
(∫ a, (f a).toReal ∂μ) = (∫⁻ a, f a ∂μ).toReal :=
by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_to_real.ae_strongly_measurable]
- · rw [lintegral_congr_ae]
- refine' hf.mp (eventually_of_forall _)
- intro x hx
- rw [lt_top_iff_ne_top] at hx
- simp [hx]
+ · rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
+ intro x hx; rw [lt_top_iff_ne_top] at hx; simp [hx]
· exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
@@ -1313,8 +1268,7 @@ theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (
by
by_cases hf : integrable (fun a => (f a : ℝ)) μ
· exact (lintegral_coe_le_coe_iff_integral_le hf).1 h
- · rw [integral_undef hf]
- exact b.2
+ · rw [integral_undef hf]; exact b.2
#align measure_theory.integral_coe_le_of_lintegral_coe_le MeasureTheory.integral_coe_le_of_lintegral_coe_le
theorem integral_nonneg {f : α → ℝ} (hf : 0 ≤ f) : 0 ≤ ∫ a, f a ∂μ :=
@@ -1388,8 +1342,7 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
apply lintegral_congr fun x => _
rw [← of_real_rpow_of_nonneg (norm_nonneg _) to_real_nonneg, ofReal_norm_eq_coe_nnnorm]
simp only [snorm_eq_lintegral_rpow_nnnorm hp1 hp2, one_div]
- rw [integral_eq_lintegral_of_nonneg_ae]
- rotate_left
+ rw [integral_eq_lintegral_of_nonneg_ae]; rotate_left
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
· exact (hf.ae_strongly_measurable.norm.ae_measurable.pow_const _).AEStronglyMeasurable
rw [A, ← of_real_rpow_of_nonneg to_real_nonneg (inv_nonneg.2 to_real_nonneg), of_real_to_real]
@@ -1467,10 +1420,8 @@ theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ
#align measure_theory.simple_func.integral_eq_integral MeasureTheory.SimpleFunc.integral_eq_integral
theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x :=
- by
- rw [← f.integral_eq_integral hfi, simple_func.integral, ← simple_func.integral_eq]
- rfl
+ (∫ x, f x ∂μ) = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
+ rw [← f.integral_eq_integral hfi, simple_func.integral, ← simple_func.integral_eq]; rfl
#align measure_theory.simple_func.integral_eq_sum MeasureTheory.SimpleFunc.integral_eq_sum
@[simp]
@@ -1683,9 +1634,7 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
let g := hfm.mk f
calc
(∫ y, f y ∂Measure.map φ μ) = ∫ y, g y ∂Measure.map φ μ := integral_congr_ae hfm.ae_eq_mk
- _ = ∫ y, g y ∂Measure.map (hφ.mk φ) μ := by
- congr 1
- exact measure.map_congr hφ.ae_eq_mk
+ _ = ∫ y, g y ∂Measure.map (hφ.mk φ) μ := by congr 1; exact measure.map_congr hφ.ae_eq_mk
_ = ∫ x, g (hφ.mk φ x) ∂μ :=
(integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk)
_ = ∫ x, g (φ x) ∂μ := (integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _))
@@ -1720,9 +1669,7 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → E) : (∫ x in s, f x) = ∫ x : s, f x :=
- by
- rw [← map_comap_subtype_coe hs]
+ (f : α → E) : (∫ x in s, f x) = ∫ x : s, f x := by rw [← map_comap_subtype_coe hs];
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -361,7 +361,7 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
by
rw [simple_func.integral_eq_sum_filter, Finset.sum_subset hs]
rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne.def, Classical.not_not] at hx
- rcases hx with (hx | rfl) <;> [skip, simp]
+ rcases hx with (hx | rfl) <;> [skip;simp]
rw [simple_func.mem_range] at hx;
rw [preimage_eq_empty] <;> simp [Set.disjoint_singleton_left, hx]
#align measure_theory.simple_func.integral_eq_sum_of_subset MeasureTheory.SimpleFunc.integral_eq_sum_of_subset
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -896,9 +896,9 @@ theorem integral_undef (h : ¬Integrable f μ) : (∫ a, f a ∂μ) = 0 :=
exact @dif_neg _ (id _) h _ _ _
#align measure_theory.integral_undef MeasureTheory.integral_undef
-theorem integral_non_aeStronglyMeasurable (h : ¬AeStronglyMeasurable f μ) : (∫ a, f a ∂μ) = 0 :=
+theorem integral_non_aEStronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : (∫ a, f a ∂μ) = 0 :=
integral_undef <| not_and_of_not_left _ h
-#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aeStronglyMeasurable
+#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aEStronglyMeasurable
variable (α E)
@@ -1068,7 +1068,7 @@ theorem tendsto_integral_of_L1 {ι} (f : α → E) (hfi : Integrable f μ) {F :
(i.e. not requiring that `bound` is measurable), but in all applications proving integrability
is easier. -/
theorem tendsto_integral_of_dominated_convergence {F : ℕ → α → E} {f : α → E} (bound : α → ℝ)
- (F_measurable : ∀ n, AeStronglyMeasurable (F n) μ) (bound_integrable : Integrable bound μ)
+ (F_measurable : ∀ n, AEStronglyMeasurable (F n) μ) (bound_integrable : Integrable bound μ)
(h_bound : ∀ n, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound a)
(h_lim : ∀ᵐ a ∂μ, Tendsto (fun n => F n a) atTop (𝓝 (f a))) :
Tendsto (fun n => ∫ a, F n a ∂μ) atTop (𝓝 <| ∫ a, f a ∂μ) :=
@@ -1081,7 +1081,7 @@ theorem tendsto_integral_of_dominated_convergence {F : ℕ → α → E} {f : α
/-- Lebesgue dominated convergence theorem for filters with a countable basis -/
theorem tendsto_integral_filter_of_dominated_convergence {ι} {l : Filter ι} [l.IsCountablyGenerated]
- {F : ι → α → E} {f : α → E} (bound : α → ℝ) (hF_meas : ∀ᶠ n in l, AeStronglyMeasurable (F n) μ)
+ {F : ι → α → E} {f : α → E} (bound : α → ℝ) (hF_meas : ∀ᶠ n in l, AEStronglyMeasurable (F n) μ)
(h_bound : ∀ᶠ n in l, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_lim : ∀ᵐ a ∂μ, Tendsto (fun n => F n a) l (𝓝 (f a))) :
Tendsto (fun n => ∫ a, F n a ∂μ) l (𝓝 <| ∫ a, f a ∂μ) :=
@@ -1094,7 +1094,7 @@ theorem tendsto_integral_filter_of_dominated_convergence {ι} {l : Filter ι} [l
/-- Lebesgue dominated convergence theorem for series. -/
theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι → α → E} {f : α → E}
- (bound : ι → α → ℝ) (hF_meas : ∀ n, AeStronglyMeasurable (F n) μ)
+ (bound : ι → α → ℝ) (hF_meas : ∀ n, AEStronglyMeasurable (F n) μ)
(h_bound : ∀ n, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound n a)
(bound_summable : ∀ᵐ a ∂μ, Summable fun n => bound n a)
(bound_integrable : Integrable (fun a => ∑' n, bound n a) μ)
@@ -1116,7 +1116,7 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
refine'
tendsto_integral_filter_of_dominated_convergence (fun a => ∑' n, bound n a) _ _ bound_integrable
h_lim
- · exact eventually_of_forall fun s => s.aeStronglyMeasurable_sum fun n hn => hF_meas n
+ · exact eventually_of_forall fun s => s.aestronglyMeasurable_sum fun n hn => hF_meas n
· refine' eventually_of_forall fun s => _
filter_upwards [eventually_countable_forall.2 h_bound, hb_nonneg,
bound_summable]with a hFa ha0 has
@@ -1129,7 +1129,7 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
variable {X : Type _} [TopologicalSpace X] [FirstCountableTopology X]
theorem continuousWithinAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α → ℝ} {s : Set X}
- (hF_meas : ∀ᶠ x in 𝓝[s] x₀, AeStronglyMeasurable (F x) μ)
+ (hF_meas : ∀ᶠ x in 𝓝[s] x₀, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ᶠ x in 𝓝[s] x₀, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_cont : ∀ᵐ a ∂μ, ContinuousWithinAt (fun x => F x a) s x₀) :
ContinuousWithinAt (fun x => ∫ a, F x a ∂μ) s x₀ :=
@@ -1141,7 +1141,7 @@ theorem continuousWithinAt_of_dominated {F : X → α → E} {x₀ : X} {bound :
#align measure_theory.continuous_within_at_of_dominated MeasureTheory.continuousWithinAt_of_dominated
theorem continuousAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α → ℝ}
- (hF_meas : ∀ᶠ x in 𝓝 x₀, AeStronglyMeasurable (F x) μ)
+ (hF_meas : ∀ᶠ x in 𝓝 x₀, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ᶠ x in 𝓝 x₀, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_cont : ∀ᵐ a ∂μ, ContinuousAt (fun x => F x a) x₀) :
ContinuousAt (fun x => ∫ a, F x a ∂μ) x₀ :=
@@ -1153,7 +1153,7 @@ theorem continuousAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α
#align measure_theory.continuous_at_of_dominated MeasureTheory.continuousAt_of_dominated
theorem continuousOn_of_dominated {F : X → α → E} {bound : α → ℝ} {s : Set X}
- (hF_meas : ∀ x ∈ s, AeStronglyMeasurable (F x) μ)
+ (hF_meas : ∀ x ∈ s, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ x ∈ s, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_cont : ∀ᵐ a ∂μ, ContinuousOn (fun x => F x a) s) : ContinuousOn (fun x => ∫ a, F x a ∂μ) s :=
by
@@ -1164,7 +1164,7 @@ theorem continuousOn_of_dominated {F : X → α → E} {bound : α → ℝ} {s :
#align measure_theory.continuous_on_of_dominated MeasureTheory.continuousOn_of_dominated
theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
- (hF_meas : ∀ x, AeStronglyMeasurable (F x) μ) (h_bound : ∀ x, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a)
+ (hF_meas : ∀ x, AEStronglyMeasurable (F x) μ) (h_bound : ∀ x, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a)
(bound_integrable : Integrable bound μ) (h_cont : ∀ᵐ a ∂μ, Continuous fun x => F x a) :
Continuous fun x => ∫ a, F x a ∂μ :=
by
@@ -1211,7 +1211,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
#align measure_theory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part MeasureTheory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part
theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
- (hfm : AeStronglyMeasurable f μ) :
+ (hfm : AEStronglyMeasurable f μ) :
(∫ a, f a ∂μ) = ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) :=
by
by_cases hfi : integrable f μ
@@ -1237,7 +1237,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
- (hf : AeStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
+ (hf : AEStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
@@ -1391,7 +1391,7 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
rw [integral_eq_lintegral_of_nonneg_ae]
rotate_left
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
- · exact (hf.ae_strongly_measurable.norm.ae_measurable.pow_const _).AeStronglyMeasurable
+ · exact (hf.ae_strongly_measurable.norm.ae_measurable.pow_const _).AEStronglyMeasurable
rw [A, ← of_real_rpow_of_nonneg to_real_nonneg (inv_nonneg.2 to_real_nonneg), of_real_to_real]
exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).Ne
#align measure_theory.mem_ℒp.snorm_eq_integral_rpow_norm MeasureTheory.Memℒp.snorm_eq_integral_rpow_norm
@@ -1438,13 +1438,13 @@ theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0
theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖ ≤ ∫ a, ‖f a‖ ∂μ :=
have le_ae : ∀ᵐ a ∂μ, 0 ≤ ‖f a‖ := eventually_of_forall fun a => norm_nonneg _
by_cases
- (fun h : AeStronglyMeasurable f μ =>
+ (fun h : AEStronglyMeasurable f μ =>
calc
‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
norm_integral_le_lintegral_norm _
_ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm
)
- fun h : ¬AeStronglyMeasurable f μ =>
+ fun h : ¬AEStronglyMeasurable f μ =>
by
rw [integral_non_ae_strongly_measurable h, norm_zero]
exact integral_nonneg_of_ae le_ae
@@ -1603,7 +1603,7 @@ theorem integral_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ :
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args -/
-theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeStronglyMeasurable (f i) μ)
+theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
(hf' : (∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ) ≠ ∞) :
(∫ a : α, ∑' i, f i a ∂μ) = ∑' i, ∫ a : α, f i a ∂μ :=
by
@@ -1622,7 +1622,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeS
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args"
rfl
· simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
- rw [aeStronglyMeasurable_iff_aEMeasurable]
+ rw [aestronglyMeasurable_iff_aemeasurable]
apply AEMeasurable.coe_nnreal_real
apply AEMeasurable.nnreal_tsum
exact fun i => (hf i).nnnorm.AEMeasurable
@@ -1678,7 +1678,7 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
#align measure_theory.integral_map_of_strongly_measurable MeasureTheory.integral_map_of_stronglyMeasurable
theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → E}
- (hfm : AeStronglyMeasurable f (Measure.map φ μ)) :
+ (hfm : AEStronglyMeasurable f (Measure.map φ μ)) :
(∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
let g := hfm.mk f
calc
@@ -1812,9 +1812,9 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
integral_eq_lintegral_of_nonneg_ae]
rotate_left
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
- · exact (hg.1.norm.AEMeasurable.pow aemeasurable_const).AeStronglyMeasurable
+ · exact (hg.1.norm.AEMeasurable.pow aemeasurable_const).AEStronglyMeasurable
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
- · exact (hf.1.norm.AEMeasurable.pow aemeasurable_const).AeStronglyMeasurable
+ · exact (hf.1.norm.AEMeasurable.pow aemeasurable_const).AEStronglyMeasurable
· exact eventually_of_forall fun x => mul_nonneg (norm_nonneg _) (norm_nonneg _)
· exact hf.1.norm.mul hg.1.norm
rw [ENNReal.toReal_rpow, ENNReal.toReal_rpow, ← ENNReal.toReal_mul]
@@ -1963,7 +1963,7 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : strongly_measurable[m
exact tendsto_nhds_unique h_lim_1 h_lim_2
#align measure_theory.integral_trim MeasureTheory.integral_trim
-theorem integral_trim_ae (hm : m ≤ m0) {f : β → F} (hf : AeStronglyMeasurable f (μ.trim hm)) :
+theorem integral_trim_ae (hm : m ≤ m0) {f : β → F} (hf : AEStronglyMeasurable f (μ.trim hm)) :
(∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm :=
by
rw [integral_congr_ae (ae_eq_of_ae_eq_trim hf.ae_eq_mk), integral_congr_ae hf.ae_eq_mk]
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -145,7 +145,7 @@ Bochner integral, simple function, function space, Lebesgue dominated convergenc
-/
-assert_not_exists differentiable
+assert_not_exists Differentiable
noncomputable section
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -1611,7 +1611,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeS
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) :=
by
rw [← lintegral_tsum hf''] at hf'
- refine' (ae_lt_top' (AEMeasurable.eNNReal_tsum hf'') hf').mono _
+ refine' (ae_lt_top' (AEMeasurable.ennreal_tsum hf'') hf').mono _
intro x hx
rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
exact hx.ne
@@ -1623,8 +1623,8 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeS
rfl
· simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
rw [aeStronglyMeasurable_iff_aEMeasurable]
- apply AEMeasurable.coe_nNReal_real
- apply AEMeasurable.nNReal_tsum
+ apply AEMeasurable.coe_nnreal_real
+ apply AEMeasurable.nnreal_tsum
exact fun i => (hf i).nnnorm.AEMeasurable
· dsimp [has_finite_integral]
have : (∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ) < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
@@ -1849,8 +1849,8 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
· exact ENNReal.coe_ne_top
·
exact
- ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AEMeasurable.coe_nNReal_eNNReal
- hg.1.nnnorm.AEMeasurable.coe_nNReal_eNNReal
+ ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AEMeasurable.coe_nnreal_ennreal
+ hg.1.nnnorm.AEMeasurable.coe_nnreal_ennreal
#align measure_theory.integral_mul_norm_le_Lp_mul_Lq MeasureTheory.integral_mul_norm_le_Lp_mul_Lq
/-- Hölder's inequality for functions `α → ℝ`. The integral of the product of two nonnegative
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit a9545e8a564bac7f24637443f52ae955474e4991
+! leanprover-community/mathlib commit 8f9fea08977f7e450770933ee6abb20733b47c92
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -145,6 +145,8 @@ Bochner integral, simple function, function space, Lebesgue dominated convergenc
-/
+assert_not_exists differentiable
+
noncomputable section
open Topology BigOperators NNReal ENNReal MeasureTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -1487,7 +1487,7 @@ theorem integral_const (c : E) : (∫ x : α, c ∂μ) = (μ univ).toReal • c
simp [integral_undef, *]
#align measure_theory.integral_const MeasureTheory.integral_const
-theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C : ℝ}
+theorem norm_integral_le_of_norm_le_const [FiniteMeasure μ] {f : α → E} {C : ℝ}
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : ‖∫ x, f x ∂μ‖ ≤ C * (μ univ).toReal :=
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, C ∂μ := norm_integral_le_of_norm_le (integrable_const C) h
@@ -1764,7 +1764,7 @@ theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f
· exact integral_zero_measure _
#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
-theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
+theorem mul_meas_ge_le_integral_of_nonneg [FiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
(hf_int : Integrable f μ) (ε : ℝ) : ε * (μ { x | ε ≤ f x }).toReal ≤ ∫ x, f x ∂μ :=
by
cases' lt_or_le ε 0 with hε hε
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit fbde2f60a46865c85f49b4193175c6e339ff9020
+! leanprover-community/mathlib commit a9545e8a564bac7f24637443f52ae955474e4991
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -1744,6 +1744,26 @@ theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f :
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
+theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
+ {s : Set α} (hs : MeasurableSet s) [Decidable (a ∈ s)] :
+ (∫ x in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0 :=
+ by
+ rw [restrict_dirac' hs]
+ swap; · infer_instance
+ split_ifs
+ · exact integral_dirac' _ _ hf
+ · exact integral_zero_measure _
+#align measure_theory.set_integral_dirac' MeasureTheory.set_integral_dirac'
+
+theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
+ (s : Set α) [Decidable (a ∈ s)] : (∫ x in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0 :=
+ by
+ rw [restrict_dirac]
+ split_ifs
+ · exact integral_dirac _ _
+ · exact integral_zero_measure _
+#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
+
theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
(hf_int : Integrable f μ) (ε : ℝ) : ε * (μ { x | ε ≤ f x }).toReal ≤ ∫ x, f x ∂μ :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -256,10 +256,10 @@ theorem norm_weightedSmul_le (s : Set α) : ‖(weightedSmul μ s : F →L[ℝ]
#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSmul_le
-theorem dominatedFinMeasAdditiveWeightedSmul {m : MeasurableSpace α} (μ : Measure α) :
+theorem dominatedFinMeasAdditive_weightedSmul {m : MeasurableSpace α} (μ : Measure α) :
DominatedFinMeasAdditive μ (weightedSmul μ : Set α → F →L[ℝ] F) 1 :=
⟨weightedSmul_union, fun s _ _ => (norm_weightedSmul_le s).trans (one_mul _).symm.le⟩
-#align measure_theory.dominated_fin_meas_additive_weighted_smul MeasureTheory.dominatedFinMeasAdditiveWeightedSmul
+#align measure_theory.dominated_fin_meas_additive_weighted_smul MeasureTheory.dominatedFinMeasAdditive_weightedSmul
theorem weightedSmul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weightedSmul μ s x :=
by
@@ -301,7 +301,7 @@ theorem negPart_map_norm (f : α →ₛ ℝ) : (negPart f).map norm = negPart f
exact pos_part_map_norm _
#align measure_theory.simple_func.neg_part_map_norm MeasureTheory.SimpleFunc.negPart_map_norm
-theorem posPart_sub_negPart (f : α →ₛ ℝ) : f.posPart - f.negPart = f :=
+theorem posPart_sub_negPart (f : α →ₛ ℝ) : f.posPart - f.neg_part = f :=
by
simp only [pos_part, neg_part]
ext a
@@ -628,7 +628,7 @@ theorem posPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
#align measure_theory.L1.simple_func.pos_part_to_simple_func MeasureTheory.L1.SimpleFunc.posPart_toSimpleFunc
theorem negPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
- toSimpleFunc (negPart f) =ᵐ[μ] (toSimpleFunc f).negPart :=
+ toSimpleFunc (negPart f) =ᵐ[μ] (toSimpleFunc f).neg_part :=
by
rw [simple_func.neg_part, MeasureTheory.SimpleFunc.negPart]
filter_upwards [pos_part_to_simple_func (-f), neg_to_simple_func f]
@@ -648,7 +648,7 @@ theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f =
rw [simple_func.map_apply, h]
conv_lhs => rw [← simple_func.pos_part_map_norm, simple_func.map_apply]
-- Convert things in `L¹` to their `simple_func` counterpart
- have ae_eq₂ : (to_simple_func f).negPart =ᵐ[μ] (to_simple_func (neg_part f)).map norm :=
+ have ae_eq₂ : (to_simple_func f).neg_part =ᵐ[μ] (to_simple_func (neg_part f)).map norm :=
by
filter_upwards [neg_part_to_simple_func f]with _ h
rw [simple_func.map_apply, h]
@@ -656,7 +656,7 @@ theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f =
-- Convert things in `L¹` to their `simple_func` counterpart
have ae_eq :
∀ᵐ a ∂μ,
- (to_simple_func f).posPart a - (to_simple_func f).negPart a =
+ (to_simple_func f).posPart a - (to_simple_func f).neg_part a =
(to_simple_func (pos_part f)).map norm a - (to_simple_func (neg_part f)).map norm a :=
by
filter_upwards [ae_eq₁, ae_eq₂]with _ h₁ h₂
@@ -673,7 +673,7 @@ theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f =
conv_lhs => rw [← this]
rfl
· exact (simple_func.integrable f).posPart.congr ae_eq₁
- · exact (simple_func.integrable f).negPart.congr ae_eq₂
+ · exact (simple_func.integrable f).neg_part.congr ae_eq₂
#align measure_theory.L1.simple_func.integral_eq_norm_pos_part_sub MeasureTheory.L1.SimpleFunc.integral_eq_norm_posPart_sub
end PosPart
@@ -720,7 +720,7 @@ theorem integral_eq (f : α →₁[μ] E) : integral f = integralClm f := by sim
#align measure_theory.L1.integral_eq MeasureTheory.L1.integral_eq
theorem integral_eq_setToL1 (f : α →₁[μ] E) :
- integral f = setToL1 (dominatedFinMeasAdditiveWeightedSmul μ) f :=
+ integral f = setToL1 (dominatedFinMeasAdditive_weightedSmul μ) f :=
by
simp only [integral]
rfl
@@ -776,7 +776,7 @@ local notation "Integral" => @integralClm α E _ _ μ _ _
local notation "sIntegral" => @SimpleFunc.integralClm α E _ _ μ _
theorem norm_Integral_le_one : ‖Integral‖ ≤ 1 :=
- norm_setToL1_le (dominatedFinMeasAdditiveWeightedSmul μ) zero_le_one
+ norm_setToL1_le (dominatedFinMeasAdditive_weightedSmul μ) zero_le_one
#align measure_theory.L1.norm_Integral_le_one MeasureTheory.L1.norm_Integral_le_one
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
@@ -876,7 +876,7 @@ theorem integral_eq (f : α → E) (hf : Integrable f μ) : (∫ a, f a ∂μ) =
#align measure_theory.integral_eq MeasureTheory.integral_eq
theorem integral_eq_setToFun (f : α → E) :
- (∫ a, f a ∂μ) = setToFun μ (weightedSmul μ) (dominatedFinMeasAdditiveWeightedSmul μ) f :=
+ (∫ a, f a ∂μ) = setToFun μ (weightedSmul μ) (dominatedFinMeasAdditive_weightedSmul μ) f :=
by
simp only [integral, L1.integral]
rfl
@@ -913,12 +913,12 @@ theorem integral_zero' : integral μ (0 : α → E) = 0 :=
variable {α E}
-theorem integrableOfIntegralEqOne {f : α → ℝ} (h : (∫ x, f x ∂μ) = 1) : Integrable f μ :=
+theorem integrable_of_integral_eq_one {f : α → ℝ} (h : (∫ x, f x ∂μ) = 1) : Integrable f μ :=
by
contrapose h
rw [integral_undef h]
exact zero_ne_one
-#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrableOfIntegralEqOne
+#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
theorem integral_add (hf : Integrable f μ) (hg : Integrable g μ) :
(∫ a, f a + g a ∂μ) = (∫ a, f a ∂μ) + ∫ a, g a ∂μ :=
@@ -1114,7 +1114,7 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
refine'
tendsto_integral_filter_of_dominated_convergence (fun a => ∑' n, bound n a) _ _ bound_integrable
h_lim
- · exact eventually_of_forall fun s => s.ae_strongly_measurable_sum fun n hn => hF_meas n
+ · exact eventually_of_forall fun s => s.aeStronglyMeasurable_sum fun n hn => hF_meas n
· refine' eventually_of_forall fun s => _
filter_upwards [eventually_countable_forall.2 h_bound, hb_nonneg,
bound_summable]with a hFa ha0 has
@@ -1288,7 +1288,7 @@ theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f
exact congr_arg ENNReal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
-theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AeMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
+theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
(∫ a, (f a).toReal ∂μ) = (∫⁻ a, f a ∂μ).toReal :=
by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_to_real.ae_strongly_measurable]
@@ -1333,7 +1333,7 @@ theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : (∫ a, f a ∂μ) ≤
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
(∫ x, f x ∂μ) = 0 ↔ f =ᵐ[μ] 0 := by
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
- lintegral_eq_zero_iff' (ennreal.measurable_of_real.comp_ae_measurable hfi.1.AeMeasurable), ←
+ lintegral_eq_zero_iff' (ennreal.measurable_of_real.comp_ae_measurable hfi.1.AEMeasurable), ←
ENNReal.not_lt_top, ← has_finite_integral_iff_of_real hf, hfi.2, not_true, or_false_iff, ←
hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLE, (· ∘ ·), Pi.zero_apply,
ENNReal.ofReal_eq_zero]
@@ -1490,7 +1490,7 @@ theorem integral_const (c : E) : (∫ x : α, c ∂μ) = (μ univ).toReal • c
theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C : ℝ}
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : ‖∫ x, f x ∂μ‖ ≤ C * (μ univ).toReal :=
calc
- ‖∫ x, f x ∂μ‖ ≤ ∫ x, C ∂μ := norm_integral_le_of_norm_le (integrableConst C) h
+ ‖∫ x, f x ∂μ‖ ≤ ∫ x, C ∂μ := norm_integral_le_of_norm_le (integrable_const C) h
_ = C * (μ univ).toReal := by rw [integral_const, smul_eq_mul, mul_comm]
#align measure_theory.norm_integral_le_of_norm_le_const MeasureTheory.norm_integral_le_of_norm_le_const
@@ -1605,11 +1605,11 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeS
(hf' : (∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ) ≠ ∞) :
(∫ a : α, ∑' i, f i a ∂μ) = ∑' i, ∫ a : α, f i a ∂μ :=
by
- have hf'' : ∀ i, AeMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
+ have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) :=
by
rw [← lintegral_tsum hf''] at hf'
- refine' (ae_lt_top' (AeMeasurable.ennrealTsum hf'') hf').mono _
+ refine' (ae_lt_top' (AEMeasurable.eNNReal_tsum hf'') hf').mono _
intro x hx
rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
exact hx.ne
@@ -1620,10 +1620,10 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeS
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args"
rfl
· simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
- rw [aeStronglyMeasurable_iff_aeMeasurable]
- apply AeMeasurable.coeNnrealReal
- apply AeMeasurable.nnrealTsum
- exact fun i => (hf i).nnnorm.AeMeasurable
+ rw [aeStronglyMeasurable_iff_aEMeasurable]
+ apply AEMeasurable.coe_nNReal_real
+ apply AEMeasurable.nNReal_tsum
+ exact fun i => (hf i).nnnorm.AEMeasurable
· dsimp [has_finite_integral]
have : (∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ) < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
convert this using 1
@@ -1645,7 +1645,7 @@ theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : (∫ x, f x ∂c
simp_rw [integral_eq_set_to_fun, ← set_to_fun_smul_left]
have hdfma :
dominated_fin_meas_additive μ (weighted_smul (c • μ) : Set α → E →L[ℝ] E) c.to_real :=
- mul_one c.to_real ▸ (dominated_fin_meas_additive_weighted_smul (c • μ)).ofSmulMeasure c hc
+ mul_one c.to_real ▸ (dominated_fin_meas_additive_weighted_smul (c • μ)).of_smul_measure c hc
have hdfma_smul := dominated_fin_meas_additive_weighted_smul (c • μ)
rw [← set_to_fun_congr_smul_measure c hc hdfma hdfma_smul f]
exact set_to_fun_congr_left' _ _ (fun s hs hμs => weighted_smul_smul_measure μ c) f
@@ -1675,7 +1675,7 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
simp
#align measure_theory.integral_map_of_strongly_measurable MeasureTheory.integral_map_of_stronglyMeasurable
-theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AeMeasurable φ μ) {f : β → E}
+theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → E}
(hfm : AeStronglyMeasurable f (Measure.map φ μ)) :
(∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
let g := hfm.mk f
@@ -1762,7 +1762,7 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
rw [Set.mem_setOf_eq, Set.mem_setOf_eq, ← ENNReal.toReal_ofReal (hf_nonneg x)]
exact ENNReal.toReal_le_toReal ENNReal.ofReal_ne_top ENNReal.ofReal_ne_top
rw [this]
- have h_meas : AeMeasurable (fun x => ENNReal.ofReal (f x)) μ :=
+ have h_meas : AEMeasurable (fun x => ENNReal.ofReal (f x)) μ :=
measurable_id'.ennreal_of_real.comp_ae_measurable hf_int.ae_measurable
have h_mul_meas_le := @mul_meas_ge_le_lintegral₀ _ _ μ _ h_meas (ENNReal.ofReal ε)
rw [ENNReal.toReal_le_toReal _ _]
@@ -1790,9 +1790,9 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
integral_eq_lintegral_of_nonneg_ae]
rotate_left
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
- · exact (hg.1.norm.AeMeasurable.pow aeMeasurableConst).AeStronglyMeasurable
+ · exact (hg.1.norm.AEMeasurable.pow aemeasurable_const).AeStronglyMeasurable
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
- · exact (hf.1.norm.AeMeasurable.pow aeMeasurableConst).AeStronglyMeasurable
+ · exact (hf.1.norm.AEMeasurable.pow aemeasurable_const).AeStronglyMeasurable
· exact eventually_of_forall fun x => mul_nonneg (norm_nonneg _) (norm_nonneg _)
· exact hf.1.norm.mul hg.1.norm
rw [ENNReal.toReal_rpow, ENNReal.toReal_rpow, ← ENNReal.toReal_mul]
@@ -1827,8 +1827,8 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
· exact ENNReal.coe_ne_top
·
exact
- ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AeMeasurable.coe_nNReal_eNNReal
- hg.1.nnnorm.AeMeasurable.coe_nNReal_eNNReal
+ ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AEMeasurable.coe_nNReal_eNNReal
+ hg.1.nnnorm.AEMeasurable.coe_nNReal_eNNReal
#align measure_theory.integral_mul_norm_le_Lp_mul_Lq MeasureTheory.integral_mul_norm_le_Lp_mul_Lq
/-- Hölder's inequality for functions `α → ℝ`. The integral of the product of two nonnegative
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -1613,9 +1613,8 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeS
intro x hx
rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
exact hx.ne
- convert
- (MeasureTheory.hasSum_integral_of_dominated_convergence (fun i a => ‖f i a‖₊) hf _ hhh ⟨_, _⟩
- _).tsum_eq.symm
+ convert(MeasureTheory.hasSum_integral_of_dominated_convergence (fun i a => ‖f i a‖₊) hf _ hhh
+ ⟨_, _⟩ _).tsum_eq.symm
· intro n
trace
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args"
@@ -1663,8 +1662,7 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
refine'
tendsto_nhds_unique
(tendsto_integral_approx_on_of_measurable_of_range_subset hfm.measurable hfi _ subset.rfl) _
- convert
- tendsto_integral_approx_on_of_measurable_of_range_subset (hfm.measurable.comp hφ)
+ convert tendsto_integral_approx_on_of_measurable_of_range_subset (hfm.measurable.comp hφ)
((integrable_map_measure hfm.ae_strongly_measurable hφ.ae_measurable).1 hfi) (range f ∪ {0})
(by simp [insert_subset_insert, Set.range_comp_subset_range]) using
1
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -413,7 +413,7 @@ theorem integral_eq_lintegral' {f : α →ₛ E} {g : E → ℝ≥0∞} (hf : In
rw [smul_eq_mul, to_real_mul, mul_comm]
· intro a ha
by_cases a0 : a = 0
- · rw [a0, hg0, zero_mul]
+ · rw [a0, hg0, MulZeroClass.zero_mul]
exact WithTop.zero_ne_top
· apply mul_ne_top (ht a) (hf'.meas_preimage_singleton_ne_zero a0).Ne
· simp [hg0]
@@ -1991,7 +1991,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
by_cases hr : r = 0
· suffices f =ᵐ[μ] 0
by
- rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, mul_zero]
+ rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, MulZeroClass.mul_zero]
exact le_rfl
rw [hr, Nonneg.coe_zero] at hf
have hnegf : (∫ x, -f x ∂μ) = 0 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/3b267e70a936eebb21ab546f49a8df34dd300b25
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit 59694bd07f0a39c5beccba34bd9f413a160782bf
+! leanprover-community/mathlib commit fbde2f60a46865c85f49b4193175c6e339ff9020
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -1600,6 +1600,42 @@ theorem integral_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ :
(hasSum_integral_measure hf).tsum_eq.symm
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], ["with", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args -/
+theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AeStronglyMeasurable (f i) μ)
+ (hf' : (∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ) ≠ ∞) :
+ (∫ a : α, ∑' i, f i a ∂μ) = ∑' i, ∫ a : α, f i a ∂μ :=
+ by
+ have hf'' : ∀ i, AeMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
+ have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) :=
+ by
+ rw [← lintegral_tsum hf''] at hf'
+ refine' (ae_lt_top' (AeMeasurable.ennrealTsum hf'') hf').mono _
+ intro x hx
+ rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
+ exact hx.ne
+ convert
+ (MeasureTheory.hasSum_integral_of_dominated_convergence (fun i a => ‖f i a‖₊) hf _ hhh ⟨_, _⟩
+ _).tsum_eq.symm
+ · intro n
+ trace
+ "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:38: in filter_upwards #[[], [\"with\", ident x], []]: ./././Mathport/Syntax/Translate/Basic.lean:349:22: unsupported: parse error @ arg 0: next failed, no more args"
+ rfl
+ · simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
+ rw [aeStronglyMeasurable_iff_aeMeasurable]
+ apply AeMeasurable.coeNnrealReal
+ apply AeMeasurable.nnrealTsum
+ exact fun i => (hf i).nnnorm.AeMeasurable
+ · dsimp [has_finite_integral]
+ have : (∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ) < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
+ convert this using 1
+ apply lintegral_congr_ae
+ simp_rw [← coe_nnnorm, ← NNReal.coe_tsum, NNReal.nnnorm_eq]
+ filter_upwards [hhh]with a ha
+ exact ENNReal.coe_tsum (nnreal.summable_coe.mp ha)
+ · filter_upwards [hhh]with x hx
+ exact (summable_of_summable_norm hx).HasSum
+#align measure_theory.integral_tsum MeasureTheory.integral_tsum
+
@[simp]
theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : (∫ x, f x ∂c • μ) = c.toReal • ∫ x, f x ∂μ :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/195fcd60ff2bfe392543bceb0ec2adcdb472db4c
@@ -1335,7 +1335,7 @@ theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
lintegral_eq_zero_iff' (ennreal.measurable_of_real.comp_ae_measurable hfi.1.AeMeasurable), ←
ENNReal.not_lt_top, ← has_finite_integral_iff_of_real hf, hfi.2, not_true, or_false_iff, ←
- hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLe, (· ∘ ·), Pi.zero_apply,
+ hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLE, (· ∘ ·), Pi.zero_apply,
ENNReal.ofReal_eq_zero]
#align measure_theory.integral_eq_zero_iff_of_nonneg_ae MeasureTheory.integral_eq_zero_iff_of_nonneg_ae
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -250,8 +250,8 @@ theorem norm_weightedSmul_le (s : Set α) : ‖(weightedSmul μ s : F →L[ℝ]
‖(weightedSmul μ s : F →L[ℝ] F)‖ = ‖(μ s).toReal‖ * ‖ContinuousLinearMap.id ℝ F‖ :=
norm_smul _ _
_ ≤ ‖(μ s).toReal‖ :=
- (mul_le_mul_of_nonneg_left norm_id_le (norm_nonneg _)).trans (mul_one _).le
- _ = abs (μ s).toReal := Real.norm_eq_abs _
+ ((mul_le_mul_of_nonneg_left norm_id_le (norm_nonneg _)).trans (mul_one _).le)
+ _ = abs (μ s).toReal := (Real.norm_eq_abs _)
_ = (μ s).toReal := abs_eq_self.mpr ENNReal.toReal_nonneg
#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSmul_le
@@ -782,8 +782,8 @@ theorem norm_Integral_le_one : ‖Integral‖ ≤ 1 :=
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
calc
‖integral f‖ = ‖Integral f‖ := by simp only [integral]
- _ ≤ ‖Integral‖ * ‖f‖ := le_op_norm _ _
- _ ≤ 1 * ‖f‖ := mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _
+ _ ≤ ‖Integral‖ * ‖f‖ := (le_op_norm _ _)
+ _ ≤ 1 * ‖f‖ := (mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _)
_ = ‖f‖ := one_mul _
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
@@ -1651,8 +1651,8 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AeMeasura
congr 1
exact measure.map_congr hφ.ae_eq_mk
_ = ∫ x, g (hφ.mk φ x) ∂μ :=
- integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk
- _ = ∫ x, g (φ x) ∂μ := integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _)
+ (integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk)
+ _ = ∫ x, g (φ x) ∂μ := (integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _))
_ = ∫ x, f (φ x) ∂μ := integral_congr_ae <| ae_eq_comp hφ hfm.ae_eq_mk.symm
#align measure_theory.integral_map MeasureTheory.integral_map
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -147,9 +147,9 @@ Bochner integral, simple function, function space, Lebesgue dominated convergenc
noncomputable section
-open Topology BigOperators NNReal Ennreal MeasureTheory
+open Topology BigOperators NNReal ENNReal MeasureTheory
-open Set Filter TopologicalSpace Ennreal Emetric
+open Set Filter TopologicalSpace ENNReal Emetric
namespace MeasureTheory
@@ -195,7 +195,7 @@ theorem weightedSmul_add_measure {m : MeasurableSpace α} (μ ν : Measure α) {
push_cast
simp_rw [Pi.add_apply, weighted_smul_apply]
push_cast
- rw [Pi.add_apply, Ennreal.toReal_add hμs hνs, add_smul]
+ rw [Pi.add_apply, ENNReal.toReal_add hμs hνs, add_smul]
#align measure_theory.weighted_smul_add_measure MeasureTheory.weightedSmul_add_measure
theorem weightedSmul_smul_measure {m : MeasurableSpace α} (μ : Measure α) (c : ℝ≥0∞) {s : Set α} :
@@ -230,7 +230,7 @@ theorem weightedSmul_union' (s t : Set α) (ht : MeasurableSet t) (hs_finite :
ext1 x
simp_rw [add_apply, weighted_smul_apply,
measure_union (set.disjoint_iff_inter_eq_empty.mpr h_inter) ht,
- Ennreal.toReal_add hs_finite ht_finite, add_smul]
+ ENNReal.toReal_add hs_finite ht_finite, add_smul]
#align measure_theory.weighted_smul_union' MeasureTheory.weightedSmul_union'
@[nolint unused_arguments]
@@ -252,7 +252,7 @@ theorem norm_weightedSmul_le (s : Set α) : ‖(weightedSmul μ s : F →L[ℝ]
_ ≤ ‖(μ s).toReal‖ :=
(mul_le_mul_of_nonneg_left norm_id_le (norm_nonneg _)).trans (mul_one _).le
_ = abs (μ s).toReal := Real.norm_eq_abs _
- _ = (μ s).toReal := abs_eq_self.mpr Ennreal.toReal_nonneg
+ _ = (μ s).toReal := abs_eq_self.mpr ENNReal.toReal_nonneg
#align measure_theory.norm_weighted_smul_le MeasureTheory.norm_weightedSmul_le
@@ -395,7 +395,7 @@ theorem integral_piecewise_zero {m : MeasurableSpace α} (f : α →ₛ F) (μ :
/-- Calculate the integral of `g ∘ f : α →ₛ F`, where `f` is an integrable function from `α` to `E`
and `g` is a function from `E` to `F`. We require `g 0 = 0` so that `g ∘ f` is integrable. -/
theorem map_integral (f : α →ₛ E) (g : E → F) (hf : Integrable f μ) (hg : g 0 = 0) :
- (f.map g).integral μ = ∑ x in f.range, Ennreal.toReal (μ (f ⁻¹' {x})) • g x :=
+ (f.map g).integral μ = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • g x :=
map_setToSimpleFunc _ weightedSmul_union hf hg
#align measure_theory.simple_func.map_integral MeasureTheory.SimpleFunc.map_integral
@@ -404,11 +404,11 @@ theorem map_integral (f : α →ₛ E) (g : E → F) (hf : Integrable f μ) (hg
See `integral_eq_lintegral` for a simpler version. -/
theorem integral_eq_lintegral' {f : α →ₛ E} {g : E → ℝ≥0∞} (hf : Integrable f μ) (hg0 : g 0 = 0)
(ht : ∀ b, g b ≠ ∞) :
- (f.map (Ennreal.toReal ∘ g)).integral μ = Ennreal.toReal (∫⁻ a, g (f a) ∂μ) :=
+ (f.map (ENNReal.toReal ∘ g)).integral μ = ENNReal.toReal (∫⁻ a, g (f a) ∂μ) :=
by
have hf' : f.fin_meas_supp μ := integrable_iff_fin_meas_supp.1 hf
simp only [← map_apply g f, lintegral_eq_lintegral]
- rw [map_integral f _ hf, map_lintegral, Ennreal.toReal_sum]
+ rw [map_integral f _ hf, map_lintegral, ENNReal.toReal_sum]
· refine' Finset.sum_congr rfl fun b hb => _
rw [smul_eq_mul, to_real_mul, mul_comm]
· intro a ha
@@ -429,12 +429,12 @@ theorem integral_congr {f g : α →ₛ E} (hf : Integrable f μ) (h : f =ᵐ[μ
/-- `simple_func.bintegral` and `simple_func.integral` agree when the integrand has type
`α →ₛ ℝ≥0∞`. But since `ℝ≥0∞` is not a `normed_space`, we need some form of coercion. -/
theorem integral_eq_lintegral {f : α →ₛ ℝ} (hf : Integrable f μ) (h_pos : 0 ≤ᵐ[μ] f) :
- f.integral μ = Ennreal.toReal (∫⁻ a, Ennreal.ofReal (f a) ∂μ) :=
+ f.integral μ = ENNReal.toReal (∫⁻ a, ENNReal.ofReal (f a) ∂μ) :=
by
- have : f =ᵐ[μ] f.map (Ennreal.toReal ∘ Ennreal.ofReal) :=
- h_pos.mono fun a h => (Ennreal.toReal_ofReal h).symm
+ have : f =ᵐ[μ] f.map (ENNReal.toReal ∘ ENNReal.ofReal) :=
+ h_pos.mono fun a h => (ENNReal.toReal_ofReal h).symm
rw [← integral_eq_lintegral' hf]
- exacts[integral_congr hf this, Ennreal.ofReal_zero, fun b => Ennreal.ofReal_ne_top]
+ exacts[integral_congr hf this, ENNReal.ofReal_zero, fun b => ENNReal.ofReal_ne_top]
#align measure_theory.simple_func.integral_eq_lintegral MeasureTheory.SimpleFunc.integral_eq_lintegral
theorem integral_add {f g : α →ₛ E} (hf : Integrable f μ) (hg : Integrable g μ) :
@@ -460,7 +460,7 @@ theorem norm_setToSimpleFunc_le_integral_norm (T : Set α → E →L[ℝ] F) {C
(hT_norm : ∀ s, MeasurableSet s → μ s < ∞ → ‖T s‖ ≤ C * (μ s).toReal) {f : α →ₛ E}
(hf : Integrable f μ) : ‖f.setToSimpleFunc T‖ ≤ C * (f.map norm).integral μ :=
calc
- ‖f.setToSimpleFunc T‖ ≤ C * ∑ x in f.range, Ennreal.toReal (μ (f ⁻¹' {x})) * ‖x‖ :=
+ ‖f.setToSimpleFunc T‖ ≤ C * ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) * ‖x‖ :=
norm_setToSimpleFunc_le_sum_mul_norm_of_integrable T hT_norm f hf
_ = C * (f.map norm).integral μ :=
by
@@ -483,7 +483,7 @@ theorem integral_add_measure {ν} (f : α →ₛ E) (hf : Integrable f (μ + ν)
refine'
set_to_simple_func_add_left' (weighted_smul μ) (weighted_smul ν) (weighted_smul (μ + ν))
(fun s hs hμνs => _) hf
- rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, Ennreal.add_ne_top] at hμνs
+ rw [lt_top_iff_ne_top, measure.coe_add, Pi.add_apply, ENNReal.add_ne_top] at hμνs
rw [weighted_smul_add_measure _ _ hμνs.1 hμνs.2]
#align measure_theory.simple_func.integral_add_measure MeasureTheory.SimpleFunc.integral_add_measure
@@ -559,7 +559,7 @@ theorem integral_eq_integral (f : α →₁ₛ[μ] E) : integral f = (toSimpleFu
#align measure_theory.L1.simple_func.integral_eq_integral MeasureTheory.L1.SimpleFunc.integral_eq_integral
theorem integral_eq_lintegral {f : α →₁ₛ[μ] ℝ} (h_pos : 0 ≤ᵐ[μ] toSimpleFunc f) :
- integral f = Ennreal.toReal (∫⁻ a, Ennreal.ofReal ((toSimpleFunc f) a) ∂μ) := by
+ integral f = ENNReal.toReal (∫⁻ a, ENNReal.ofReal ((toSimpleFunc f) a) ∂μ) := by
rw [integral, simple_func.integral_eq_lintegral (simple_func.integrable f) h_pos]
#align measure_theory.L1.simple_func.integral_eq_lintegral MeasureTheory.L1.SimpleFunc.integral_eq_lintegral
@@ -1006,7 +1006,7 @@ theorem continuous_integral : Continuous fun f : α →₁[μ] E => ∫ a, f a
#align measure_theory.continuous_integral MeasureTheory.continuous_integral
theorem norm_integral_le_lintegral_norm (f : α → E) :
- ‖∫ a, f a ∂μ‖ ≤ Ennreal.toReal (∫⁻ a, Ennreal.ofReal ‖f a‖ ∂μ) :=
+ ‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
by
by_cases hf : integrable f μ
· rw [integral_eq f hf, ← integrable.norm_to_L1_eq_lintegral_norm f hf]
@@ -1019,7 +1019,7 @@ theorem ennnorm_integral_le_lintegral_ennnorm (f : α → E) :
(‖∫ a, f a ∂μ‖₊ : ℝ≥0∞) ≤ ∫⁻ a, ‖f a‖₊ ∂μ :=
by
simp_rw [← ofReal_norm_eq_coe_nnnorm]
- apply Ennreal.ofReal_le_of_le_toReal
+ apply ENNReal.ofReal_le_of_le_toReal
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
@@ -1034,8 +1034,8 @@ theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) :=
by
rw [tendsto_zero_iff_norm_tendsto_zero]
- simp_rw [← coe_nnnorm, ← NNReal.coe_zero, NNReal.tendsto_coe, ← Ennreal.tendsto_coe,
- Ennreal.coe_zero]
+ simp_rw [← coe_nnnorm, ← NNReal.coe_zero, NNReal.tendsto_coe, ← ENNReal.tendsto_coe,
+ ENNReal.coe_zero]
exact
tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds
(tendsto_set_lintegral_zero (ne_of_lt hf) hs) (fun i => zero_le _) fun i =>
@@ -1176,30 +1176,30 @@ theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
integral of the positive part of `f` and the integral of the negative part of `f`. -/
theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
(∫ a, f a ∂μ) =
- Ennreal.toReal (∫⁻ a, Ennreal.ofReal <| f a ∂μ) -
- Ennreal.toReal (∫⁻ a, Ennreal.ofReal <| -f a ∂μ) :=
+ ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) -
+ ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) :=
by
let f₁ := hf.toL1 f
-- Go to the `L¹` space
- have eq₁ : Ennreal.toReal (∫⁻ a, Ennreal.ofReal <| f a ∂μ) = ‖lp.posPart f₁‖ :=
+ have eq₁ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) = ‖lp.posPart f₁‖ :=
by
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
filter_upwards [Lp.coe_fn_pos_part f₁, hf.coe_fn_to_L1]with _ h₁ h₂
- rw [h₁, h₂, Ennreal.ofReal]
+ rw [h₁, h₂, ENNReal.ofReal]
congr 1
apply NNReal.eq
rw [Real.nnnorm_of_nonneg (le_max_right _ _)]
simp only [Real.coe_toNNReal', Subtype.coe_mk]
-- Go to the `L¹` space
- have eq₂ : Ennreal.toReal (∫⁻ a, Ennreal.ofReal <| -f a ∂μ) = ‖lp.negPart f₁‖ :=
+ have eq₂ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) = ‖lp.negPart f₁‖ :=
by
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
filter_upwards [Lp.coe_fn_neg_part f₁, hf.coe_fn_to_L1]with _ h₁ h₂
- rw [h₁, h₂, Ennreal.ofReal]
+ rw [h₁, h₂, ENNReal.ofReal]
congr 1
apply NNReal.eq
simp only [Real.coe_toNNReal', coe_nnnorm, nnnorm_neg]
@@ -1210,11 +1210,11 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
(hfm : AeStronglyMeasurable f μ) :
- (∫ a, f a ∂μ) = Ennreal.toReal (∫⁻ a, Ennreal.ofReal <| f a ∂μ) :=
+ (∫ a, f a ∂μ) = ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) :=
by
by_cases hfi : integrable f μ
· rw [integral_eq_lintegral_pos_part_sub_lintegral_neg_part hfi]
- have h_min : (∫⁻ a, Ennreal.ofReal (-f a) ∂μ) = 0 :=
+ have h_min : (∫⁻ a, ENNReal.ofReal (-f a) ∂μ) = 0 :=
by
rw [lintegral_eq_zero_iff']
· refine' hf.mono _
@@ -1226,7 +1226,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
· rw [integral_undef hfi]
simp_rw [integrable, hfm, has_finite_integral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
Classical.not_not] at hfi
- have : (∫⁻ a : α, Ennreal.ofReal (f a) ∂μ) = ∫⁻ a, Ennreal.ofReal ‖f a‖ ∂μ :=
+ have : (∫⁻ a : α, ENNReal.ofReal (f a) ∂μ) = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ :=
by
refine' lintegral_congr_ae (hf.mono fun a h => _)
rw [Real.norm_eq_abs, abs_of_nonneg h]
@@ -1235,7 +1235,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
- (hf : AeStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = Ennreal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
+ (hf : AeStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) :=
by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
@@ -1244,9 +1244,9 @@ theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α →
#align measure_theory.integral_norm_eq_lintegral_nnnorm MeasureTheory.integral_norm_eq_lintegral_nnnorm
theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
- (hf : Integrable f μ) : Ennreal.ofReal (∫ x, ‖f x‖ ∂μ) = ∫⁻ x, ‖f x‖₊ ∂μ := by
+ (hf : Integrable f μ) : ENNReal.ofReal (∫ x, ‖f x‖ ∂μ) = ∫⁻ x, ‖f x‖₊ ∂μ := by
rw [integral_norm_eq_lintegral_nnnorm hf.ae_strongly_measurable,
- Ennreal.ofReal_toReal (lt_top_iff_ne_top.mp hf.2)]
+ ENNReal.ofReal_toReal (lt_top_iff_ne_top.mp hf.2)]
#align measure_theory.of_real_integral_norm_eq_lintegral_nnnorm MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm
theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
@@ -1266,17 +1266,17 @@ theorem integral_nonneg_of_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) : 0 ≤ ∫
#align measure_theory.integral_nonneg_of_ae MeasureTheory.integral_nonneg_of_ae
theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x => (f x : ℝ)) μ) :
- (∫⁻ a, f a ∂μ) = Ennreal.ofReal (∫ a, f a ∂μ) :=
+ (∫⁻ a, f a ∂μ) = ENNReal.ofReal (∫ a, f a ∂μ) :=
by
simp_rw [integral_eq_lintegral_of_nonneg_ae (eventually_of_forall fun x => (f x).coe_nonneg)
hfi.ae_strongly_measurable,
- ← Ennreal.coe_nNReal_eq]
- rw [Ennreal.ofReal_toReal]
+ ← ENNReal.coe_nnreal_eq]
+ rw [ENNReal.ofReal_toReal]
rw [← lt_top_iff_ne_top]; convert hfi.has_finite_integral; ext1 x; rw [NNReal.nnnorm_eq]
#align measure_theory.lintegral_coe_eq_integral MeasureTheory.lintegral_coe_eq_integral
theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f μ) (f_nn : 0 ≤ᵐ[μ] f) :
- Ennreal.ofReal (∫ x, f x ∂μ) = ∫⁻ x, Ennreal.ofReal (f x) ∂μ :=
+ ENNReal.ofReal (∫ x, f x ∂μ) = ∫⁻ x, ENNReal.ofReal (f x) ∂μ :=
by
simp_rw [integral_congr_ae
(show f =ᵐ[μ] fun x => ‖f x‖ by
@@ -1285,7 +1285,7 @@ theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f
of_real_integral_norm_eq_lintegral_nnnorm hfi, ← ofReal_norm_eq_coe_nnnorm]
apply lintegral_congr_ae
filter_upwards [f_nn]with x hx
- exact congr_arg Ennreal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
+ exact congr_arg ENNReal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AeMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
@@ -1297,12 +1297,12 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AeMeasurable f μ) (hf :
intro x hx
rw [lt_top_iff_ne_top] at hx
simp [hx]
- · exact eventually_of_forall fun x => Ennreal.toReal_nonneg
+ · exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
theorem lintegral_coe_le_coe_iff_integral_le {f : α → ℝ≥0} (hfi : Integrable (fun x => (f x : ℝ)) μ)
{b : ℝ≥0} : (∫⁻ a, f a ∂μ) ≤ b ↔ (∫ a, (f a : ℝ) ∂μ) ≤ b := by
- rw [lintegral_coe_eq_integral f hfi, Ennreal.ofReal, Ennreal.coe_le_coe,
+ rw [lintegral_coe_eq_integral f hfi, ENNReal.ofReal, ENNReal.coe_le_coe,
Real.toNNReal_le_iff_le_coe]
#align measure_theory.lintegral_coe_le_coe_iff_integral_le MeasureTheory.lintegral_coe_le_coe_iff_integral_le
@@ -1332,11 +1332,11 @@ theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : (∫ a, f a ∂μ) ≤
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
(∫ x, f x ∂μ) = 0 ↔ f =ᵐ[μ] 0 := by
- simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, Ennreal.toReal_eq_zero_iff,
+ simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
lintegral_eq_zero_iff' (ennreal.measurable_of_real.comp_ae_measurable hfi.1.AeMeasurable), ←
- Ennreal.not_lt_top, ← has_finite_integral_iff_of_real hf, hfi.2, not_true, or_false_iff, ←
+ ENNReal.not_lt_top, ← has_finite_integral_iff_of_real hf, hfi.2, not_true, or_false_iff, ←
hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLe, (· ∘ ·), Pi.zero_apply,
- Ennreal.ofReal_eq_zero]
+ ENNReal.ofReal_eq_zero]
#align measure_theory.integral_eq_zero_iff_of_nonneg_ae MeasureTheory.integral_eq_zero_iff_of_nonneg_ae
theorem integral_eq_zero_iff_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
@@ -1362,8 +1362,8 @@ variable {H : Type _} [NormedAddCommGroup H]
theorem L1.norm_eq_integral_norm (f : α →₁[μ] H) : ‖f‖ = ∫ a, ‖f a‖ ∂μ :=
by
- simp only [snorm, snorm', Ennreal.one_toReal, Ennreal.rpow_one, Lp.norm_def, if_false,
- Ennreal.one_ne_top, one_ne_zero, _root_.div_one]
+ simp only [snorm, snorm', ENNReal.one_toReal, ENNReal.rpow_one, Lp.norm_def, if_false,
+ ENNReal.one_ne_top, one_ne_zero, _root_.div_one]
rw [integral_eq_lintegral_of_nonneg_ae (eventually_of_forall (by simp [norm_nonneg]))
(Lp.ae_strongly_measurable f).norm]
simp [ofReal_norm_eq_coe_nnnorm]
@@ -1379,9 +1379,9 @@ theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
#align measure_theory.L1.norm_of_fun_eq_integral_norm MeasureTheory.L1.norm_of_fun_eq_integral_norm
theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1 : p ≠ 0) (hp2 : p ≠ ∞)
- (hf : Memℒp f p μ) : snorm f p μ = Ennreal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) :=
+ (hf : Memℒp f p μ) : snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) :=
by
- have A : (∫⁻ a : α, Ennreal.ofReal (‖f a‖ ^ p.to_real) ∂μ) = ∫⁻ a : α, ‖f a‖₊ ^ p.to_real ∂μ :=
+ have A : (∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.to_real) ∂μ) = ∫⁻ a : α, ‖f a‖₊ ^ p.to_real ∂μ :=
by
apply lintegral_congr fun x => _
rw [← of_real_rpow_of_nonneg (norm_nonneg _) to_real_nonneg, ofReal_norm_eq_coe_nnnorm]
@@ -1428,7 +1428,7 @@ theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0
have hfi' : integrable f μ := hfi.mono_measure hle
have hf' : 0 ≤ᵐ[μ] f := hle.absolutely_continuous hf
rw [integral_eq_lintegral_of_nonneg_ae hf' hfi'.1, integral_eq_lintegral_of_nonneg_ae hf hfi.1,
- Ennreal.toReal_le_toReal]
+ ENNReal.toReal_le_toReal]
exacts[lintegral_mono' hle le_rfl, ((has_finite_integral_iff_of_real hf').1 hfi'.2).Ne,
((has_finite_integral_iff_of_real hf).1 hfi.2).Ne]
#align measure_theory.integral_mono_measure MeasureTheory.integral_mono_measure
@@ -1438,7 +1438,7 @@ theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖
by_cases
(fun h : AeStronglyMeasurable f μ =>
calc
- ‖∫ a, f a ∂μ‖ ≤ Ennreal.toReal (∫⁻ a, Ennreal.ofReal ‖f a‖ ∂μ) :=
+ ‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
norm_integral_le_lintegral_norm _
_ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm
)
@@ -1465,7 +1465,7 @@ theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ
#align measure_theory.simple_func.integral_eq_integral MeasureTheory.SimpleFunc.integral_eq_integral
theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in f.range, Ennreal.toReal (μ (f ⁻¹' {x})) • x :=
+ (∫ x, f x ∂μ) = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x :=
by
rw [← f.integral_eq_integral hfi, simple_func.integral, ← simple_func.integral_eq]
rfl
@@ -1581,14 +1581,14 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
have hf_lt : (∫⁻ x, ‖f x‖₊ ∂measure.sum μ) < ∞ := hf.2
have hmem : ∀ᶠ y in 𝓝 (∫⁻ x, ‖f x‖₊ ∂measure.sum μ), (∫⁻ x, ‖f x‖₊ ∂measure.sum μ) < y + ε :=
by
- refine' tendsto_id.add tendsto_const_nhds (lt_mem_nhds <| Ennreal.lt_add_right _ _)
- exacts[hf_lt.ne, Ennreal.coe_ne_zero.2 (NNReal.coe_ne_zero.1 ε0.ne')]
+ refine' tendsto_id.add tendsto_const_nhds (lt_mem_nhds <| ENNReal.lt_add_right _ _)
+ exacts[hf_lt.ne, ENNReal.coe_ne_zero.2 (NNReal.coe_ne_zero.1 ε0.ne')]
refine' ((has_sum_lintegral_measure (fun x => ‖f x‖₊) μ).Eventually hmem).mono fun s hs => _
obtain ⟨ν, hν⟩ : ∃ ν, (∑ i in s, μ i) + ν = measure.sum μ :=
by
refine' ⟨measure.sum fun i : ↥(sᶜ : Set ι) => μ i, _⟩
simpa only [← measure.sum_coe_finset] using measure.sum_add_sum_compl (s : Set ι) μ
- rw [Metric.mem_ball, ← coe_nndist, NNReal.coe_lt_coe, ← Ennreal.coe_lt_coe, ← hν]
+ rw [Metric.mem_ball, ← coe_nndist, NNReal.coe_lt_coe, ← ENNReal.coe_lt_coe, ← hν]
rw [← hν, integrable_add_measure] at hf
refine' (nndist_integral_add_measure_le_lintegral hf.1 hf.2).trans_lt _
rw [← hν, lintegral_add_measure, lintegral_finset_sum_measure] at hs
@@ -1605,7 +1605,7 @@ theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) : (∫ x, f x ∂c
by
-- First we consider the “degenerate” case `c = ∞`
rcases eq_or_ne c ∞ with (rfl | hc)
- · rw [Ennreal.top_toReal, zero_smul, integral_eq_set_to_fun, set_to_fun_top_smul_measure]
+ · rw [ENNReal.top_toReal, zero_smul, integral_eq_set_to_fun, set_to_fun_top_smul_measure]
-- Main case: `c ≠ ∞`
simp_rw [integral_eq_set_to_fun, ← set_to_fun_smul_left]
have hdfma :
@@ -1716,25 +1716,25 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
cases' lt_or_le ε 0 with hε hε
·
exact
- (mul_nonpos_of_nonpos_of_nonneg hε.le Ennreal.toReal_nonneg).trans (integral_nonneg hf_nonneg)
+ (mul_nonpos_of_nonpos_of_nonneg hε.le ENNReal.toReal_nonneg).trans (integral_nonneg hf_nonneg)
rw [integral_eq_lintegral_of_nonneg_ae (eventually_of_forall fun x => hf_nonneg x)
hf_int.ae_strongly_measurable,
- ← Ennreal.toReal_ofReal hε, ← Ennreal.toReal_mul]
+ ← ENNReal.toReal_ofReal hε, ← ENNReal.toReal_mul]
have :
- { x : α | (Ennreal.ofReal ε).toReal ≤ f x } =
- { x : α | Ennreal.ofReal ε ≤ (fun x => Ennreal.ofReal (f x)) x } :=
+ { x : α | (ENNReal.ofReal ε).toReal ≤ f x } =
+ { x : α | ENNReal.ofReal ε ≤ (fun x => ENNReal.ofReal (f x)) x } :=
by
ext1 x
- rw [Set.mem_setOf_eq, Set.mem_setOf_eq, ← Ennreal.toReal_ofReal (hf_nonneg x)]
- exact Ennreal.toReal_le_toReal Ennreal.ofReal_ne_top Ennreal.ofReal_ne_top
+ rw [Set.mem_setOf_eq, Set.mem_setOf_eq, ← ENNReal.toReal_ofReal (hf_nonneg x)]
+ exact ENNReal.toReal_le_toReal ENNReal.ofReal_ne_top ENNReal.ofReal_ne_top
rw [this]
- have h_meas : AeMeasurable (fun x => Ennreal.ofReal (f x)) μ :=
+ have h_meas : AeMeasurable (fun x => ENNReal.ofReal (f x)) μ :=
measurable_id'.ennreal_of_real.comp_ae_measurable hf_int.ae_measurable
- have h_mul_meas_le := @mul_meas_ge_le_lintegral₀ _ _ μ _ h_meas (Ennreal.ofReal ε)
- rw [Ennreal.toReal_le_toReal _ _]
+ have h_mul_meas_le := @mul_meas_ge_le_lintegral₀ _ _ μ _ h_meas (ENNReal.ofReal ε)
+ rw [ENNReal.toReal_le_toReal _ _]
· exact h_mul_meas_le
- · simp only [Ne.def, WithTop.mul_eq_top_iff, Ennreal.ofReal_eq_zero, not_le,
- Ennreal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
+ · simp only [Ne.def, WithTop.mul_eq_top_iff, ENNReal.ofReal_eq_zero, not_le,
+ ENNReal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
exact fun _ => measure_ne_top _ _
· have h_lt_top : (∫⁻ a, ‖f a‖₊ ∂μ) < ∞ := hf_int.has_finite_integral
simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
@@ -1747,8 +1747,8 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
norms of functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are
conjugate exponents. -/
theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α → E} {p q : ℝ}
- (hpq : p.IsConjugateExponent q) (hf : Memℒp f (Ennreal.ofReal p) μ)
- (hg : Memℒp g (Ennreal.ofReal q) μ) :
+ (hpq : p.IsConjugateExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
+ (hg : Memℒp g (ENNReal.ofReal q) μ) :
(∫ a, ‖f a‖ * ‖g a‖ ∂μ) ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) :=
by
-- translate the Bochner integrals into Lebesgue integrals.
@@ -1761,48 +1761,48 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
· exact (hf.1.norm.AeMeasurable.pow aeMeasurableConst).AeStronglyMeasurable
· exact eventually_of_forall fun x => mul_nonneg (norm_nonneg _) (norm_nonneg _)
· exact hf.1.norm.mul hg.1.norm
- rw [Ennreal.toReal_rpow, Ennreal.toReal_rpow, ← Ennreal.toReal_mul]
+ rw [ENNReal.toReal_rpow, ENNReal.toReal_rpow, ← ENNReal.toReal_mul]
-- replace norms by nnnorm
have h_left :
- (∫⁻ a, Ennreal.ofReal (‖f a‖ * ‖g a‖) ∂μ) =
+ (∫⁻ a, ENNReal.ofReal (‖f a‖ * ‖g a‖) ∂μ) =
∫⁻ a, ((fun x => (‖f x‖₊ : ℝ≥0∞)) * fun x => ‖g x‖₊) a ∂μ :=
- by simp_rw [Pi.mul_apply, ← ofReal_norm_eq_coe_nnnorm, Ennreal.ofReal_mul (norm_nonneg _)]
- have h_right_f : (∫⁻ a, Ennreal.ofReal (‖f a‖ ^ p) ∂μ) = ∫⁻ a, ‖f a‖₊ ^ p ∂μ :=
+ by simp_rw [Pi.mul_apply, ← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_mul (norm_nonneg _)]
+ have h_right_f : (∫⁻ a, ENNReal.ofReal (‖f a‖ ^ p) ∂μ) = ∫⁻ a, ‖f a‖₊ ^ p ∂μ :=
by
refine' lintegral_congr fun x => _
- rw [← ofReal_norm_eq_coe_nnnorm, Ennreal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.nonneg]
- have h_right_g : (∫⁻ a, Ennreal.ofReal (‖g a‖ ^ q) ∂μ) = ∫⁻ a, ‖g a‖₊ ^ q ∂μ :=
+ rw [← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.nonneg]
+ have h_right_g : (∫⁻ a, ENNReal.ofReal (‖g a‖ ^ q) ∂μ) = ∫⁻ a, ‖g a‖₊ ^ q ∂μ :=
by
refine' lintegral_congr fun x => _
- rw [← ofReal_norm_eq_coe_nnnorm, Ennreal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.symm.nonneg]
+ rw [← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.symm.nonneg]
rw [h_left, h_right_f, h_right_g]
-- we can now apply `ennreal.lintegral_mul_le_Lp_mul_Lq` (up to the `to_real` application)
- refine' Ennreal.toReal_mono _ _
- · refine' Ennreal.mul_ne_top _ _
+ refine' ENNReal.toReal_mono _ _
+ · refine' ENNReal.mul_ne_top _ _
· convert hf.snorm_ne_top
rw [snorm_eq_lintegral_rpow_nnnorm]
- · rw [Ennreal.toReal_ofReal hpq.nonneg]
- · rw [Ne.def, Ennreal.ofReal_eq_zero, not_le]
+ · rw [ENNReal.toReal_ofReal hpq.nonneg]
+ · rw [Ne.def, ENNReal.ofReal_eq_zero, not_le]
exact hpq.pos
- · exact Ennreal.coe_ne_top
+ · exact ENNReal.coe_ne_top
· convert hg.snorm_ne_top
rw [snorm_eq_lintegral_rpow_nnnorm]
- · rw [Ennreal.toReal_ofReal hpq.symm.nonneg]
- · rw [Ne.def, Ennreal.ofReal_eq_zero, not_le]
+ · rw [ENNReal.toReal_ofReal hpq.symm.nonneg]
+ · rw [Ne.def, ENNReal.ofReal_eq_zero, not_le]
exact hpq.symm.pos
- · exact Ennreal.coe_ne_top
+ · exact ENNReal.coe_ne_top
·
exact
- Ennreal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AeMeasurable.coe_nNReal_ennreal
- hg.1.nnnorm.AeMeasurable.coe_nNReal_ennreal
+ ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.AeMeasurable.coe_nNReal_eNNReal
+ hg.1.nnnorm.AeMeasurable.coe_nNReal_eNNReal
#align measure_theory.integral_mul_norm_le_Lp_mul_Lq MeasureTheory.integral_mul_norm_le_Lp_mul_Lq
/-- Hölder's inequality for functions `α → ℝ`. The integral of the product of two nonnegative
functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are conjugate
exponents. -/
theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExponent q) {f g : α → ℝ}
- (hf_nonneg : 0 ≤ᵐ[μ] f) (hg_nonneg : 0 ≤ᵐ[μ] g) (hf : Memℒp f (Ennreal.ofReal p) μ)
- (hg : Memℒp g (Ennreal.ofReal q) μ) :
+ (hf_nonneg : 0 ≤ᵐ[μ] f) (hg_nonneg : 0 ≤ᵐ[μ] g) (hf : Memℒp f (ENNReal.ofReal p) μ)
+ (hg : Memℒp g (ENNReal.ofReal q) μ) :
(∫ a, f a * g a ∂μ) ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) :=
by
have h_left : (∫ a, f a * g a ∂μ) = ∫ a, ‖f a‖ * ‖g a‖ ∂μ :=
@@ -1853,7 +1853,7 @@ theorem SimpleFunc.coe_toLargerSpace_eq (hm : m ≤ m0) (f : @SimpleFunc β m γ
theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F)
(hf_int : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in @SimpleFunc.range β F m f, Ennreal.toReal (μ (f ⁻¹' {x})) • x :=
+ (∫ x, f x ∂μ) = ∑ x in @SimpleFunc.range β F m f, ENNReal.toReal (μ (f ⁻¹' {x})) • x :=
by
simp_rw [← f.coe_to_larger_space_eq hm]
have hf_int : integrable (f.to_larger_space hm) μ := by rwa [simple_func.coe_to_larger_space_eq]
@@ -1955,7 +1955,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
by_cases hr : r = 0
· suffices f =ᵐ[μ] 0
by
- rw [snorm_congr_ae this, snorm_zero, hr, Ennreal.coe_zero, mul_zero]
+ rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, mul_zero]
exact le_rfl
rw [hr, Nonneg.coe_zero] at hf
have hnegf : (∫ x, -f x ∂μ) = 0 :=
@@ -1972,7 +1972,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
· have : μ Set.univ = ∞ := by
by_contra hμ'
exact hμ (is_finite_measure.mk <| lt_top_iff_ne_top.2 hμ')
- rw [this, Ennreal.mul_top, if_neg, Ennreal.top_mul, if_neg]
+ rw [this, ENNReal.mul_top', if_neg, ENNReal.top_mul', if_neg]
· exact le_top
· simp [hr]
· norm_num
@@ -1983,23 +1983,23 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
rw [← integral_const]
refine' integral_mono_ae hfint.real_to_nnreal (integrable_const r) _
filter_upwards [hf]with ω hω using Real.toNNReal_le_iff_le_coe.2 hω
- rw [mem_ℒp.snorm_eq_integral_rpow_norm one_ne_zero Ennreal.one_ne_top
+ rw [mem_ℒp.snorm_eq_integral_rpow_norm one_ne_zero ENNReal.one_ne_top
(mem_ℒp_one_iff_integrable.2 hfint),
- Ennreal.ofReal_le_iff_le_toReal
- (Ennreal.mul_ne_top (Ennreal.mul_ne_top Ennreal.two_ne_top <| @measure_ne_top _ _ _ hμ _)
- Ennreal.coe_ne_top)]
- simp_rw [Ennreal.one_toReal, _root_.inv_one, Real.rpow_one, Real.norm_eq_abs, ←
+ ENNReal.ofReal_le_iff_le_toReal
+ (ENNReal.mul_ne_top (ENNReal.mul_ne_top ENNReal.two_ne_top <| @measure_ne_top _ _ _ hμ _)
+ ENNReal.coe_ne_top)]
+ simp_rw [ENNReal.one_toReal, _root_.inv_one, Real.rpow_one, Real.norm_eq_abs, ←
max_zero_add_max_neg_zero_eq_abs_self, ← Real.coe_toNNReal']
rw [integral_add hfint.real_to_nnreal]
- · simp only [Real.coe_toNNReal', Ennreal.toReal_mul, Ennreal.toReal_bit0, Ennreal.one_toReal,
- Ennreal.coe_toReal] at hfint'⊢
+ · simp only [Real.coe_toNNReal', ENNReal.toReal_mul, [anonymous], ENNReal.one_toReal,
+ ENNReal.coe_toReal] at hfint'⊢
refine' (add_le_add_left hfint' _).trans _
rwa [← two_mul, mul_assoc, mul_le_mul_left (two_pos : (0 : ℝ) < 2)]
· exact hfint.neg.sup (integrable_zero _ _ μ)
#align measure_theory.snorm_one_le_of_le MeasureTheory.snorm_one_le_of_le
theorem snorm_one_le_of_le' {r : ℝ} {f : α → ℝ} (hfint : Integrable f μ) (hfint' : 0 ≤ ∫ x, f x ∂μ)
- (hf : ∀ᵐ ω ∂μ, f ω ≤ r) : snorm f 1 μ ≤ 2 * μ Set.univ * Ennreal.ofReal r :=
+ (hf : ∀ᵐ ω ∂μ, f ω ≤ r) : snorm f 1 μ ≤ 2 * μ Set.univ * ENNReal.ofReal r :=
by
refine' snorm_one_le_of_le hfint hfint' _
simp only [Real.coe_toNNReal', le_max_iff]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -1907,7 +1907,7 @@ theorem integral_countable [MeasurableSingletonClass α] (f : α → E) {s : Set
have hi : Countable { x // x ∈ s } := Iff.mpr countable_coe_iff hs
have hf' : Integrable (fun (x : s) => f x) (Measure.comap Subtype.val μ) := by
rw [← map_comap_subtype_coe, integrable_map_measure] at hf
- apply hf
+ · apply hf
· exact Integrable.aestronglyMeasurable hf
· exact Measurable.aemeasurable measurable_subtype_coe
· exact Countable.measurableSet hs
set_integral
with setIntegral
(#12215)
Done with a global search and replace, and then (to fix the #align
lines), replace (#align \S*)setIntegral
with $1set_integral
.
@@ -983,7 +983,7 @@ theorem integral_eq_zero_of_ae {f : α → G} (hf : f =ᵐ[μ] 0) : ∫ a, f a
/-- If `f` has finite integral, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
-theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → G}
+theorem HasFiniteIntegral.tendsto_setIntegral_nhds_zero {ι} {f : α → G}
(hf : HasFiniteIntegral f μ) {l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) := by
rw [tendsto_zero_iff_norm_tendsto_zero]
@@ -992,15 +992,23 @@ theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → G}
exact tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds
(tendsto_set_lintegral_zero (ne_of_lt hf) hs) (fun i => zero_le _)
fun i => ennnorm_integral_le_lintegral_ennnorm _
-#align measure_theory.has_finite_integral.tendsto_set_integral_nhds_zero MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero
+#align measure_theory.has_finite_integral.tendsto_set_integral_nhds_zero MeasureTheory.HasFiniteIntegral.tendsto_setIntegral_nhds_zero
+
+@[deprecated]
+alias HasFiniteIntegral.tendsto_set_integral_nhds_zero :=
+ HasFiniteIntegral.tendsto_setIntegral_nhds_zero -- deprecated on 2024-04-17
/-- If `f` is integrable, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
-theorem Integrable.tendsto_set_integral_nhds_zero {ι} {f : α → G} (hf : Integrable f μ)
+theorem Integrable.tendsto_setIntegral_nhds_zero {ι} {f : α → G} (hf : Integrable f μ)
{l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) :=
- hf.2.tendsto_set_integral_nhds_zero hs
-#align measure_theory.integrable.tendsto_set_integral_nhds_zero MeasureTheory.Integrable.tendsto_set_integral_nhds_zero
+ hf.2.tendsto_setIntegral_nhds_zero hs
+#align measure_theory.integrable.tendsto_set_integral_nhds_zero MeasureTheory.Integrable.tendsto_setIntegral_nhds_zero
+
+@[deprecated]
+alias Integrable.tendsto_set_integral_nhds_zero :=
+ Integrable.tendsto_setIntegral_nhds_zero -- deprecated on 2024-04-17
/-- If `F i → f` in `L1`, then `∫ x, F i x ∂μ → ∫ x, f x ∂μ`. -/
theorem tendsto_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G} {l : Filter ι}
@@ -1023,7 +1031,7 @@ lemma tendsto_integral_of_L1' {ι} (f : α → G) (hfi : Integrable f μ) {F :
exact hF
/-- If `F i → f` in `L1`, then `∫ x in s, F i x ∂μ → ∫ x in s, f x ∂μ`. -/
-lemma tendsto_set_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G}
+lemma tendsto_setIntegral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G}
{l : Filter ι}
(hFi : ∀ᶠ i in l, Integrable (F i) μ) (hF : Tendsto (fun i ↦ ∫⁻ x, ‖F i x - f x‖₊ ∂μ) l (𝓝 0))
(s : Set α) :
@@ -1034,16 +1042,24 @@ lemma tendsto_set_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F
exact tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds hF (fun _ ↦ zero_le')
(fun _ ↦ snorm_mono_measure _ Measure.restrict_le_self)
+@[deprecated]
+alias tendsto_set_integral_of_L1 :=
+ tendsto_setIntegral_of_L1 -- deprecated on 2024-04-17
+
/-- If `F i → f` in `L1`, then `∫ x in s, F i x ∂μ → ∫ x in s, f x ∂μ`. -/
-lemma tendsto_set_integral_of_L1' {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G}
+lemma tendsto_setIntegral_of_L1' {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G}
{l : Filter ι}
(hFi : ∀ᶠ i in l, Integrable (F i) μ) (hF : Tendsto (fun i ↦ snorm (F i - f) 1 μ) l (𝓝 0))
(s : Set α) :
Tendsto (fun i ↦ ∫ x in s, F i x ∂μ) l (𝓝 (∫ x in s, f x ∂μ)) := by
- refine tendsto_set_integral_of_L1 f hfi hFi ?_ s
+ refine tendsto_setIntegral_of_L1 f hfi hFi ?_ s
simp_rw [snorm_one_eq_lintegral_nnnorm, Pi.sub_apply] at hF
exact hF
+@[deprecated]
+alias tendsto_set_integral_of_L1' :=
+ tendsto_setIntegral_of_L1' -- deprecated on 2024-04-17
+
variable {X : Type*} [TopologicalSpace X] [FirstCountableTopology X]
theorem continuousWithinAt_of_dominated {F : X → α → G} {x₀ : X} {bound : α → ℝ} {s : Set X}
@@ -1754,23 +1770,31 @@ theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f :
_ = f a := by simp [Measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
-theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
+theorem setIntegral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
{s : Set α} (hs : MeasurableSet s) [Decidable (a ∈ s)] :
∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 := by
rw [restrict_dirac' hs]
split_ifs
· exact integral_dirac' _ _ hf
· exact integral_zero_measure _
-#align measure_theory.set_integral_dirac' MeasureTheory.set_integral_dirac'
+#align measure_theory.set_integral_dirac' MeasureTheory.setIntegral_dirac'
+
+@[deprecated]
+alias set_integral_dirac' :=
+ setIntegral_dirac' -- deprecated on 2024-04-17
-theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
+theorem setIntegral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
(s : Set α) [Decidable (a ∈ s)] :
∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 := by
rw [restrict_dirac]
split_ifs
· exact integral_dirac _ _
· exact integral_zero_measure _
-#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
+#align measure_theory.set_integral_dirac MeasureTheory.setIntegral_dirac
+
+@[deprecated]
+alias set_integral_dirac :=
+ setIntegral_dirac -- deprecated on 2024-04-17
/-- **Markov's inequality** also known as **Chebyshev's first inequality**. -/
theorem mul_meas_ge_le_integral_of_nonneg {f : α → ℝ} (hf_nonneg : 0 ≤ᵐ[μ] f)
haarScalarFactor \mu \mu = 1
Co-authored-by: Hyeokjun Kwon <86776403+Jun2M@users.noreply.github.com> Co-authored-by: Moritz Firsching <moritz.firsching@gmail.com> Co-authored-by: Dagur Tómas Ásgeirsson <dagurtomas@gmail.com> Co-authored-by: Frédéric Marbach <66742248+frederic-marbach@users.noreply.github.com> Co-authored-by: Peter Nelson <71660771+apnelson1@users.noreply.github.com> Co-authored-by: Kim Morrison <scott@tqft.net> Co-authored-by: Rémy Degenne <Remydegenne@gmail.com> Co-authored-by: Noam Atar <atarnoam@gmail.com> Co-authored-by: David Loeffler <d.loeffler.01@cantab.net> Co-authored-by: Andrew Yang <the.erd.one@gmail.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Christian Merten <christian@merten.dev> Co-authored-by: grunweg <rothgami@math.hu-berlin.de> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: damiano <adomani@gmail.com> Co-authored-by: Ruben Van de Velde <scott.morrison@gmail.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: María Inés de Frutos-Fernández <mariaines.dff@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Johan Commelin <johan@commelin.net> Co-authored-by: Mitchell Lee <trivial171@gmail.com> Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Thomas Browning <tb65536@uw.edu> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>
@@ -1911,6 +1911,12 @@ theorem integral_unique [Unique α] (f : α → E) : ∫ x, f x ∂μ = (μ univ
∫ x, f x ∂μ = ∫ _, f default ∂μ := by congr with x; congr; exact Unique.uniq _ x
_ = (μ univ).toReal • f default := by rw [integral_const]
+theorem integral_pos_of_integrable_nonneg_nonzero [TopologicalSpace α] [Measure.IsOpenPosMeasure μ]
+ {f : α → ℝ} {x : α} (f_cont : Continuous f) (f_int : Integrable f μ) (f_nonneg : 0 ≤ f)
+ (f_x : f x ≠ 0) : 0 < ∫ x, f x ∂μ :=
+ (integral_pos_iff_support_of_nonneg f_nonneg f_int).2
+ (IsOpen.measure_pos μ f_cont.isOpen_support ⟨x, f_x⟩)
+
end Properties
section IntegralTrim
These are changes from #11997, the latest adaptation PR for nightly-2024-04-07, which can be made directly on master.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>
@@ -247,7 +247,7 @@ theorem dominatedFinMeasAdditive_weightedSMul {_ : MeasurableSpace α} (μ : Mea
#align measure_theory.dominated_fin_meas_additive_weighted_smul MeasureTheory.dominatedFinMeasAdditive_weightedSMul
theorem weightedSMul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weightedSMul μ s x := by
- simp only [weightedSMul, Algebra.id.smul_eq_mul, coe_smul', id.def, coe_id', Pi.smul_apply]
+ simp only [weightedSMul, Algebra.id.smul_eq_mul, coe_smul', _root_.id, coe_id', Pi.smul_apply]
exact mul_nonneg toReal_nonneg hx
#align measure_theory.weighted_smul_nonneg MeasureTheory.weightedSMul_nonneg
@@ -730,8 +730,8 @@ theorem nnnorm_Integral_le_one : ‖integralCLM (α := α) (E := E) (μ := μ)
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
calc
‖integral f‖ = ‖integralCLM (E := E) f‖ := by simp only [integral]
- _ ≤ ‖integralCLM (α := α) (E := E) (μ := μ)‖ * ‖f‖ := (le_opNorm _ _)
- _ ≤ 1 * ‖f‖ := (mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _)
+ _ ≤ ‖integralCLM (α := α) (E := E) (μ := μ)‖ * ‖f‖ := le_opNorm _ _
+ _ ≤ 1 * ‖f‖ := mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _
_ = ‖f‖ := one_mul _
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
@@ -1692,7 +1692,7 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
_ = ∫ y, g y ∂Measure.map (hφ.mk φ) μ := by congr 1; exact Measure.map_congr hφ.ae_eq_mk
_ = ∫ x, g (hφ.mk φ x) ∂μ :=
(integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk)
- _ = ∫ x, g (φ x) ∂μ := (integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _))
+ _ = ∫ x, g (φ x) ∂μ := integral_congr_ae (hφ.ae_eq_mk.symm.fun_comp _)
_ = ∫ x, f (φ x) ∂μ := integral_congr_ae <| ae_eq_comp hφ hfm.ae_eq_mk.symm
#align measure_theory.integral_map MeasureTheory.integral_map
@@ -253,7 +253,6 @@ theorem weightedSMul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weight
end WeightedSMul
--- mathport name: «expr →ₛ »
local infixr:25 " →ₛ " => SimpleFunc
namespace SimpleFunc
@@ -565,7 +564,6 @@ def integralCLM : (α →₁ₛ[μ] E) →L[ℝ] E :=
variable {α E μ 𝕜}
--- mathport name: simple_func.integral_clm
local notation "Integral" => integralCLM α E μ
open ContinuousLinearMap
@@ -718,10 +716,8 @@ theorem integral_smul (c : 𝕜) (f : α →₁[μ] E) : integral (c • f) = c
exact map_smul (integralCLM' (E := E) 𝕜) c f
#align measure_theory.L1.integral_smul MeasureTheory.L1.integral_smul
--- mathport name: integral_clm
local notation "Integral" => @integralCLM α E _ _ μ _ _
--- mathport name: simple_func.integral_clm'
local notation "sIntegral" => @SimpleFunc.integralCLM α E _ _ μ _
theorem norm_Integral_le_one : ‖integralCLM (α := α) (E := E) (μ := μ)‖ ≤ 1 :=
@@ -331,7 +331,7 @@ theorem integral_eq_sum_of_subset [DecidablePred fun x : F => x ≠ 0] {f : α
(hs : (f.range.filter fun x => x ≠ 0) ⊆ s) :
f.integral μ = ∑ x in s, (μ (f ⁻¹' {x})).toReal • x := by
rw [SimpleFunc.integral_eq_sum_filter, Finset.sum_subset hs]
- rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne.def, Classical.not_not] at hx
+ rintro x - hx; rw [Finset.mem_filter, not_and_or, Ne, Classical.not_not] at hx
-- Porting note: reordered for clarity
rcases hx.symm with (rfl | hx)
· simp
@@ -1143,7 +1143,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
· exact measurable_ofReal.comp_aemeasurable hfm.aemeasurable.neg
rw [h_min, zero_toReal, _root_.sub_zero]
· rw [integral_undef hfi]
- simp_rw [Integrable, hfm, hasFiniteIntegral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
+ simp_rw [Integrable, hfm, hasFiniteIntegral_iff_norm, lt_top_iff_ne_top, Ne, true_and_iff,
Classical.not_not] at hfi
have : ∫⁻ a : α, ENNReal.ofReal (f a) ∂μ = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ := by
refine' lintegral_congr_ae (hf.mono fun a h => _)
@@ -1258,7 +1258,7 @@ lemma integral_eq_iff_of_ae_le {f g : α → ℝ}
theorem integral_pos_iff_support_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
(0 < ∫ x, f x ∂μ) ↔ 0 < μ (Function.support f) := by
- simp_rw [(integral_nonneg_of_ae hf).lt_iff_ne, pos_iff_ne_zero, Ne.def, @eq_comm ℝ 0,
+ simp_rw [(integral_nonneg_of_ae hf).lt_iff_ne, pos_iff_ne_zero, Ne, @eq_comm ℝ 0,
integral_eq_zero_iff_of_nonneg_ae hf hfi, Filter.EventuallyEq, ae_iff, Pi.zero_apply,
Function.support]
#align measure_theory.integral_pos_iff_support_of_nonneg_ae MeasureTheory.integral_pos_iff_support_of_nonneg_ae
@@ -1825,13 +1825,13 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
· convert hf.snorm_ne_top
rw [snorm_eq_lintegral_rpow_nnnorm]
· rw [ENNReal.toReal_ofReal hpq.nonneg]
- · rw [Ne.def, ENNReal.ofReal_eq_zero, not_le]
+ · rw [Ne, ENNReal.ofReal_eq_zero, not_le]
exact hpq.pos
· exact ENNReal.coe_ne_top
· convert hg.snorm_ne_top
rw [snorm_eq_lintegral_rpow_nnnorm]
· rw [ENNReal.toReal_ofReal hpq.symm.nonneg]
- · rw [Ne.def, ENNReal.ofReal_eq_zero, not_le]
+ · rw [Ne, ENNReal.ofReal_eq_zero, not_le]
exact hpq.symm.pos
· exact ENNReal.coe_ne_top
· exact ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.1.nnnorm.aemeasurable.coe_nnreal_ennreal
IsROrC
to RCLike
(#10819)
IsROrC
contains data, which goes against the expectation that classes prefixed with Is
are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC
to RCLike
.
@@ -923,17 +923,17 @@ theorem integral_smul [NormedSpace 𝕜 G] [SMulCommClass ℝ 𝕜 G] (c : 𝕜)
· simp [integral, hG]
#align measure_theory.integral_smul MeasureTheory.integral_smul
-theorem integral_mul_left {L : Type*} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_mul_left {L : Type*} [RCLike L] (r : L) (f : α → L) :
∫ a, r * f a ∂μ = r * ∫ a, f a ∂μ :=
integral_smul r f
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
-theorem integral_mul_right {L : Type*} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_mul_right {L : Type*} [RCLike L] (r : L) (f : α → L) :
∫ a, f a * r ∂μ = (∫ a, f a ∂μ) * r := by
simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
-theorem integral_div {L : Type*} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_div {L : Type*} [RCLike L] (r : L) (f : α → L) :
∫ a, f a / r ∂μ = (∫ a, f a ∂μ) / r := by
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
smul
(#11331)
We want to avoid making Lean unfold smul
during unification. A separate instance does helps at the cost of some elaboration failures.
@@ -234,7 +234,7 @@ theorem weightedSMul_smul [NormedField 𝕜] [NormedSpace 𝕜 F] [SMulCommClass
theorem norm_weightedSMul_le (s : Set α) : ‖(weightedSMul μ s : F →L[ℝ] F)‖ ≤ (μ s).toReal :=
calc
‖(weightedSMul μ s : F →L[ℝ] F)‖ = ‖(μ s).toReal‖ * ‖ContinuousLinearMap.id ℝ F‖ :=
- norm_smul _ _
+ norm_smul (μ s).toReal (ContinuousLinearMap.id ℝ F)
_ ≤ ‖(μ s).toReal‖ :=
((mul_le_mul_of_nonneg_left norm_id_le (norm_nonneg _)).trans (mul_one _).le)
_ = abs (μ s).toReal := Real.norm_eq_abs _
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -1611,7 +1611,7 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → G}
theorem nndist_integral_add_measure_le_lintegral
{f : α → G} (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
(nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν := by
- rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel']
+ rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel_left]
exact ennnorm_integral_le_lintegral_ennnorm _
#align measure_theory.nndist_integral_add_measure_le_lintegral MeasureTheory.nndist_integral_add_measure_le_lintegral
@@ -2079,3 +2079,26 @@ theorem snorm_one_le_of_le' {r : ℝ} {f : α → ℝ} (hfint : Integrable f μ)
end SnormBound
end MeasureTheory
+
+namespace Mathlib.Meta.Positivity
+
+open Qq Lean Meta MeasureTheory
+
+/-- Positivity extension for integrals.
+
+This extension only proves non-negativity, strict positivity is more delicate for integration and
+requires more assumptions. -/
+@[positivity MeasureTheory.integral _ _]
+def evalIntegral : PositivityExt where eval {u α} zα pα e := do
+ match u, α, e with
+ | 0, ~q(ℝ), ~q(@MeasureTheory.integral $i ℝ _ $inst2 _ _ $f) =>
+ let i : Q($i) ← mkFreshExprMVarQ q($i) .syntheticOpaque
+ have body : Q(ℝ) := .betaRev f #[i]
+ let rbody ← core zα pα body
+ let pbody ← rbody.toNonneg
+ let pr : Q(∀ x, 0 ≤ $f x) ← mkLambdaFVars #[i] pbody
+ assertInstancesCommute
+ return .nonnegative q(integral_nonneg $pr)
+ | _ => throwError "not MeasureTheory.integral"
+
+end Mathlib.Meta.Positivity
filter_upwards
(#11208)
This is presumably not exhaustive, but covers about a hundred instances.
Style opinions (e.g., why a particular change is great/not a good idea) are very welcome; I'm still forming my own.
@@ -1156,7 +1156,7 @@ theorem integral_norm_eq_lintegral_nnnorm {P : Type*} [NormedAddCommGroup P] {f
(hf : AEStronglyMeasurable f μ) : ∫ x, ‖f x‖ ∂μ = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) := by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
- · refine' ae_of_all _ _; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
+ · filter_upwards; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
#align measure_theory.integral_norm_eq_lintegral_nnnorm MeasureTheory.integral_norm_eq_lintegral_nnnorm
theorem ofReal_integral_norm_eq_lintegral_nnnorm {P : Type*} [NormedAddCommGroup P] {f : α → P}
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -550,7 +550,6 @@ theorem norm_integral_le_norm (f : α →₁ₛ[μ] E) : ‖integral f‖ ≤
#align measure_theory.L1.simple_func.norm_integral_le_norm MeasureTheory.L1.SimpleFunc.norm_integral_le_norm
variable {E' : Type*} [NormedAddCommGroup E'] [NormedSpace ℝ E'] [NormedSpace 𝕜 E']
-
variable (α E μ 𝕜)
/-- The Bochner integral over simple functions in L1 space as a continuous linear map. -/
tendsto_of_integral_tendsto_of_monotone
(#11167)
Add tendsto_of_integral_tendsto_of_monotone
, as well as ...of_antitone
and the corresponding results for lintegral
.
Also:
lintegral_iInf'
, a version of lintegral_iInf
for a.e.-measurable functions. We already have the corresponding lintegral_iSup'
.Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
@@ -1328,6 +1328,89 @@ lemma integral_tendsto_of_tendsto_of_antitone {μ : Measure α} {f : ℕ → α
· filter_upwards [h_mono] with x hx n m hnm using neg_le_neg_iff.mpr <| hx hnm
· filter_upwards [h_tendsto] with x hx using hx.neg
+/-- If a monotone sequence of functions has an upper bound and the sequence of integrals of these
+functions tends to the integral of the upper bound, then the sequence of functions converges
+almost everywhere to the upper bound. -/
+lemma tendsto_of_integral_tendsto_of_monotone {μ : Measure α} {f : ℕ → α → ℝ} {F : α → ℝ}
+ (hf_int : ∀ n, Integrable (f n) μ) (hF_int : Integrable F μ)
+ (hf_tendsto : Tendsto (fun i ↦ ∫ a, f i a ∂μ) atTop (𝓝 (∫ a, F a ∂μ)))
+ (hf_mono : ∀ᵐ a ∂μ, Monotone (fun i ↦ f i a))
+ (hf_bound : ∀ᵐ a ∂μ, ∀ i, f i a ≤ F a) :
+ ∀ᵐ a ∂μ, Tendsto (fun i ↦ f i a) atTop (𝓝 (F a)) := by
+ -- reduce to the `ℝ≥0∞` case
+ let f' : ℕ → α → ℝ≥0∞ := fun n a ↦ ENNReal.ofReal (f n a - f 0 a)
+ let F' : α → ℝ≥0∞ := fun a ↦ ENNReal.ofReal (F a - f 0 a)
+ have hf'_int_eq : ∀ i, ∫⁻ a, f' i a ∂μ = ENNReal.ofReal (∫ a, f i a ∂μ - ∫ a, f 0 a ∂μ) := by
+ intro i
+ unfold_let f'
+ rw [← ofReal_integral_eq_lintegral_ofReal, integral_sub (hf_int i) (hf_int 0)]
+ · exact (hf_int i).sub (hf_int 0)
+ · filter_upwards [hf_mono] with a h_mono
+ simp [h_mono (zero_le i)]
+ have hF'_int_eq : ∫⁻ a, F' a ∂μ = ENNReal.ofReal (∫ a, F a ∂μ - ∫ a, f 0 a ∂μ) := by
+ unfold_let F'
+ rw [← ofReal_integral_eq_lintegral_ofReal, integral_sub hF_int (hf_int 0)]
+ · exact hF_int.sub (hf_int 0)
+ · filter_upwards [hf_bound] with a h_bound
+ simp [h_bound 0]
+ have h_tendsto : Tendsto (fun i ↦ ∫⁻ a, f' i a ∂μ) atTop (𝓝 (∫⁻ a, F' a ∂μ)) := by
+ simp_rw [hf'_int_eq, hF'_int_eq]
+ refine (ENNReal.continuous_ofReal.tendsto _).comp ?_
+ rwa [tendsto_sub_const_iff]
+ have h_mono : ∀ᵐ a ∂μ, Monotone (fun i ↦ f' i a) := by
+ filter_upwards [hf_mono] with a ha_mono i j hij
+ refine ENNReal.ofReal_le_ofReal ?_
+ simp [ha_mono hij]
+ have h_bound : ∀ᵐ a ∂μ, ∀ i, f' i a ≤ F' a := by
+ filter_upwards [hf_bound] with a ha_bound i
+ refine ENNReal.ofReal_le_ofReal ?_
+ simp only [tsub_le_iff_right, sub_add_cancel, ha_bound i]
+ -- use the corresponding lemma for `ℝ≥0∞`
+ have h := tendsto_of_lintegral_tendsto_of_monotone ?_ h_tendsto h_mono h_bound ?_
+ rotate_left
+ · exact (hF_int.1.aemeasurable.sub (hf_int 0).1.aemeasurable).ennreal_ofReal
+ · exact ((lintegral_ofReal_le_lintegral_nnnorm _).trans_lt (hF_int.sub (hf_int 0)).2).ne
+ filter_upwards [h, hf_mono, hf_bound] with a ha ha_mono ha_bound
+ have h1 : (fun i ↦ f i a) = fun i ↦ (f' i a).toReal + f 0 a := by
+ unfold_let f'
+ ext i
+ rw [ENNReal.toReal_ofReal]
+ · abel
+ · simp [ha_mono (zero_le i)]
+ have h2 : F a = (F' a).toReal + f 0 a := by
+ unfold_let F'
+ rw [ENNReal.toReal_ofReal]
+ · abel
+ · simp [ha_bound 0]
+ rw [h1, h2]
+ refine Filter.Tendsto.add ?_ tendsto_const_nhds
+ exact (ENNReal.continuousAt_toReal ENNReal.ofReal_ne_top).tendsto.comp ha
+
+/-- If an antitone sequence of functions has a lower bound and the sequence of integrals of these
+functions tends to the integral of the lower bound, then the sequence of functions converges
+almost everywhere to the lower bound. -/
+lemma tendsto_of_integral_tendsto_of_antitone {μ : Measure α} {f : ℕ → α → ℝ} {F : α → ℝ}
+ (hf_int : ∀ n, Integrable (f n) μ) (hF_int : Integrable F μ)
+ (hf_tendsto : Tendsto (fun i ↦ ∫ a, f i a ∂μ) atTop (𝓝 (∫ a, F a ∂μ)))
+ (hf_mono : ∀ᵐ a ∂μ, Antitone (fun i ↦ f i a))
+ (hf_bound : ∀ᵐ a ∂μ, ∀ i, F a ≤ f i a) :
+ ∀ᵐ a ∂μ, Tendsto (fun i ↦ f i a) atTop (𝓝 (F a)) := by
+ let f' : ℕ → α → ℝ := fun i a ↦ - f i a
+ let F' : α → ℝ := fun a ↦ - F a
+ suffices ∀ᵐ a ∂μ, Tendsto (fun i ↦ f' i a) atTop (𝓝 (F' a)) by
+ filter_upwards [this] with a ha_tendsto
+ convert ha_tendsto.neg
+ · simp [f']
+ · simp [F']
+ refine tendsto_of_integral_tendsto_of_monotone (fun n ↦ (hf_int n).neg) hF_int.neg ?_ ?_ ?_
+ · convert hf_tendsto.neg
+ · rw [integral_neg]
+ · rw [integral_neg]
+ · filter_upwards [hf_mono] with a ha i j hij
+ simp [f', ha hij]
+ · filter_upwards [hf_bound] with a ha i
+ simp [f', F', ha i]
+
section NormedAddCommGroup
variable {H : Type*} [NormedAddCommGroup H]
Suggested by @loefflerd. Only code motion (and cosmetic adaptions, such as minimising import and open statements).
@@ -73,7 +73,8 @@ file `SetToL1`).
where `f⁺` is the positive part of `f` and `f⁻` is the negative part of `f`.
* `integral_eq_lintegral_of_nonneg_ae` : `0 ≤ᵐ[μ] f → ∫ x, f x ∂μ = ∫⁻ x, f x ∂μ`
-4. `tendsto_integral_of_dominated_convergence` : the Lebesgue dominated convergence theorem
+4. (In the file `DominatedConvergence`)
+ `tendsto_integral_of_dominated_convergence` : the Lebesgue dominated convergence theorem
5. (In the file `SetIntegral`) integration commutes with continuous linear maps.
@@ -1048,65 +1049,6 @@ lemma tendsto_set_integral_of_L1' {ι} (f : α → G) (hfi : Integrable f μ) {F
simp_rw [snorm_one_eq_lintegral_nnnorm, Pi.sub_apply] at hF
exact hF
-/-- **Lebesgue dominated convergence theorem** provides sufficient conditions under which almost
- everywhere convergence of a sequence of functions implies the convergence of their integrals.
- We could weaken the condition `bound_integrable` to require `HasFiniteIntegral bound μ` instead
- (i.e. not requiring that `bound` is measurable), but in all applications proving integrability
- is easier. -/
-theorem tendsto_integral_of_dominated_convergence {F : ℕ → α → G} {f : α → G} (bound : α → ℝ)
- (F_measurable : ∀ n, AEStronglyMeasurable (F n) μ) (bound_integrable : Integrable bound μ)
- (h_bound : ∀ n, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound a)
- (h_lim : ∀ᵐ a ∂μ, Tendsto (fun n => F n a) atTop (𝓝 (f a))) :
- Tendsto (fun n => ∫ a, F n a ∂μ) atTop (𝓝 <| ∫ a, f a ∂μ) := by
- by_cases hG : CompleteSpace G
- · simp only [integral, hG, L1.integral]
- exact tendsto_setToFun_of_dominated_convergence (dominatedFinMeasAdditive_weightedSMul μ)
- bound F_measurable bound_integrable h_bound h_lim
- · simp [integral, hG]
-#align measure_theory.tendsto_integral_of_dominated_convergence MeasureTheory.tendsto_integral_of_dominated_convergence
-
-/-- Lebesgue dominated convergence theorem for filters with a countable basis -/
-theorem tendsto_integral_filter_of_dominated_convergence {ι} {l : Filter ι} [l.IsCountablyGenerated]
- {F : ι → α → G} {f : α → G} (bound : α → ℝ) (hF_meas : ∀ᶠ n in l, AEStronglyMeasurable (F n) μ)
- (h_bound : ∀ᶠ n in l, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
- (h_lim : ∀ᵐ a ∂μ, Tendsto (fun n => F n a) l (𝓝 (f a))) :
- Tendsto (fun n => ∫ a, F n a ∂μ) l (𝓝 <| ∫ a, f a ∂μ) := by
- by_cases hG : CompleteSpace G
- · simp only [integral, hG, L1.integral]
- exact tendsto_setToFun_filter_of_dominated_convergence (dominatedFinMeasAdditive_weightedSMul μ)
- bound hF_meas h_bound bound_integrable h_lim
- · simp [integral, hG, tendsto_const_nhds]
-#align measure_theory.tendsto_integral_filter_of_dominated_convergence MeasureTheory.tendsto_integral_filter_of_dominated_convergence
-
-/-- Lebesgue dominated convergence theorem for series. -/
-theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι → α → G} {f : α → G}
- (bound : ι → α → ℝ) (hF_meas : ∀ n, AEStronglyMeasurable (F n) μ)
- (h_bound : ∀ n, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound n a)
- (bound_summable : ∀ᵐ a ∂μ, Summable fun n => bound n a)
- (bound_integrable : Integrable (fun a => ∑' n, bound n a) μ)
- (h_lim : ∀ᵐ a ∂μ, HasSum (fun n => F n a) (f a)) :
- HasSum (fun n => ∫ a, F n a ∂μ) (∫ a, f a ∂μ) := by
- have hb_nonneg : ∀ᵐ a ∂μ, ∀ n, 0 ≤ bound n a :=
- eventually_countable_forall.2 fun n => (h_bound n).mono fun a => (norm_nonneg _).trans
- have hb_le_tsum : ∀ n, bound n ≤ᵐ[μ] fun a => ∑' n, bound n a := by
- intro n
- filter_upwards [hb_nonneg, bound_summable]
- with _ ha0 ha_sum using le_tsum ha_sum _ fun i _ => ha0 i
- have hF_integrable : ∀ n, Integrable (F n) μ := by
- refine' fun n => bound_integrable.mono' (hF_meas n) _
- exact EventuallyLE.trans (h_bound n) (hb_le_tsum n)
- simp only [HasSum, ← integral_finset_sum _ fun n _ => hF_integrable n]
- refine' tendsto_integral_filter_of_dominated_convergence
- (fun a => ∑' n, bound n a) _ _ bound_integrable h_lim
- · exact eventually_of_forall fun s => s.aestronglyMeasurable_sum fun n _ => hF_meas n
- · refine' eventually_of_forall fun s => _
- filter_upwards [eventually_countable_forall.2 h_bound, hb_nonneg, bound_summable]
- with a hFa ha0 has
- calc
- ‖∑ n in s, F n a‖ ≤ ∑ n in s, bound n a := norm_sum_le_of_le _ fun n _ => hFa n
- _ ≤ ∑' n, bound n a := sum_le_tsum _ (fun n _ => ha0 n) has
-#align measure_theory.has_sum_integral_of_dominated_convergence MeasureTheory.hasSum_integral_of_dominated_convergence
-
variable {X : Type*} [TopologicalSpace X] [FirstCountableTopology X]
theorem continuousWithinAt_of_dominated {F : X → α → G} {x₀ : X} {bound : α → ℝ} {s : Set X}
@@ -1618,58 +1560,6 @@ theorem integral_sum_measure {ι} {_ : MeasurableSpace α} {f : α → G} {μ :
(hasSum_integral_measure hf).tsum_eq.symm
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
-theorem integral_tsum {ι} [Countable ι] {f : ι → α → G} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
- (hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) :
- ∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ := by
- by_cases hG : CompleteSpace G; swap
- · simp [integral, hG]
- have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
- have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) := by
- rw [← lintegral_tsum hf''] at hf'
- refine' (ae_lt_top' (AEMeasurable.ennreal_tsum hf'') hf').mono _
- intro x hx
- rw [← ENNReal.tsum_coe_ne_top_iff_summable_coe]
- exact hx.ne
- convert (MeasureTheory.hasSum_integral_of_dominated_convergence (fun i a => ‖f i a‖₊) hf _ hhh
- ⟨_, _⟩ _).tsum_eq.symm
- · intro n
- filter_upwards with x
- rfl
- · simp_rw [← NNReal.coe_tsum]
- rw [aestronglyMeasurable_iff_aemeasurable]
- apply AEMeasurable.coe_nnreal_real
- apply AEMeasurable.nnreal_tsum
- exact fun i => (hf i).nnnorm.aemeasurable
- · dsimp [HasFiniteIntegral]
- have : ∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
- convert this using 1
- apply lintegral_congr_ae
- simp_rw [← coe_nnnorm, ← NNReal.coe_tsum, NNReal.nnnorm_eq]
- filter_upwards [hhh] with a ha
- exact ENNReal.coe_tsum (NNReal.summable_coe.mp ha)
- · filter_upwards [hhh] with x hx
- exact hx.of_norm.hasSum
-#align measure_theory.integral_tsum MeasureTheory.integral_tsum
-
-lemma hasSum_integral_of_summable_integral_norm {ι} [Countable ι] {F : ι → α → E}
- (hF_int : ∀ i : ι, Integrable (F i) μ) (hF_sum : Summable fun i ↦ ∫ a, ‖F i a‖ ∂μ) :
- HasSum (∫ a, F · a ∂μ) (∫ a, (∑' i, F i a) ∂μ) := by
- rw [integral_tsum (fun i ↦ (hF_int i).1)]
- · exact (hF_sum.of_norm_bounded _ fun i ↦ norm_integral_le_integral_norm _).hasSum
- have (i : ι) : ∫⁻ (a : α), ‖F i a‖₊ ∂μ = ‖(∫ a : α, ‖F i a‖ ∂μ)‖₊ := by
- rw [lintegral_coe_eq_integral _ (hF_int i).norm, coe_nnreal_eq, coe_nnnorm,
- Real.norm_of_nonneg (integral_nonneg (fun a ↦ norm_nonneg (F i a)))]
- rfl
- rw [funext this, ← ENNReal.coe_tsum]
- · apply coe_ne_top
- · simp_rw [← NNReal.summable_coe, coe_nnnorm]
- exact hF_sum.abs
-
-lemma integral_tsum_of_summable_integral_norm {ι} [Countable ι] {F : ι → α → E}
- (hF_int : ∀ i : ι, Integrable (F i) μ) (hF_sum : Summable fun i ↦ ∫ a, ‖F i a‖ ∂μ) :
- ∑' i, (∫ a, F i a ∂μ) = ∫ a, (∑' i, F i a) ∂μ :=
- (hasSum_integral_of_summable_integral_norm hF_int hF_sum).tsum_eq
-
@[simp]
theorem integral_smul_measure (f : α → G) (c : ℝ≥0∞) :
∫ x, f x ∂c • μ = c.toReal • ∫ x, f x ∂μ := by
A lemma on interchanging sums and integrals (pretty much equivalent tointegral_tsum
, but without explicitly mentioning ENNReals
, lintegrals
etc). Also, correct a random capitalisation glitch I spotted in the process.
@@ -1651,6 +1651,25 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → G} (hf : ∀ i, AES
exact hx.of_norm.hasSum
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
+lemma hasSum_integral_of_summable_integral_norm {ι} [Countable ι] {F : ι → α → E}
+ (hF_int : ∀ i : ι, Integrable (F i) μ) (hF_sum : Summable fun i ↦ ∫ a, ‖F i a‖ ∂μ) :
+ HasSum (∫ a, F · a ∂μ) (∫ a, (∑' i, F i a) ∂μ) := by
+ rw [integral_tsum (fun i ↦ (hF_int i).1)]
+ · exact (hF_sum.of_norm_bounded _ fun i ↦ norm_integral_le_integral_norm _).hasSum
+ have (i : ι) : ∫⁻ (a : α), ‖F i a‖₊ ∂μ = ‖(∫ a : α, ‖F i a‖ ∂μ)‖₊ := by
+ rw [lintegral_coe_eq_integral _ (hF_int i).norm, coe_nnreal_eq, coe_nnnorm,
+ Real.norm_of_nonneg (integral_nonneg (fun a ↦ norm_nonneg (F i a)))]
+ rfl
+ rw [funext this, ← ENNReal.coe_tsum]
+ · apply coe_ne_top
+ · simp_rw [← NNReal.summable_coe, coe_nnnorm]
+ exact hF_sum.abs
+
+lemma integral_tsum_of_summable_integral_norm {ι} [Countable ι] {F : ι → α → E}
+ (hF_int : ∀ i : ι, Integrable (F i) μ) (hF_sum : Summable fun i ↦ ∫ a, ‖F i a‖ ∂μ) :
+ ∑' i, (∫ a, F i a ∂μ) = ∫ a, (∑' i, F i a) ∂μ :=
+ (hasSum_integral_of_summable_integral_norm hF_int hF_sum).tsum_eq
+
@[simp]
theorem integral_smul_measure (f : α → G) (c : ℝ≥0∞) :
∫ x, f x ∂c • μ = c.toReal • ∫ x, f x ∂μ := by
@@ -1344,7 +1344,7 @@ lemma integral_tendsto_of_tendsto_of_monotone {μ : Measure α} {f : ℕ → α
let f' := fun n x ↦ f n x - f 0 x
have hf'_nonneg : ∀ᵐ x ∂μ, ∀ n, 0 ≤ f' n x := by
filter_upwards [h_mono] with a ha n
- simp [ha (zero_le n)]
+ simp [f', ha (zero_le n)]
have hf'_meas : ∀ n, Integrable (f' n) μ := fun n ↦ (hf n).sub (hf 0)
suffices Tendsto (fun n ↦ ∫ x, f' n x ∂μ) atTop (𝓝 (∫ x, (F - f 0) x ∂μ)) by
simp_rw [integral_sub (hf _) (hf _), integral_sub' hF (hf 0), tendsto_sub_const_iff] at this
@@ -1366,7 +1366,7 @@ lemma integral_tendsto_of_tendsto_of_monotone {μ : Measure α} {f : ℕ → α
· exact fun n ↦ ((hf n).sub (hf 0)).aemeasurable.ennreal_ofReal
· filter_upwards [h_mono] with x hx n m hnm
refine ENNReal.ofReal_le_ofReal ?_
- simp only [tsub_le_iff_right, sub_add_cancel]
+ simp only [f', tsub_le_iff_right, sub_add_cancel]
exact hx hnm
· filter_upwards [h_tendsto] with x hx
refine (ENNReal.continuous_ofReal.tendsto _).comp ?_
@@ -1335,6 +1335,57 @@ lemma integral_exp_pos {μ : Measure α} {f : α → ℝ} [hμ : NeZero μ]
ext1 x
simp only [Function.mem_support, ne_eq, (Real.exp_pos _).ne', not_false_eq_true, Set.mem_univ]
+/-- Monotone convergence theorem for real-valued functions and Bochner integrals -/
+lemma integral_tendsto_of_tendsto_of_monotone {μ : Measure α} {f : ℕ → α → ℝ} {F : α → ℝ}
+ (hf : ∀ n, Integrable (f n) μ) (hF : Integrable F μ) (h_mono : ∀ᵐ x ∂μ, Monotone fun n ↦ f n x)
+ (h_tendsto : ∀ᵐ x ∂μ, Tendsto (fun n ↦ f n x) atTop (𝓝 (F x))) :
+ Tendsto (fun n ↦ ∫ x, f n x ∂μ) atTop (𝓝 (∫ x, F x ∂μ)) := by
+ -- switch from the Bochner to the Lebesgue integral
+ let f' := fun n x ↦ f n x - f 0 x
+ have hf'_nonneg : ∀ᵐ x ∂μ, ∀ n, 0 ≤ f' n x := by
+ filter_upwards [h_mono] with a ha n
+ simp [ha (zero_le n)]
+ have hf'_meas : ∀ n, Integrable (f' n) μ := fun n ↦ (hf n).sub (hf 0)
+ suffices Tendsto (fun n ↦ ∫ x, f' n x ∂μ) atTop (𝓝 (∫ x, (F - f 0) x ∂μ)) by
+ simp_rw [integral_sub (hf _) (hf _), integral_sub' hF (hf 0), tendsto_sub_const_iff] at this
+ exact this
+ have hF_ge : 0 ≤ᵐ[μ] fun x ↦ (F - f 0) x := by
+ filter_upwards [h_tendsto, h_mono] with x hx_tendsto hx_mono
+ simp only [Pi.zero_apply, Pi.sub_apply, sub_nonneg]
+ exact ge_of_tendsto' hx_tendsto (fun n ↦ hx_mono (zero_le _))
+ rw [ae_all_iff] at hf'_nonneg
+ simp_rw [integral_eq_lintegral_of_nonneg_ae (hf'_nonneg _) (hf'_meas _).1]
+ rw [integral_eq_lintegral_of_nonneg_ae hF_ge (hF.1.sub (hf 0).1)]
+ have h_cont := ENNReal.continuousAt_toReal (x := ∫⁻ a, ENNReal.ofReal ((F - f 0) a) ∂μ) ?_
+ swap
+ · rw [← ofReal_integral_eq_lintegral_ofReal (hF.sub (hf 0)) hF_ge]
+ exact ENNReal.ofReal_ne_top
+ refine h_cont.tendsto.comp ?_
+ -- use the result for the Lebesgue integral
+ refine lintegral_tendsto_of_tendsto_of_monotone ?_ ?_ ?_
+ · exact fun n ↦ ((hf n).sub (hf 0)).aemeasurable.ennreal_ofReal
+ · filter_upwards [h_mono] with x hx n m hnm
+ refine ENNReal.ofReal_le_ofReal ?_
+ simp only [tsub_le_iff_right, sub_add_cancel]
+ exact hx hnm
+ · filter_upwards [h_tendsto] with x hx
+ refine (ENNReal.continuous_ofReal.tendsto _).comp ?_
+ simp only [Pi.sub_apply]
+ exact Tendsto.sub hx tendsto_const_nhds
+
+/-- Monotone convergence theorem for real-valued functions and Bochner integrals -/
+lemma integral_tendsto_of_tendsto_of_antitone {μ : Measure α} {f : ℕ → α → ℝ} {F : α → ℝ}
+ (hf : ∀ n, Integrable (f n) μ) (hF : Integrable F μ) (h_mono : ∀ᵐ x ∂μ, Antitone fun n ↦ f n x)
+ (h_tendsto : ∀ᵐ x ∂μ, Tendsto (fun n ↦ f n x) atTop (𝓝 (F x))) :
+ Tendsto (fun n ↦ ∫ x, f n x ∂μ) atTop (𝓝 (∫ x, F x ∂μ)) := by
+ suffices Tendsto (fun n ↦ ∫ x, -f n x ∂μ) atTop (𝓝 (∫ x, -F x ∂μ)) by
+ suffices Tendsto (fun n ↦ ∫ x, - -f n x ∂μ) atTop (𝓝 (∫ x, - -F x ∂μ)) by
+ simpa [neg_neg] using this
+ convert this.neg <;> rw [integral_neg]
+ refine integral_tendsto_of_tendsto_of_monotone (fun n ↦ (hf n).neg) hF.neg ?_ ?_
+ · filter_upwards [h_mono] with x hx n m hnm using neg_le_neg_iff.mpr <| hx hnm
+ · filter_upwards [h_tendsto] with x hx using hx.neg
+
section NormedAddCommGroup
variable {H : Type*} [NormedAddCommGroup H]
@@ -1300,7 +1300,6 @@ theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
· rw [← hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLE]
simp only [Pi.zero_apply, ofReal_eq_zero]
· exact (ENNReal.measurable_ofReal.comp_aemeasurable hfi.1.aemeasurable)
-
#align measure_theory.integral_eq_zero_iff_of_nonneg_ae MeasureTheory.integral_eq_zero_iff_of_nonneg_ae
theorem integral_eq_zero_iff_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
@@ -1308,6 +1307,14 @@ theorem integral_eq_zero_iff_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : In
integral_eq_zero_iff_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_eq_zero_iff_of_nonneg MeasureTheory.integral_eq_zero_iff_of_nonneg
+lemma integral_eq_iff_of_ae_le {f g : α → ℝ}
+ (hf : Integrable f μ) (hg : Integrable g μ) (hfg : f ≤ᵐ[μ] g) :
+ ∫ a, f a ∂μ = ∫ a, g a ∂μ ↔ f =ᵐ[μ] g := by
+ refine ⟨fun h_le ↦ EventuallyEq.symm ?_, fun h ↦ integral_congr_ae h⟩
+ rw [← sub_ae_eq_zero,
+ ← integral_eq_zero_iff_of_nonneg_ae ((sub_nonneg_ae _ _).mpr hfg) (hg.sub hf)]
+ simpa [Pi.sub_apply, integral_sub hg hf, sub_eq_zero, eq_comm]
+
theorem integral_pos_iff_support_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
(0 < ∫ x, f x ∂μ) ↔ 0 < μ (Function.support f) := by
simp_rw [(integral_nonneg_of_ae hf).lt_iff_ne, pos_iff_ne_zero, Ne.def, @eq_comm ℝ 0,
tendsto_integral_of_L1
(#10790)
Add variants for set integrals and with the convergence hypothesis expressed with snorm
.
@@ -1018,6 +1018,36 @@ theorem tendsto_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F :
set_option linter.uppercaseLean3 false in
#align measure_theory.tendsto_integral_of_L1 MeasureTheory.tendsto_integral_of_L1
+/-- If `F i → f` in `L1`, then `∫ x, F i x ∂μ → ∫ x, f x ∂μ`. -/
+lemma tendsto_integral_of_L1' {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G} {l : Filter ι}
+ (hFi : ∀ᶠ i in l, Integrable (F i) μ) (hF : Tendsto (fun i ↦ snorm (F i - f) 1 μ) l (𝓝 0)) :
+ Tendsto (fun i ↦ ∫ x, F i x ∂μ) l (𝓝 (∫ x, f x ∂μ)) := by
+ refine tendsto_integral_of_L1 f hfi hFi ?_
+ simp_rw [snorm_one_eq_lintegral_nnnorm, Pi.sub_apply] at hF
+ exact hF
+
+/-- If `F i → f` in `L1`, then `∫ x in s, F i x ∂μ → ∫ x in s, f x ∂μ`. -/
+lemma tendsto_set_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G}
+ {l : Filter ι}
+ (hFi : ∀ᶠ i in l, Integrable (F i) μ) (hF : Tendsto (fun i ↦ ∫⁻ x, ‖F i x - f x‖₊ ∂μ) l (𝓝 0))
+ (s : Set α) :
+ Tendsto (fun i ↦ ∫ x in s, F i x ∂μ) l (𝓝 (∫ x in s, f x ∂μ)) := by
+ refine tendsto_integral_of_L1 f hfi.restrict ?_ ?_
+ · filter_upwards [hFi] with i hi using hi.restrict
+ · simp_rw [← snorm_one_eq_lintegral_nnnorm] at hF ⊢
+ exact tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds hF (fun _ ↦ zero_le')
+ (fun _ ↦ snorm_mono_measure _ Measure.restrict_le_self)
+
+/-- If `F i → f` in `L1`, then `∫ x in s, F i x ∂μ → ∫ x in s, f x ∂μ`. -/
+lemma tendsto_set_integral_of_L1' {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G}
+ {l : Filter ι}
+ (hFi : ∀ᶠ i in l, Integrable (F i) μ) (hF : Tendsto (fun i ↦ snorm (F i - f) 1 μ) l (𝓝 0))
+ (s : Set α) :
+ Tendsto (fun i ↦ ∫ x in s, F i x ∂μ) l (𝓝 (∫ x in s, f x ∂μ)) := by
+ refine tendsto_set_integral_of_L1 f hfi hFi ?_ s
+ simp_rw [snorm_one_eq_lintegral_nnnorm, Pi.sub_apply] at hF
+ exact hF
+
/-- **Lebesgue dominated convergence theorem** provides sufficient conditions under which almost
everywhere convergence of a sequence of functions implies the convergence of their integrals.
We could weaken the condition `bound_integrable` to require `HasFiniteIntegral bound μ` instead
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -1626,7 +1626,7 @@ theorem _root_.MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f
by_cases hgm : AEStronglyMeasurable g (Measure.map f μ)
· exact MeasureTheory.integral_map hf.measurable.aemeasurable hgm
· rw [integral_non_aestronglyMeasurable hgm, integral_non_aestronglyMeasurable]
- refine' fun hgf => hgm (hf.aestronglyMeasurable_map_iff.2 hgf)
+ exact fun hgf => hgm (hf.aestronglyMeasurable_map_iff.2 hgf)
#align measurable_embedding.integral_map MeasurableEmbedding.integral_map
theorem _root_.ClosedEmbedding.integral_map {β} [TopologicalSpace α] [BorelSpace α]
ℝ≥0
(#10589)
It happens often that we have p q : ℝ≥0
that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with ℝ≥0
conjugates clumsy.
This PR
NNReal.IsConjExponent
, NNReal.conjExponent
Real.IsConjugateExponent
, Real.conjugateExponent
to Real.IsConjExponent
, Real.conjExponent
Real
and NNReal
versionsFrom LeanAPAP
@@ -1715,7 +1715,7 @@ theorem mul_meas_ge_le_integral_of_nonneg {f : α → ℝ} (hf_nonneg : 0 ≤ᵐ
norms of functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are
conjugate exponents. -/
theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α → E} {p q : ℝ}
- (hpq : p.IsConjugateExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
+ (hpq : p.IsConjExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
∫ a, ‖f a‖ * ‖g a‖ ∂μ ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) := by
-- translate the Bochner integrals into Lebesgue integrals.
@@ -1763,7 +1763,7 @@ set_option linter.uppercaseLean3 false in
/-- Hölder's inequality for functions `α → ℝ`. The integral of the product of two nonnegative
functions is bounded by the product of their `ℒp` and `ℒq` seminorms when `p` and `q` are conjugate
exponents. -/
-theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExponent q) {f g : α → ℝ}
+theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjExponent q) {f g : α → ℝ}
(hf_nonneg : 0 ≤ᵐ[μ] f) (hg_nonneg : 0 ≤ᵐ[μ] g) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
∫ a, f a * g a ∂μ ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) := by
@@ -839,6 +839,9 @@ theorem integral_undef {f : α → G} (h : ¬Integrable f μ) : ∫ a, f a ∂μ
· simp [integral, hG]
#align measure_theory.integral_undef MeasureTheory.integral_undef
+theorem Integrable.of_integral_ne_zero {f : α → G} (h : ∫ a, f a ∂μ ≠ 0) : Integrable f μ :=
+ Not.imp_symm integral_undef h
+
theorem integral_non_aestronglyMeasurable {f : α → G} (h : ¬AEStronglyMeasurable f μ) :
∫ a, f a ∂μ = 0 :=
integral_undef <| not_and_of_not_left _ h
@@ -861,8 +864,8 @@ theorem integral_zero' : integral μ (0 : α → G) = 0 :=
variable {α G}
-theorem integrable_of_integral_eq_one {f : α → ℝ} (h : ∫ x, f x ∂μ = 1) : Integrable f μ := by
- contrapose h; rw [integral_undef h]; exact zero_ne_one
+theorem integrable_of_integral_eq_one {f : α → ℝ} (h : ∫ x, f x ∂μ = 1) : Integrable f μ :=
+ .of_integral_ne_zero <| h ▸ one_ne_zero
#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
theorem integral_add {f g : α → G} (hf : Integrable f μ) (hg : Integrable g μ) :
Fintype
-> Finite
(#10289)
hasFiniteIntegral_of_fintype
to HasFiniteIntegral.of_finite
, generalize to [Finite α]
, golf.integrable_of_fintype
to Integrable.of_finite
, generalize to [Finite α]
.SimpleFunc.ofFintype
to SimpleFunc.ofFinite
, generalize to [Finite α]
, use it to golf SimpleFunc.ofIsEmpty
.stronglyMeasurable_of_fintype
to StronglyMeasurable.of_finite
, deprecate stronglyMeasurable_of_isEmpty
.@@ -1825,7 +1825,7 @@ theorem integral_fintype [MeasurableSingletonClass α] [Fintype α] (f : α →
(hf : Integrable f μ) :
∫ x, f x ∂μ = ∑ x, (μ {x}).toReal • f x := by
-- NB: Integrable f does not follow from Fintype, because the measure itself could be non-finite
- rw [← integral_finset .univ , Finset.coe_univ, Measure.restrict_univ]
+ rw [← integral_finset .univ, Finset.coe_univ, Measure.restrict_univ]
simp only [Finset.coe_univ, Measure.restrict_univ, hf]
theorem integral_unique [Unique α] (f : α → E) : ∫ x, f x ∂μ = (μ univ).toReal • f default :=
IsSeparable
API (#10286)
isSeparable_iUnion
to an Iff
lemma, restore the original version as IsSeparable.iUnion
;isSeparable_union
and isSeparable_closure
;isSeparable_pi
from [Finite ι]
to [Countable ι]
, add IsSeparable.univ_pi
version;Dense.isSeparable_iff
and isSeparable_range
;isSeparable_of_separableSpace_subtype
to IsSeparable.of_subtype
;isSeparable_of_separableSpace
to IsSeparable.of_separableSpace
.@@ -1448,7 +1448,7 @@ theorem tendsto_integral_norm_approxOn_sub [MeasurableSpace E] [BorelSpace E] {f
· simp
· apply (SimpleFunc.aestronglyMeasurable _).sub
apply (stronglyMeasurable_iff_measurable_separable.2 ⟨fmeas, ?_⟩ ).aestronglyMeasurable
- exact (isSeparable_of_separableSpace_subtype (range f ∪ {0})).mono (subset_union_left _ _)
+ exact .mono (.of_subtype (range f ∪ {0})) (subset_union_left _ _)
variable {ν : Measure α}
@@ -734,7 +734,7 @@ theorem nnnorm_Integral_le_one : ‖integralCLM (α := α) (E := E) (μ := μ)
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
calc
‖integral f‖ = ‖integralCLM (E := E) f‖ := by simp only [integral]
- _ ≤ ‖integralCLM (α := α) (E := E) (μ := μ)‖ * ‖f‖ := (le_op_norm _ _)
+ _ ≤ ‖integralCLM (α := α) (E := E) (μ := μ)‖ * ‖f‖ := (le_opNorm _ _)
_ ≤ 1 * ‖f‖ := (mul_le_mul_of_nonneg_right norm_Integral_le_one <| norm_nonneg _)
_ = ‖f‖ := one_mul _
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
@@ -1218,21 +1218,17 @@ theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x
theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f μ) (f_nn : 0 ≤ᵐ[μ] f) :
ENNReal.ofReal (∫ x, f x ∂μ) = ∫⁻ x, ENNReal.ofReal (f x) ∂μ := by
- simp_rw [integral_congr_ae (show f =ᵐ[μ] fun x => ‖f x‖ by
- filter_upwards [f_nn] with x hx
- rw [Real.norm_eq_abs, abs_eq_self.mpr hx]),
- ofReal_integral_norm_eq_lintegral_nnnorm hfi, ← ofReal_norm_eq_coe_nnnorm]
- apply lintegral_congr_ae
- filter_upwards [f_nn] with x hx
- exact congr_arg ENNReal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
+ have : f =ᵐ[μ] (‖f ·‖) := f_nn.mono fun _x hx ↦ (abs_of_nonneg hx).symm
+ simp_rw [integral_congr_ae this, ofReal_integral_norm_eq_lintegral_nnnorm hfi,
+ ← ofReal_norm_eq_coe_nnnorm]
+ exact lintegral_congr_ae (this.symm.fun_comp ENNReal.ofReal)
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
∫ a, (f a).toReal ∂μ = (∫⁻ a, f a ∂μ).toReal := by
- rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_toReal.aestronglyMeasurable]
- · rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
- intro x hx; rw [lt_top_iff_ne_top] at hx; simp [hx]
- · exact eventually_of_forall fun x => ENNReal.toReal_nonneg
+ rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_toReal.aestronglyMeasurable,
+ lintegral_congr_ae (ofReal_toReal_ae_eq hf)]
+ exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
theorem lintegral_coe_le_coe_iff_integral_le {f : α → ℝ≥0} (hfi : Integrable (fun x => (f x : ℝ)) μ)
@@ -1319,10 +1315,7 @@ theorem L1.dist_eq_integral_dist (f g : α →₁[μ] H) : dist f g = ∫ a, dis
theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
‖hf.toL1 f‖ = ∫ a, ‖f a‖ ∂μ := by
rw [L1.norm_eq_integral_norm]
- refine' integral_congr_ae _
- apply hf.coeFn_toL1.mono
- intro a ha
- simp_rw [ha]
+ exact integral_congr_ae <| hf.coeFn_toL1.fun_comp _
set_option linter.uppercaseLean3 false in
#align measure_theory.L1.norm_of_fun_eq_integral_norm MeasureTheory.L1.norm_of_fun_eq_integral_norm
@@ -1330,12 +1323,10 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
(hf : Memℒp f p μ) :
snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) := by
have A : ∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.toReal) ∂μ = ∫⁻ a : α, ‖f a‖₊ ^ p.toReal ∂μ := by
- apply lintegral_congr
- intro x
- rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm]
+ simp_rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm]
simp only [snorm_eq_lintegral_rpow_nnnorm hp1 hp2, one_div]
rw [integral_eq_lintegral_of_nonneg_ae]; rotate_left
- · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
+ · exact ae_of_all _ fun x => by positivity
· exact (hf.aestronglyMeasurable.norm.aemeasurable.pow_const _).aestronglyMeasurable
rw [A, ← ofReal_rpow_of_nonneg toReal_nonneg (inv_nonneg.2 toReal_nonneg), ofReal_toReal]
exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).ne
@@ -1377,17 +1368,15 @@ theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0
((hasFiniteIntegral_iff_ofReal hf).1 hfi.2).ne]
#align measure_theory.integral_mono_measure MeasureTheory.integral_mono_measure
-theorem norm_integral_le_integral_norm (f : α → G) : ‖∫ a, f a ∂μ‖ ≤ ∫ a, ‖f a‖ ∂μ :=
+theorem norm_integral_le_integral_norm (f : α → G) : ‖∫ a, f a ∂μ‖ ≤ ∫ a, ‖f a‖ ∂μ := by
have le_ae : ∀ᵐ a ∂μ, 0 ≤ ‖f a‖ := eventually_of_forall fun a => norm_nonneg _
- by_cases
- (fun h : AEStronglyMeasurable f μ =>
- calc
- ‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
- norm_integral_le_lintegral_norm _
- _ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm)
- fun h : ¬AEStronglyMeasurable f μ => by
- rw [integral_non_aestronglyMeasurable h, norm_zero]
- exact integral_nonneg_of_ae le_ae
+ by_cases h : AEStronglyMeasurable f μ
+ · calc
+ ‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
+ norm_integral_le_lintegral_norm _
+ _ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm
+ · rw [integral_non_aestronglyMeasurable h, norm_zero]
+ exact integral_nonneg_of_ae le_ae
#align measure_theory.norm_integral_le_integral_norm MeasureTheory.norm_integral_le_integral_norm
theorem norm_integral_le_of_norm_le {f : α → G} {g : α → ℝ} (hg : Integrable g μ)
rpow_nonneg_of_nonneg
to rpow_nonneg
(#9518)
This better matches other lemma names.
From LeanAPAP
@@ -1335,7 +1335,7 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm]
simp only [snorm_eq_lintegral_rpow_nnnorm hp1 hp2, one_div]
rw [integral_eq_lintegral_of_nonneg_ae]; rotate_left
- · exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
+ · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
· exact (hf.aestronglyMeasurable.norm.aemeasurable.pow_const _).aestronglyMeasurable
rw [A, ← ofReal_rpow_of_nonneg toReal_nonneg (inv_nonneg.2 toReal_nonneg), ofReal_toReal]
exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).ne
@@ -1730,9 +1730,9 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae,
integral_eq_lintegral_of_nonneg_ae]
rotate_left
- · exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
+ · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
· exact (hg.1.norm.aemeasurable.pow aemeasurable_const).aestronglyMeasurable
- · exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
+ · exact eventually_of_forall fun x => Real.rpow_nonneg (norm_nonneg _) _
· exact (hf.1.norm.aemeasurable.pow aemeasurable_const).aestronglyMeasurable
· exact eventually_of_forall fun x => mul_nonneg (norm_nonneg _) (norm_nonneg _)
· exact hf.1.norm.mul hg.1.norm
$
with <|
(#9319)
See Zulip thread for the discussion.
@@ -102,7 +102,7 @@ functions :
1. First go to the `L¹` space.
- For example, if you see `ENNReal.toReal (∫⁻ a, ENNReal.ofReal $ ‖f a‖)`, that is the norm of
+ For example, if you see `ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| ‖f a‖)`, that is the norm of
`f` in `L¹` space. Rewrite using `L1.norm_of_fun_eq_lintegral_norm`.
2. Show that the set `{f ∈ L¹ | ∫ f = ∫⁻ f⁺ - ∫⁻ f⁻}` is closed in `L¹` using `isClosed_eq`.
Nsmul
-> NSMul
, Zpow
-> ZPow
, etc (#9067)
Normalising to naming convention rule number 6.
@@ -155,7 +155,7 @@ namespace MeasureTheory
variable {α E F 𝕜 : Type*}
-section WeightedSmul
+section WeightedSMul
open ContinuousLinearMap
@@ -250,7 +250,7 @@ theorem weightedSMul_nonneg (s : Set α) (x : ℝ) (hx : 0 ≤ x) : 0 ≤ weight
exact mul_nonneg toReal_nonneg hx
#align measure_theory.weighted_smul_nonneg MeasureTheory.weightedSMul_nonneg
-end WeightedSmul
+end WeightedSMul
-- mathport name: «expr →ₛ »
local infixr:25 " →ₛ " => SimpleFunc
Define exponentially tilted measures. The exponential tilting of a measure μ
on α
by a function f : α → ℝ
is the measure with density x ↦ exp (f x) / ∫ y, exp (f y) ∂μ
with respect to μ
.
Co-authored-by: Rémy Degenne <remydegenne@gmail.com> Co-authored-by: RemyDegenne <remydegenne@gmail.com>
@@ -1291,6 +1291,14 @@ theorem integral_pos_iff_support_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi
integral_pos_iff_support_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_pos_iff_support_of_nonneg MeasureTheory.integral_pos_iff_support_of_nonneg
+lemma integral_exp_pos {μ : Measure α} {f : α → ℝ} [hμ : NeZero μ]
+ (hf : Integrable (fun x ↦ Real.exp (f x)) μ) :
+ 0 < ∫ x, Real.exp (f x) ∂μ := by
+ rw [integral_pos_iff_support_of_nonneg (fun x ↦ (Real.exp_pos _).le) hf]
+ suffices (Function.support fun x ↦ Real.exp (f x)) = Set.univ by simp [this, hμ.out]
+ ext1 x
+ simp only [Function.mem_support, ne_eq, (Real.exp_pos _).ne', not_false_eq_true, Set.mem_univ]
+
section NormedAddCommGroup
variable {H : Type*} [NormedAddCommGroup H]
We give a formula measure_unitBall_eq_integral_div_gamma
for computing the volume of the unit ball
in a normed finite dimensional ℝ
-vector space E
with an Haar measure:
theorem measure_unitBall_eq_integral_div_gamma {E : Type*} {p : ℝ}
[NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] [MeasurableSpace E]
[BorelSpace E] (μ : Measure E) [IsAddHaarMeasure μ] (hp : 0 < p) :
μ (Metric.ball 0 1) =
ENNReal.ofReal ((∫ (x : E), Real.exp (- ‖x‖ ^ p) ∂μ) / Real.Gamma (finrank ℝ E / p + 1))
We also provide a theorem measure_lt_one_eq_integral_div_gamma
to compute the volume of the ball {x : E | g x < 1}
for a function g : E → ℝ
defining a norm.
theorem measure_lt_one_eq_integral_div_gamma {E : Type*}
[AddCommGroup E] [Module ℝ E] [FiniteDimensional ℝ E] [mE : MeasurableSpace E]
[tE : TopologicalSpace E] [TopologicalAddGroup E] [BorelSpace E] [T2Space E]
[ContinuousSMul ℝ E] (μ : Measure E) [IsAddHaarMeasure μ]
{g : E → ℝ} (hg0 : g 0 = 0) (hgn : ∀ x, g (- x) = g x) (hgt : ∀ x y, g (x + y) ≤ g x + g y)
(hgs : ∀ {x}, g x = 0 → x = 0) (hns : ∀ r x, g (r • x) ≤ |r| * (g x)) {p : ℝ} (hp : 0 < p) :
μ {x : E | g x < 1} =
ENNReal.ofReal ((∫ (x : E), Real.exp (- (g x) ^ p) ∂μ) / Real.Gamma (finrank ℝ E / p + 1))
This provides a way to compute the volume of the unit ball for the norms L_p
for 1 ≤ p
in any dimension over the reals MeasureTheory.volume_sum_rpow_lt_one
and the complex Complex.volume_sum_rpow_lt_one
.
variable (ι : Type*) [Fintype ι] {p : ℝ} (hp : 1 ≤ p)
theorem volume_sum_rpow_lt_one :
volume {x : ι → ℝ | ∑ i, |x i| ^ p < 1} =
ENNReal.ofReal ((2 * Real.Gamma (1 / p + 1)) ^ card ι / Real.Gamma (card ι / p + 1))
theorem Complex.volume_sum_rpow_lt_one {p : ℝ} (hp : 1 ≤ p) :
volume {x : ι → ℂ | ∑ i, ‖x i‖ ^ p < 1} =
ENNReal.ofReal ((π * Real.Gamma (2 / p + 1)) ^ card ι / Real.Gamma (2 * card ι / p + 1))
From these, we deduce the volume of balls in several situations.
--
Other significant changes include:
MeasurePreserving.integral_comp'
: when the theorem MeasurePreserving.integral_comp
is used with f
a measurable equiv, it is necessary to specify that it is a measurable embedding although it is trivial in this case. This version bypasses this hypothesisℂ
and in EuclideanSpace ℝ (Fin 2)
which are now done with the methods of the file VolumeOfBalls
have been moved to this file.Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
@@ -1646,6 +1646,10 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
+theorem MeasurePreserving.integral_comp' {β} [MeasurableSpace β] {ν} {f : α ≃ᵐ β}
+ (h : MeasurePreserving f μ ν) (g : β → G) :
+ ∫ x, g (f x) ∂μ = ∫ y, g y ∂ν := MeasurePreserving.integral_comp h f.measurableEmbedding _
+
theorem integral_subtype_comap {α} [MeasurableSpace α] {μ : Measure α} {s : Set α}
(hs : MeasurableSet s) (f : α → G) :
∫ x : s, f (x : α) ∂(Measure.comap Subtype.val μ) = ∫ x in s, f x ∂μ := by
@@ -1015,7 +1015,7 @@ theorem tendsto_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F :
set_option linter.uppercaseLean3 false in
#align measure_theory.tendsto_integral_of_L1 MeasureTheory.tendsto_integral_of_L1
-/-- Lebesgue dominated convergence theorem provides sufficient conditions under which almost
+/-- **Lebesgue dominated convergence theorem** provides sufficient conditions under which almost
everywhere convergence of a sequence of functions implies the convergence of their integrals.
We could weaken the condition `bound_integrable` to require `HasFiniteIntegral bound μ` instead
(i.e. not requiring that `bound` is measurable), but in all applications proving integrability
This is the supremum of
along with some minor fixes from failures on nightly-testing as Mathlib master
is merged into it.
Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.
I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0
branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.
In particular this includes adjustments for the Lean PRs
We can get rid of all the
local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)
macros across Mathlib (and in any projects that want to write natural number powers of reals).
Changes the default behaviour of simp
to (config := {decide := false})
. This makes simp
(and consequentially norm_num
) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp
or norm_num
to decide
or rfl
, or adding (config := {decide := true})
.
This changed the behaviour of simp
so that simp [f]
will only unfold "fully applied" occurrences of f
. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true })
. We may in future add a syntax for this, e.g. simp [!f]
; please provide feedback! In the meantime, we have made the following changes:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[eqns]
to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp
and Function.flip
.This change in Lean may require further changes down the line (e.g. adding the !f
syntax, and/or upstreaming the special treatment for Function.comp
and Function.flip
, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!
Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>
@@ -1265,7 +1265,7 @@ theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : ∫ a, f a ∂μ ≤ 0
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 := by
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
- ← ENNReal.not_lt_top, ← hasFiniteIntegral_iff_ofReal hf, hfi.2, or_false_iff]
+ ← ENNReal.not_lt_top, ← hasFiniteIntegral_iff_ofReal hf, hfi.2, not_true_eq_false, or_false_iff]
-- Porting note: split into parts, to make `rw` and `simp` work
rw [lintegral_eq_zero_iff']
· rw [← hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLE]
@@ -1324,17 +1324,13 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
have A : ∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.toReal) ∂μ = ∫⁻ a : α, ‖f a‖₊ ^ p.toReal ∂μ := by
apply lintegral_congr
intro x
- rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm,
- -- Porting note: Here and below `ENNReal.coe_rpow_of_nonneg` was not needed
- ← ENNReal.coe_rpow_of_nonneg _ toReal_nonneg]
+ rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm]
simp only [snorm_eq_lintegral_rpow_nnnorm hp1 hp2, one_div]
rw [integral_eq_lintegral_of_nonneg_ae]; rotate_left
· exact eventually_of_forall fun x => Real.rpow_nonneg_of_nonneg (norm_nonneg _) _
· exact (hf.aestronglyMeasurable.norm.aemeasurable.pow_const _).aestronglyMeasurable
rw [A, ← ofReal_rpow_of_nonneg toReal_nonneg (inv_nonneg.2 toReal_nonneg), ofReal_toReal]
- · simp_rw [← ENNReal.coe_rpow_of_nonneg _ toReal_nonneg]
- · simp_rw [← ENNReal.coe_rpow_of_nonneg _ toReal_nonneg]
- exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).ne
+ exact (lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp1 hp2 hf.2).ne
#align measure_theory.mem_ℒp.snorm_eq_integral_rpow_norm MeasureTheory.Memℒp.snorm_eq_integral_rpow_norm
end NormedAddCommGroup
Subtype.measureSpace
(#8381)
Currently, a subtype of a MeasureSpace
has a MeasureSpace
instance, obtained by restricting the initial measure. There are however other reasonable constructions, like the normalized restriction for a probability measure, or the subspace measure when restricting to a vector subspace. We disable the global instance Subtype.measureSpace
to make these other choices possible, as discussed on Zulip.
It turns out that this instance was duplicated in SetCoe.measureSpace
, so we delete the other one.
@@ -1656,6 +1656,7 @@ theorem integral_subtype_comap {α} [MeasurableSpace α] {μ : Measure α} {s :
rw [← map_comap_subtype_coe hs]
exact ((MeasurableEmbedding.subtype_coe hs).integral_map _).symm
+attribute [local instance] Measure.Subtype.measureSpace in
theorem integral_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s) (f : α → G) :
∫ x : s, f x = ∫ x in s, f x := integral_subtype_comap hs f
#align measure_theory.set_integral_eq_subtype MeasureTheory.integral_subtype
summable_of_norm_bounded
-> Summable.of_norm_bounded
;summable_of_norm_bounded_eventually
-> Summable.of_norm_bounded_eventually
;summable_of_nnnorm_bounded
-> Summable.of_nnnorm_bounded
;summable_of_summable_norm
-> Summable.of_norm
;summable_of_summable_nnnorm
-> Summable.of_nnnorm
;Summable.of_norm_bounded_eventually_nat
Summable.norm
@@ -1564,7 +1564,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → G} (hf : ∀ i, AES
filter_upwards [hhh] with a ha
exact ENNReal.coe_tsum (NNReal.summable_coe.mp ha)
· filter_upwards [hhh] with x hx
- exact (summable_of_summable_norm hx).hasSum
+ exact hx.of_norm.hasSum
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
@[simp]
@@ -1584,6 +1584,11 @@ theorem integral_smul_measure (f : α → G) (c : ℝ≥0∞) :
exact setToFun_congr_left' _ _ (fun s _ _ => weightedSMul_smul_measure μ c) f
#align measure_theory.integral_smul_measure MeasureTheory.integral_smul_measure
+@[simp]
+theorem integral_smul_nnreal_measure (f : α → G) (c : ℝ≥0) :
+ ∫ x, f x ∂(c • μ) = c • ∫ x, f x ∂μ :=
+ integral_smul_measure f (c : ℝ≥0∞)
+
theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α → β} (hφ : Measurable φ)
{f : β → G} (hfm : StronglyMeasurable f) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ := by
by_cases hG : CompleteSpace G; swap
set_lintegral_subtype
(#7679)
MeasureTheory.set_lintegral_eq_subtype
and
MeasureTheory.set_lintegral_subtype
.MeasurableEmbedding.comap_map
,
MeasurableEmbedding.comap_restrict
, and
MeasurableEmbedding.restrict_comap
.MeasurableEmbedding.comap_preimage
.@@ -1645,15 +1645,15 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
-theorem set_integral_eq_subtype' {α} [MeasurableSpace α] {μ : Measure α} {s : Set α}
+theorem integral_subtype_comap {α} [MeasurableSpace α] {μ : Measure α} {s : Set α}
(hs : MeasurableSet s) (f : α → G) :
- ∫ x in s, f x ∂μ = ∫ x : s, f (x : α) ∂(Measure.comap Subtype.val μ) := by
+ ∫ x : s, f (x : α) ∂(Measure.comap Subtype.val μ) = ∫ x in s, f x ∂μ := by
rw [← map_comap_subtype_coe hs]
- exact (MeasurableEmbedding.subtype_coe hs).integral_map _
+ exact ((MeasurableEmbedding.subtype_coe hs).integral_map _).symm
-theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → G) : ∫ x in s, f x = ∫ x : s, f x := set_integral_eq_subtype' hs f
-#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
+theorem integral_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s) (f : α → G) :
+ ∫ x : s, f x = ∫ x in s, f x := integral_subtype_comap hs f
+#align measure_theory.set_integral_eq_subtype MeasureTheory.integral_subtype
@[simp]
theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : StronglyMeasurable f) :
@@ -1806,7 +1806,7 @@ theorem integral_countable [MeasurableSingletonClass α] (f : α → E) {s : Set
· exact Integrable.aestronglyMeasurable hf
· exact Measurable.aemeasurable measurable_subtype_coe
· exact Countable.measurableSet hs
- rw [set_integral_eq_subtype' hs.measurableSet, integral_countable' hf']
+ rw [← integral_subtype_comap hs.measurableSet, integral_countable' hf']
congr 1 with a : 1
rw [Measure.comap_apply Subtype.val Subtype.coe_injective
(fun s' hs' => MeasurableSet.subtype_image (Countable.measurableSet hs) hs') _
@@ -724,10 +724,13 @@ local notation "Integral" => @integralCLM α E _ _ μ _ _
-- mathport name: simple_func.integral_clm'
local notation "sIntegral" => @SimpleFunc.integralCLM α E _ _ μ _
-theorem norm_Integral_le_one : ‖integralCLM (α := α) (E := E) (μ := μ)‖ ≤ (1 : ℝ) :=
+theorem norm_Integral_le_one : ‖integralCLM (α := α) (E := E) (μ := μ)‖ ≤ 1 :=
norm_setToL1_le (dominatedFinMeasAdditive_weightedSMul μ) zero_le_one
#align measure_theory.L1.norm_Integral_le_one MeasureTheory.L1.norm_Integral_le_one
+theorem nnnorm_Integral_le_one : ‖integralCLM (α := α) (E := E) (μ := μ)‖₊ ≤ 1 :=
+ norm_Integral_le_one
+
theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
calc
‖integral f‖ = ‖integralCLM (E := E) f‖ := by simp only [integral]
@@ -736,6 +739,9 @@ theorem norm_integral_le (f : α →₁[μ] E) : ‖integral f‖ ≤ ‖f‖ :=
_ = ‖f‖ := one_mul _
#align measure_theory.L1.norm_integral_le MeasureTheory.L1.norm_integral_le
+theorem nnnorm_integral_le (f : α →₁[μ] E) : ‖integral f‖₊ ≤ ‖f‖₊ :=
+ norm_integral_le f
+
@[continuity]
theorem continuous_integral : Continuous fun f : α →₁[μ] E => integral f := by
simp only [integral]
@@ -967,7 +973,8 @@ theorem norm_integral_le_lintegral_norm (f : α → G) :
theorem ennnorm_integral_le_lintegral_ennnorm (f : α → G) :
(‖∫ a, f a ∂μ‖₊ : ℝ≥0∞) ≤ ∫⁻ a, ‖f a‖₊ ∂μ := by
- simp_rw [← ofReal_norm_eq_coe_nnnorm]; apply ENNReal.ofReal_le_of_le_toReal
+ simp_rw [← ofReal_norm_eq_coe_nnnorm]
+ apply ENNReal.ofReal_le_of_le_toReal
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
Due to recent changes in core we can reduce or remove many set_option maxHeartbeats
statements.
I have tried to be careful to not leave anything too close to the line, so don't be surprised if some of these can still be reduced further.
This reduces us from 96 maxHeartbeats
statements to 44
. (There are 10 false positives in meta or testing code.)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -539,12 +539,6 @@ theorem integral_add (f g : α →₁ₛ[μ] E) : integral (f + g) = integral f
setToL1S_add _ (fun _ _ => weightedSMul_null) weightedSMul_union _ _
#align measure_theory.L1.simple_func.integral_add MeasureTheory.L1.SimpleFunc.integral_add
--- Porting note: finding `SMul 𝕜 (Lp.simpleFunc E 1 μ)` takes about twice the default
--- `synthInstance.maxHeartbeats 20000`, so we provide some shortcut instances to speed it up.
-instance : Module 𝕜 (Lp.simpleFunc E 1 μ) := inferInstance in
-instance : MulActionWithZero 𝕜 (Lp.simpleFunc E 1 μ) := inferInstance in
-instance : SMul 𝕜 (Lp.simpleFunc E 1 μ) := inferInstance
-
theorem integral_smul (c : 𝕜) (f : α →₁ₛ[μ] E) : integral (c • f) = c • integral f :=
setToL1S_smul _ (fun _ _ => weightedSMul_null) weightedSMul_union weightedSMul_smul c f
#align measure_theory.L1.simple_func.integral_smul MeasureTheory.L1.SimpleFunc.integral_smul
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -590,7 +590,7 @@ theorem posPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
have eq : ∀ a, (toSimpleFunc f).posPart a = max ((toSimpleFunc f) a) 0 := fun a => rfl
have ae_eq : ∀ᵐ a ∂μ, toSimpleFunc (posPart f) a = max ((toSimpleFunc f) a) 0 := by
filter_upwards [toSimpleFunc_eq_toFun (posPart f), Lp.coeFn_posPart (f : α →₁[μ] ℝ),
- toSimpleFunc_eq_toFun f]with _ _ h₂ h₃
+ toSimpleFunc_eq_toFun f] with _ _ h₂ h₃
convert h₂ using 1
-- Porting note: added
rw [h₃]
@@ -612,19 +612,19 @@ theorem negPart_toSimpleFunc (f : α →₁ₛ[μ] ℝ) :
theorem integral_eq_norm_posPart_sub (f : α →₁ₛ[μ] ℝ) : integral f = ‖posPart f‖ - ‖negPart f‖ := by
-- Convert things in `L¹` to their `SimpleFunc` counterpart
have ae_eq₁ : (toSimpleFunc f).posPart =ᵐ[μ] (toSimpleFunc (posPart f)).map norm := by
- filter_upwards [posPart_toSimpleFunc f]with _ h
+ filter_upwards [posPart_toSimpleFunc f] with _ h
rw [SimpleFunc.map_apply, h]
conv_lhs => rw [← SimpleFunc.posPart_map_norm, SimpleFunc.map_apply]
-- Convert things in `L¹` to their `SimpleFunc` counterpart
have ae_eq₂ : (toSimpleFunc f).negPart =ᵐ[μ] (toSimpleFunc (negPart f)).map norm := by
- filter_upwards [negPart_toSimpleFunc f]with _ h
+ filter_upwards [negPart_toSimpleFunc f] with _ h
rw [SimpleFunc.map_apply, h]
conv_lhs => rw [← SimpleFunc.negPart_map_norm, SimpleFunc.map_apply]
rw [integral, norm_eq_integral, norm_eq_integral, ← SimpleFunc.integral_sub]
· show (toSimpleFunc f).integral μ =
((toSimpleFunc (posPart f)).map norm - (toSimpleFunc (negPart f)).map norm).integral μ
apply MeasureTheory.SimpleFunc.integral_congr (SimpleFunc.integrable f)
- filter_upwards [ae_eq₁, ae_eq₂]with _ h₁ h₂
+ filter_upwards [ae_eq₁, ae_eq₂] with _ h₁ h₂
show _ = _ - _
rw [← h₁, ← h₂]
have := (toSimpleFunc f).posPart_sub_negPart
@@ -1133,7 +1133,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
- filter_upwards [Lp.coeFn_posPart f₁, hf.coeFn_toL1]with _ h₁ h₂
+ filter_upwards [Lp.coeFn_posPart f₁, hf.coeFn_toL1] with _ h₁ h₂
rw [h₁, h₂, ENNReal.ofReal]
congr 1
apply NNReal.eq
@@ -1144,7 +1144,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
- filter_upwards [Lp.coeFn_negPart f₁, hf.coeFn_toL1]with _ h₁ h₂
+ filter_upwards [Lp.coeFn_negPart f₁, hf.coeFn_toL1] with _ h₁ h₂
rw [h₁, h₂, ENNReal.ofReal]
congr 1
apply NNReal.eq
@@ -1218,11 +1218,11 @@ theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x
theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f μ) (f_nn : 0 ≤ᵐ[μ] f) :
ENNReal.ofReal (∫ x, f x ∂μ) = ∫⁻ x, ENNReal.ofReal (f x) ∂μ := by
simp_rw [integral_congr_ae (show f =ᵐ[μ] fun x => ‖f x‖ by
- filter_upwards [f_nn]with x hx
+ filter_upwards [f_nn] with x hx
rw [Real.norm_eq_abs, abs_eq_self.mpr hx]),
ofReal_integral_norm_eq_lintegral_nnnorm hfi, ← ofReal_norm_eq_coe_nnnorm]
apply lintegral_congr_ae
- filter_upwards [f_nn]with x hx
+ filter_upwards [f_nn] with x hx
exact congr_arg ENNReal.ofReal (by rw [Real.norm_eq_abs, abs_eq_self.mpr hx])
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
@@ -1560,9 +1560,9 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → G} (hf : ∀ i, AES
convert this using 1
apply lintegral_congr_ae
simp_rw [← coe_nnnorm, ← NNReal.coe_tsum, NNReal.nnnorm_eq]
- filter_upwards [hhh]with a ha
+ filter_upwards [hhh] with a ha
exact ENNReal.coe_tsum (NNReal.summable_coe.mp ha)
- · filter_upwards [hhh]with x hx
+ · filter_upwards [hhh] with x hx
exact (summable_of_summable_norm hx).hasSum
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
@@ -1762,15 +1762,15 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
∫ a, f a * g a ∂μ ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) := by
have h_left : ∫ a, f a * g a ∂μ = ∫ a, ‖f a‖ * ‖g a‖ ∂μ := by
refine' integral_congr_ae _
- filter_upwards [hf_nonneg, hg_nonneg]with x hxf hxg
+ filter_upwards [hf_nonneg, hg_nonneg] with x hxf hxg
rw [Real.norm_of_nonneg hxf, Real.norm_of_nonneg hxg]
have h_right_f : ∫ a, f a ^ p ∂μ = ∫ a, ‖f a‖ ^ p ∂μ := by
refine' integral_congr_ae _
- filter_upwards [hf_nonneg]with x hxf
+ filter_upwards [hf_nonneg] with x hxf
rw [Real.norm_of_nonneg hxf]
have h_right_g : ∫ a, g a ^ q ∂μ = ∫ a, ‖g a‖ ^ q ∂μ := by
refine' integral_congr_ae _
- filter_upwards [hg_nonneg]with x hxg
+ filter_upwards [hg_nonneg] with x hxg
rw [Real.norm_of_nonneg hxg]
rw [h_left, h_right_f, h_right_g]
exact integral_mul_norm_le_Lp_mul_Lq hpq hf hg
@@ -1949,9 +1949,9 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
rw [integral_neg, neg_eq_zero]
exact le_antisymm (integral_nonpos_of_ae hf) hfint'
have := (integral_eq_zero_iff_of_nonneg_ae ?_ hfint.neg).1 hnegf
- · filter_upwards [this]with ω hω
+ · filter_upwards [this] with ω hω
rwa [Pi.neg_apply, Pi.zero_apply, neg_eq_zero] at hω
- · filter_upwards [hf]with ω hω
+ · filter_upwards [hf] with ω hω
rwa [Pi.zero_apply, Pi.neg_apply, Right.nonneg_neg_iff]
by_cases hμ : IsFiniteMeasure μ
swap
@@ -1967,7 +1967,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
have hposbdd : ∫ ω, max (f ω) 0 ∂μ ≤ (μ Set.univ).toReal • (r : ℝ) := by
rw [← integral_const]
refine' integral_mono_ae hfint.real_toNNReal (integrable_const (r : ℝ)) _
- filter_upwards [hf]with ω hω using Real.toNNReal_le_iff_le_coe.2 hω
+ filter_upwards [hf] with ω hω using Real.toNNReal_le_iff_le_coe.2 hω
rw [Memℒp.snorm_eq_integral_rpow_norm one_ne_zero ENNReal.one_ne_top
(memℒp_one_iff_integrable.2 hfint),
ENNReal.ofReal_le_iff_le_toReal
@@ -1987,7 +1987,7 @@ theorem snorm_one_le_of_le' {r : ℝ} {f : α → ℝ} (hfint : Integrable f μ)
(hf : ∀ᵐ ω ∂μ, f ω ≤ r) : snorm f 1 μ ≤ 2 * μ Set.univ * ENNReal.ofReal r := by
refine' snorm_one_le_of_le hfint hfint' _
simp only [Real.coe_toNNReal', le_max_iff]
- filter_upwards [hf]with ω hω using Or.inl hω
+ filter_upwards [hf] with ω hω using Or.inl hω
#align measure_theory.snorm_one_le_of_le' MeasureTheory.snorm_one_le_of_le'
end SnormBound
MeasureTheory.mul_meas_ge_le_integral_of_nonneg
.[IsFiniteMeasure μ]
.0 ≤ᵐ[μ] f
instead of 0 ≤ f
.@@ -1690,33 +1690,18 @@ theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f
· exact integral_zero_measure _
#align measure_theory.set_integral_dirac MeasureTheory.set_integral_dirac
-theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ} (hf_nonneg : 0 ≤ f)
+/-- **Markov's inequality** also known as **Chebyshev's first inequality**. -/
+theorem mul_meas_ge_le_integral_of_nonneg {f : α → ℝ} (hf_nonneg : 0 ≤ᵐ[μ] f)
(hf_int : Integrable f μ) (ε : ℝ) : ε * (μ { x | ε ≤ f x }).toReal ≤ ∫ x, f x ∂μ := by
- cases' lt_or_le ε 0 with hε hε
- · exact
- (mul_nonpos_of_nonpos_of_nonneg hε.le ENNReal.toReal_nonneg).trans (integral_nonneg hf_nonneg)
- rw [integral_eq_lintegral_of_nonneg_ae (eventually_of_forall fun x => hf_nonneg x)
- hf_int.aestronglyMeasurable,
- ← ENNReal.toReal_ofReal hε, ← ENNReal.toReal_mul]
- have : { x : α | (ENNReal.ofReal ε).toReal ≤ f x } =
- { x : α | ENNReal.ofReal ε ≤ (fun x => ENNReal.ofReal (f x)) x } := by
- ext1 x
- rw [Set.mem_setOf_eq, Set.mem_setOf_eq, ← ENNReal.toReal_ofReal (hf_nonneg x)]
- exact ENNReal.toReal_le_toReal ENNReal.ofReal_ne_top ENNReal.ofReal_ne_top
- rw [this]
- have h_meas : AEMeasurable (fun x => ENNReal.ofReal (f x)) μ :=
- measurable_id'.ennreal_ofReal.comp_aemeasurable hf_int.aemeasurable
- have h_mul_meas_le := @mul_meas_ge_le_lintegral₀ _ _ μ _ h_meas (ENNReal.ofReal ε)
- rw [ENNReal.toReal_le_toReal _ _]
- · exact h_mul_meas_le
- · simp only [Ne.def, ENNReal.mul_eq_top, ENNReal.ofReal_eq_zero, not_le,
- ENNReal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
- exact fun _ => measure_ne_top _ _
- · have h_lt_top : ∫⁻ a, ‖f a‖₊ ∂μ < ∞ := hf_int.hasFiniteIntegral
- simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
- convert h_lt_top.ne
- rename_i x
- rw [abs_of_nonneg (hf_nonneg x)]
+ cases' eq_top_or_lt_top (μ {x | ε ≤ f x}) with hμ hμ
+ · simpa [hμ] using integral_nonneg_of_ae hf_nonneg
+ · have := Fact.mk hμ
+ calc
+ ε * (μ { x | ε ≤ f x }).toReal = ∫ _ in {x | ε ≤ f x}, ε ∂μ := by simp [mul_comm]
+ _ ≤ ∫ x in {x | ε ≤ f x}, f x ∂μ :=
+ integral_mono_ae (integrable_const _) (hf_int.mono_measure μ.restrict_le_self) <|
+ ae_restrict_mem₀ <| hf_int.aemeasurable.nullMeasurable measurableSet_Ici
+ _ ≤ _ := integral_mono_measure μ.restrict_le_self hf_nonneg hf_int
#align measure_theory.mul_meas_ge_le_integral_of_nonneg MeasureTheory.mul_meas_ge_le_integral_of_nonneg
/-- Hölder's inequality for the integral of a product of norms. The integral of the product of two
@@ -1379,7 +1379,7 @@ theorem norm_integral_le_integral_norm (f : α → G) : ‖∫ a, f a ∂μ‖
calc
‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) :=
norm_integral_le_lintegral_norm _
- _ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm )
+ _ = ∫ a, ‖f a‖ ∂μ := (integral_eq_lintegral_of_nonneg_ae le_ae <| h.norm).symm)
fun h : ¬AEStronglyMeasurable f μ => by
rw [integral_non_aestronglyMeasurable h, norm_zero]
exact integral_nonneg_of_ae le_ae
@@ -1646,8 +1646,7 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
theorem set_integral_eq_subtype' {α} [MeasurableSpace α] {μ : Measure α} {s : Set α}
(hs : MeasurableSet s) (f : α → G) :
- ∫ x in s, f x ∂μ =
- ∫ x : s, f (x : α) ∂(Measure.comap Subtype.val μ):= by
+ ∫ x in s, f x ∂μ = ∫ x : s, f (x : α) ∂(Measure.comap Subtype.val μ) := by
rw [← map_comap_subtype_coe hs]
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
We already have the strong law of large numbers for real-valued integrable random variables. We generalize it to general vector-valued integrable random variables. This does not require any second-countability assumptions as integrable functions can by definition be approximated by simple functions, for which the result is deduced from the one-dimensional one.
Along the way, we extend a few lemmas in the library from the real case to the vector case, and remove unneeded second-countability assumptions.
@@ -1445,6 +1445,17 @@ theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace
exact eventually_of_forall fun x => subset_closure (hs (Set.mem_union_left _ (mem_range_self _)))
#align measure_theory.tendsto_integral_approx_on_of_measurable_of_range_subset MeasureTheory.tendsto_integral_approxOn_of_measurable_of_range_subset
+theorem tendsto_integral_norm_approxOn_sub [MeasurableSpace E] [BorelSpace E] {f : α → E}
+ (fmeas : Measurable f) (hf : Integrable f μ) [SeparableSpace (range f ∪ {0} : Set E)] :
+ Tendsto (fun n ↦ ∫ x, ‖SimpleFunc.approxOn f fmeas (range f ∪ {0}) 0 (by simp) n x - f x‖ ∂μ)
+ atTop (𝓝 0) := by
+ convert (tendsto_toReal zero_ne_top).comp (tendsto_approxOn_range_L1_nnnorm fmeas hf) with n
+ rw [integral_norm_eq_lintegral_nnnorm]
+ · simp
+ · apply (SimpleFunc.aestronglyMeasurable _).sub
+ apply (stronglyMeasurable_iff_measurable_separable.2 ⟨fmeas, ?_⟩ ).aestronglyMeasurable
+ exact (isSeparable_of_separableSpace_subtype (range f ∪ {0})).mono (subset_union_left _ _)
+
variable {ν : Measure α}
theorem integral_add_measure {f : α → G} (hμ : Integrable f μ) (hν : Integrable f ν) :
The main result is that the integral (i.e. the expected value) with regard to a
measure derived from a Pmf
is a sum weighted by the Pmf
.
It also provides the expected value for specific probability mass functions (bernoulli so far).
@@ -1782,27 +1782,27 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
set_option linter.uppercaseLean3 false in
#align measure_theory.integral_mul_le_Lp_mul_Lq_of_nonneg MeasureTheory.integral_mul_le_Lp_mul_Lq_of_nonneg
-theorem integral_countable' [Countable α] [MeasurableSingletonClass α] {μ : Measure α} {f : α → ℝ}
- (hf : Integrable f μ) :
- ∫ a, f a ∂μ = ∑' a, f a * (μ {a}).toReal := by
+theorem integral_countable' [Countable α] [MeasurableSingletonClass α] {μ : Measure α}
+ {f : α → E} (hf : Integrable f μ) :
+ ∫ a, f a ∂μ = ∑' a, (μ {a}).toReal • f a := by
rw [← Measure.sum_smul_dirac μ] at hf
rw [← Measure.sum_smul_dirac μ, integral_sum_measure hf]
congr 1 with a : 1
- rw [integral_smul_measure, integral_dirac, mul_comm, smul_eq_mul, Measure.sum_smul_dirac]
+ rw [integral_smul_measure, integral_dirac, Measure.sum_smul_dirac]
-theorem integral_singleton' {μ : Measure α} {f : α → ℝ} (hf : StronglyMeasurable f) (a : α) :
- ∫ a in {a}, f a ∂μ = f a * (μ {a}).toReal := by
+theorem integral_singleton' {μ : Measure α} {f : α → E} (hf : StronglyMeasurable f) (a : α) :
+ ∫ a in {a}, f a ∂μ = (μ {a}).toReal • f a := by
simp only [Measure.restrict_singleton, integral_smul_measure, integral_dirac' f a hf, smul_eq_mul,
mul_comm]
-theorem integral_singleton [MeasurableSingletonClass α] {μ : Measure α} (f : α → ℝ) (a : α) :
- ∫ a in {a}, f a ∂μ = f a * (μ {a}).toReal := by
+theorem integral_singleton [MeasurableSingletonClass α] {μ : Measure α} (f : α → E) (a : α) :
+ ∫ a in {a}, f a ∂μ = (μ {a}).toReal • f a := by
simp only [Measure.restrict_singleton, integral_smul_measure, integral_dirac, smul_eq_mul,
mul_comm]
-theorem integral_countable [MeasurableSingletonClass α] (f : α → ℝ)
- {s : Set α} (hs : s.Countable) (hf : Integrable f (μ.restrict s)) :
- ∫ a in s, f a ∂μ = ∑' a : s, f a * (μ {(a : α)}).toReal := by
+theorem integral_countable [MeasurableSingletonClass α] (f : α → E) {s : Set α} (hs : s.Countable)
+ (hf : Integrable f (μ.restrict s)) :
+ ∫ a in s, f a ∂μ = ∑' a : s, (μ {(a : α)}).toReal • f a := by
have hi : Countable { x // x ∈ s } := Iff.mpr countable_coe_iff hs
have hf' : Integrable (fun (x : s) => f x) (Measure.comap Subtype.val μ) := by
rw [← map_comap_subtype_coe, integrable_map_measure] at hf
@@ -1817,22 +1817,22 @@ theorem integral_countable [MeasurableSingletonClass α] (f : α → ℝ)
(MeasurableSet.singleton a)]
simp
-theorem integral_finset [MeasurableSingletonClass α] (s : Finset α) (f : α → ℝ)
+theorem integral_finset [MeasurableSingletonClass α] (s : Finset α) (f : α → E)
(hf : Integrable f (μ.restrict s)) :
- ∫ x in s, f x ∂μ = ∑ x in s, f x * (μ {x}).toReal := by
+ ∫ x in s, f x ∂μ = ∑ x in s, (μ {x}).toReal • f x := by
rw [integral_countable _ s.countable_toSet hf, ← Finset.tsum_subtype']
-theorem integral_fintype [MeasurableSingletonClass α] [Fintype α] (f : α → ℝ)
+theorem integral_fintype [MeasurableSingletonClass α] [Fintype α] (f : α → E)
(hf : Integrable f μ) :
- ∫ x, f x ∂μ = ∑ x, f x * (μ {x}).toReal := by
+ ∫ x, f x ∂μ = ∑ x, (μ {x}).toReal • f x := by
-- NB: Integrable f does not follow from Fintype, because the measure itself could be non-finite
rw [← integral_finset .univ , Finset.coe_univ, Measure.restrict_univ]
simp only [Finset.coe_univ, Measure.restrict_univ, hf]
-theorem integral_unique [Unique α] (f : α → ℝ) : ∫ x, f x ∂μ = f default * (μ univ).toReal :=
+theorem integral_unique [Unique α] (f : α → E) : ∫ x, f x ∂μ = (μ univ).toReal • f default :=
calc
∫ x, f x ∂μ = ∫ _, f default ∂μ := by congr with x; congr; exact Unique.uniq _ x
- _ = f default * (μ univ).toReal := by rw [integral_const, smul_eq_mul, mul_comm]
+ _ = (μ univ).toReal • f default := by rw [integral_const]
end Properties
@@ -1793,12 +1793,12 @@ theorem integral_countable' [Countable α] [MeasurableSingletonClass α] {μ : M
theorem integral_singleton' {μ : Measure α} {f : α → ℝ} (hf : StronglyMeasurable f) (a : α) :
∫ a in {a}, f a ∂μ = f a * (μ {a}).toReal := by
simp only [Measure.restrict_singleton, integral_smul_measure, integral_dirac' f a hf, smul_eq_mul,
- mul_comm]
+ mul_comm]
theorem integral_singleton [MeasurableSingletonClass α] {μ : Measure α} (f : α → ℝ) (a : α) :
∫ a in {a}, f a ∂μ = f a * (μ {a}).toReal := by
simp only [Measure.restrict_singleton, integral_smul_measure, integral_dirac, smul_eq_mul,
- mul_comm]
+ mul_comm]
theorem integral_countable [MeasurableSingletonClass α] (f : α → ℝ)
{s : Set α} (hs : s.Countable) (hf : Integrable f (μ.restrict s)) :
This adds some lemmas about integral
where we already have the corresponding
lemmas for lintegral
. The goal is integral_fintype
, which rewrites an
integral over a finite type as a finite sum over the elements, with singleton
measures (these singleton measures can then further be simplified when the
measure comes from a Pmf
, but that will follow some other time.).
Also fixes lemma name integral_eq_lintegral_pos_part_sub_lintegral_neg_part
in
the module comments.
@@ -68,7 +68,8 @@ file `SetToL1`).
3. Propositions connecting the Bochner integral with the integral on `ℝ≥0∞`-valued functions,
which is called `lintegral` and has the notation `∫⁻`.
- * `integral_eq_lintegral_max_sub_lintegral_min` : `∫ x, f x ∂μ = ∫⁻ x, f⁺ x ∂μ - ∫⁻ x, f⁻ x ∂μ`,
+ * `integral_eq_lintegral_pos_part_sub_lintegral_neg_part` :
+ `∫ x, f x ∂μ = ∫⁻ x, f⁺ x ∂μ - ∫⁻ x, f⁻ x ∂μ`,
where `f⁺` is the positive part of `f` and `f⁻` is the negative part of `f`.
* `integral_eq_lintegral_of_nonneg_ae` : `0 ≤ᵐ[μ] f → ∫ x, f x ∂μ = ∫⁻ x, f x ∂μ`
@@ -90,11 +91,11 @@ of the related results, like `Lp.induction` for functions in `Lp`), which allows
something for an arbitrary integrable function.
Another method is using the following steps.
-See `integral_eq_lintegral_max_sub_lintegral_min` for a complicated example, which proves that
-`∫ f = ∫⁻ f⁺ - ∫⁻ f⁻`, with the first integral sign being the Bochner integral of a real-valued
+See `integral_eq_lintegral_pos_part_sub_lintegral_neg_part` for a complicated example, which proves
+that `∫ f = ∫⁻ f⁺ - ∫⁻ f⁻`, with the first integral sign being the Bochner integral of a real-valued
function `f : α → ℝ`, and second and third integral sign being the integral on `ℝ≥0∞`-valued
-functions (called `lintegral`). The proof of `integral_eq_lintegral_max_sub_lintegral_min` is
-scattered in sections with the name `posPart`.
+functions (called `lintegral`). The proof of `integral_eq_lintegral_pos_part_sub_lintegral_neg_part`
+is scattered in sections with the name `posPart`.
Here are the usual steps of proving that a property `p`, say `∫ f = ∫⁻ f⁺ - ∫⁻ f⁻`, holds for all
functions :
@@ -1632,10 +1633,15 @@ theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
-theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → G) : ∫ x in s, f x = ∫ x : s, f x := by
+theorem set_integral_eq_subtype' {α} [MeasurableSpace α] {μ : Measure α} {s : Set α}
+ (hs : MeasurableSet s) (f : α → G) :
+ ∫ x in s, f x ∂μ =
+ ∫ x : s, f (x : α) ∂(Measure.comap Subtype.val μ):= by
rw [← map_comap_subtype_coe hs]
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
+
+theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
+ (f : α → G) : ∫ x in s, f x = ∫ x : s, f x := set_integral_eq_subtype' hs f
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
@[simp]
@@ -1776,6 +1782,58 @@ theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExpo
set_option linter.uppercaseLean3 false in
#align measure_theory.integral_mul_le_Lp_mul_Lq_of_nonneg MeasureTheory.integral_mul_le_Lp_mul_Lq_of_nonneg
+theorem integral_countable' [Countable α] [MeasurableSingletonClass α] {μ : Measure α} {f : α → ℝ}
+ (hf : Integrable f μ) :
+ ∫ a, f a ∂μ = ∑' a, f a * (μ {a}).toReal := by
+ rw [← Measure.sum_smul_dirac μ] at hf
+ rw [← Measure.sum_smul_dirac μ, integral_sum_measure hf]
+ congr 1 with a : 1
+ rw [integral_smul_measure, integral_dirac, mul_comm, smul_eq_mul, Measure.sum_smul_dirac]
+
+theorem integral_singleton' {μ : Measure α} {f : α → ℝ} (hf : StronglyMeasurable f) (a : α) :
+ ∫ a in {a}, f a ∂μ = f a * (μ {a}).toReal := by
+ simp only [Measure.restrict_singleton, integral_smul_measure, integral_dirac' f a hf, smul_eq_mul,
+ mul_comm]
+
+theorem integral_singleton [MeasurableSingletonClass α] {μ : Measure α} (f : α → ℝ) (a : α) :
+ ∫ a in {a}, f a ∂μ = f a * (μ {a}).toReal := by
+ simp only [Measure.restrict_singleton, integral_smul_measure, integral_dirac, smul_eq_mul,
+ mul_comm]
+
+theorem integral_countable [MeasurableSingletonClass α] (f : α → ℝ)
+ {s : Set α} (hs : s.Countable) (hf : Integrable f (μ.restrict s)) :
+ ∫ a in s, f a ∂μ = ∑' a : s, f a * (μ {(a : α)}).toReal := by
+ have hi : Countable { x // x ∈ s } := Iff.mpr countable_coe_iff hs
+ have hf' : Integrable (fun (x : s) => f x) (Measure.comap Subtype.val μ) := by
+ rw [← map_comap_subtype_coe, integrable_map_measure] at hf
+ apply hf
+ · exact Integrable.aestronglyMeasurable hf
+ · exact Measurable.aemeasurable measurable_subtype_coe
+ · exact Countable.measurableSet hs
+ rw [set_integral_eq_subtype' hs.measurableSet, integral_countable' hf']
+ congr 1 with a : 1
+ rw [Measure.comap_apply Subtype.val Subtype.coe_injective
+ (fun s' hs' => MeasurableSet.subtype_image (Countable.measurableSet hs) hs') _
+ (MeasurableSet.singleton a)]
+ simp
+
+theorem integral_finset [MeasurableSingletonClass α] (s : Finset α) (f : α → ℝ)
+ (hf : Integrable f (μ.restrict s)) :
+ ∫ x in s, f x ∂μ = ∑ x in s, f x * (μ {x}).toReal := by
+ rw [integral_countable _ s.countable_toSet hf, ← Finset.tsum_subtype']
+
+theorem integral_fintype [MeasurableSingletonClass α] [Fintype α] (f : α → ℝ)
+ (hf : Integrable f μ) :
+ ∫ x, f x ∂μ = ∑ x, f x * (μ {x}).toReal := by
+ -- NB: Integrable f does not follow from Fintype, because the measure itself could be non-finite
+ rw [← integral_finset .univ , Finset.coe_univ, Measure.restrict_univ]
+ simp only [Finset.coe_univ, Measure.restrict_univ, hf]
+
+theorem integral_unique [Unique α] (f : α → ℝ) : ∫ x, f x ∂μ = f default * (μ univ).toReal :=
+ calc
+ ∫ x, f x ∂μ = ∫ _, f default ∂μ := by congr with x; congr; exact Unique.uniq _ x
+ _ = f default * (μ univ).toReal := by rw [integral_const, smul_eq_mul, mul_comm]
+
end Properties
section IntegralTrim
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -387,7 +387,7 @@ theorem integral_eq_lintegral' {f : α →ₛ E} {g : E → ℝ≥0∞} (hf : In
rw [smul_eq_mul, toReal_mul, mul_comm, Function.comp_apply]
· rintro a -
by_cases a0 : a = 0
- · rw [a0, hg0, MulZeroClass.zero_mul]; exact WithTop.zero_ne_top
+ · rw [a0, hg0, zero_mul]; exact WithTop.zero_ne_top
· apply mul_ne_top (ht a) (hf'.meas_preimage_singleton_ne_zero a0).ne
· simp [hg0]
#align measure_theory.simple_func.integral_eq_lintegral' MeasureTheory.SimpleFunc.integral_eq_lintegral'
@@ -1887,7 +1887,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
(hf : ∀ᵐ ω ∂μ, f ω ≤ r) : snorm f 1 μ ≤ 2 * μ Set.univ * r := by
by_cases hr : r = 0
· suffices f =ᵐ[μ] 0 by
- rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, MulZeroClass.mul_zero]
+ rw [snorm_congr_ae this, snorm_zero, hr, ENNReal.coe_zero, mul_zero]
rw [hr] at hf
norm_cast at hf
-- Porting note: two lines above were
@@ -1263,7 +1263,7 @@ theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : ∫ a, f a ∂μ ≤ 0
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 := by
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
- ← ENNReal.not_lt_top, ← hasFiniteIntegral_iff_ofReal hf, hfi.2, not_true, or_false_iff]
+ ← ENNReal.not_lt_top, ← hasFiniteIntegral_iff_ofReal hf, hfi.2, or_false_iff]
-- Porting note: split into parts, to make `rw` and `simp` work
rw [lintegral_eq_zero_iff']
· rw [← hf.le_iff_eq, Filter.EventuallyEq, Filter.EventuallyLE]
@@ -1538,7 +1538,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → G} (hf : ∀ i, AES
· intro n
filter_upwards with x
rfl
- · simp_rw [← coe_nnnorm, ← NNReal.coe_tsum]
+ · simp_rw [← NNReal.coe_tsum]
rw [aestronglyMeasurable_iff_aemeasurable]
apply AEMeasurable.coe_nnreal_real
apply AEMeasurable.nnreal_tsum
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -152,7 +152,7 @@ open Set Filter TopologicalSpace ENNReal EMetric
namespace MeasureTheory
-variable {α E F 𝕜 : Type _}
+variable {α E F 𝕜 : Type*}
section WeightedSmul
@@ -299,7 +299,7 @@ and prove basic property of this integral.
open Finset
-variable [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ F] {p : ℝ≥0∞} {G F' : Type _}
+variable [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ F] {p : ℝ≥0∞} {G F' : Type*}
[NormedAddCommGroup G] [NormedAddCommGroup F'] [NormedSpace ℝ F'] {m : MeasurableSpace α}
{μ : Measure α}
@@ -508,7 +508,7 @@ Define the Bochner integral on `α →₁ₛ[μ] E` by extension from the simple
and prove basic properties of this integral. -/
-variable [NormedField 𝕜] [NormedSpace 𝕜 E] [NormedSpace ℝ E] [SMulCommClass ℝ 𝕜 E] {F' : Type _}
+variable [NormedField 𝕜] [NormedSpace 𝕜 E] [NormedSpace ℝ E] [SMulCommClass ℝ 𝕜 E] {F' : Type*}
[NormedAddCommGroup F'] [NormedSpace ℝ F']
attribute [local instance] simpleFunc.normedSpace
@@ -553,7 +553,7 @@ theorem norm_integral_le_norm (f : α →₁ₛ[μ] E) : ‖integral f‖ ≤
exact (toSimpleFunc f).norm_integral_le_integral_norm (SimpleFunc.integrable f)
#align measure_theory.L1.simple_func.norm_integral_le_norm MeasureTheory.L1.SimpleFunc.norm_integral_le_norm
-variable {E' : Type _} [NormedAddCommGroup E'] [NormedSpace ℝ E'] [NormedSpace 𝕜 E']
+variable {E' : Type*} [NormedAddCommGroup E'] [NormedSpace ℝ E'] [NormedSpace 𝕜 E']
variable (α E μ 𝕜)
@@ -780,7 +780,7 @@ functions, and 0 otherwise; prove its basic properties.
variable [NormedAddCommGroup E] [NormedSpace ℝ E] [hE : CompleteSpace E] [NontriviallyNormedField 𝕜]
[NormedSpace 𝕜 E] [SMulCommClass ℝ 𝕜 E] [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F]
- {G : Type _} [NormedAddCommGroup G] [NormedSpace ℝ G]
+ {G : Type*} [NormedAddCommGroup G] [NormedSpace ℝ G]
section
@@ -919,17 +919,17 @@ theorem integral_smul [NormedSpace 𝕜 G] [SMulCommClass ℝ 𝕜 G] (c : 𝕜)
· simp [integral, hG]
#align measure_theory.integral_smul MeasureTheory.integral_smul
-theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_mul_left {L : Type*} [IsROrC L] (r : L) (f : α → L) :
∫ a, r * f a ∂μ = r * ∫ a, f a ∂μ :=
integral_smul r f
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
-theorem integral_mul_right {L : Type _} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_mul_right {L : Type*} [IsROrC L] (r : L) (f : α → L) :
∫ a, f a * r ∂μ = (∫ a, f a ∂μ) * r := by
simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
-theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
+theorem integral_div {L : Type*} [IsROrC L] (r : L) (f : α → L) :
∫ a, f a / r ∂μ = (∫ a, f a ∂μ) / r := by
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
@@ -1072,7 +1072,7 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
_ ≤ ∑' n, bound n a := sum_le_tsum _ (fun n _ => ha0 n) has
#align measure_theory.has_sum_integral_of_dominated_convergence MeasureTheory.hasSum_integral_of_dominated_convergence
-variable {X : Type _} [TopologicalSpace X] [FirstCountableTopology X]
+variable {X : Type*} [TopologicalSpace X] [FirstCountableTopology X]
theorem continuousWithinAt_of_dominated {F : X → α → G} {x₀ : X} {bound : α → ℝ} {s : Set X}
(hF_meas : ∀ᶠ x in 𝓝[s] x₀, AEStronglyMeasurable (F x) μ)
@@ -1176,14 +1176,14 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
rw [this, hfi]; rfl
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
-theorem integral_norm_eq_lintegral_nnnorm {P : Type _} [NormedAddCommGroup P] {f : α → P}
+theorem integral_norm_eq_lintegral_nnnorm {P : Type*} [NormedAddCommGroup P] {f : α → P}
(hf : AEStronglyMeasurable f μ) : ∫ x, ‖f x‖ ∂μ = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) := by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
· refine' ae_of_all _ _; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
#align measure_theory.integral_norm_eq_lintegral_nnnorm MeasureTheory.integral_norm_eq_lintegral_nnnorm
-theorem ofReal_integral_norm_eq_lintegral_nnnorm {P : Type _} [NormedAddCommGroup P] {f : α → P}
+theorem ofReal_integral_norm_eq_lintegral_nnnorm {P : Type*} [NormedAddCommGroup P] {f : α → P}
(hf : Integrable f μ) : ENNReal.ofReal (∫ x, ‖f x‖ ∂μ) = ∫⁻ x, ‖f x‖₊ ∂μ := by
rw [integral_norm_eq_lintegral_nnnorm hf.aestronglyMeasurable,
ENNReal.ofReal_toReal (lt_top_iff_ne_top.mp hf.2)]
@@ -1291,7 +1291,7 @@ theorem integral_pos_iff_support_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi
section NormedAddCommGroup
-variable {H : Type _} [NormedAddCommGroup H]
+variable {H : Type*} [NormedAddCommGroup H]
theorem L1.norm_eq_integral_norm (f : α →₁[μ] H) : ‖f‖ = ∫ a, ‖f a‖ ∂μ := by
simp only [snorm, snorm', ENNReal.one_toReal, ENNReal.rpow_one, Lp.norm_def, if_false,
@@ -1780,7 +1780,7 @@ end Properties
section IntegralTrim
-variable {H β γ : Type _} [NormedAddCommGroup H] {m m0 : MeasurableSpace β} {μ : Measure β}
+variable {H β γ : Type*} [NormedAddCommGroup H] {m m0 : MeasurableSpace β} {μ : Measure β}
/-- Simple function seen as simple function of a larger `MeasurableSpace`. -/
def SimpleFunc.toLargerSpace (hm : m ≤ m0) (f : @SimpleFunc β m γ) : SimpleFunc β γ :=
@@ -2,14 +2,11 @@
Copyright (c) 2019 Zhouhang Zhou. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
-
-! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit 48fb5b5280e7c81672afc9524185ae994553ebf4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Integral.SetToL1
+#align_import measure_theory.integral.bochner from "leanprover-community/mathlib"@"48fb5b5280e7c81672afc9524185ae994553ebf4"
+
/-!
# Bochner integral
@@ -1322,7 +1322,7 @@ set_option linter.uppercaseLean3 false in
theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1 : p ≠ 0) (hp2 : p ≠ ∞)
(hf : Memℒp f p μ) :
snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) := by
- have A : ∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.toReal) ∂μ = ∫⁻ a : α, ‖f a‖₊ ^ p.toReal ∂μ := by
+ have A : ∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.toReal) ∂μ = ∫⁻ a : α, ‖f a‖₊ ^ p.toReal ∂μ := by
apply lintegral_congr
intro x
rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm,
The notion of Bochner integral of a function taking values in a normed space E
requires that E
is complete. This means that whenever we write down an integral, the term contains the assertion that E
is complete.
In this PR, we remove the completeness requirement from the definition, using the junk value 0
when the space is not complete. Mathematically this does not make any difference, as all reasonable applications will be with a complete E
. But it means that terms involving integrals become a little bit simpler and that completeness will not have to be checked by the system when applying a bunch of basic lemmas on integrals.
@@ -779,20 +779,21 @@ end L1
Define the Bochner integral on functions generally to be the `L1` Bochner integral, for integrable
functions, and 0 otherwise; prove its basic properties.
-
-/
-
-variable [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] [NontriviallyNormedField 𝕜]
+variable [NormedAddCommGroup E] [NormedSpace ℝ E] [hE : CompleteSpace E] [NontriviallyNormedField 𝕜]
[NormedSpace 𝕜 E] [SMulCommClass ℝ 𝕜 E] [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F]
+ {G : Type _} [NormedAddCommGroup G] [NormedSpace ℝ G]
section
open scoped Classical
/-- The Bochner integral -/
-irreducible_def integral {_ : MeasurableSpace α} (μ : Measure α) (f : α → E) : E :=
- if hf : Integrable f μ then L1.integral (hf.toL1 f) else 0
+irreducible_def integral {_ : MeasurableSpace α} (μ : Measure α) (f : α → G) : G :=
+ if _ : CompleteSpace G then
+ if hf : Integrable f μ then L1.integral (hf.toL1 f) else 0
+ else 0
#align measure_theory.integral MeasureTheory.integral
end
@@ -801,7 +802,6 @@ end
and needs parentheses. We do not set the binding power of `r` to `0`, because then
`∫ x, f x = 0` will be parsed incorrectly. -/
-
@[inherit_doc MeasureTheory.integral]
notation3 "∫ "(...)", "r:60:(scoped f => f)" ∂"μ:70 => integral μ r
@@ -820,13 +820,13 @@ open ContinuousLinearMap MeasureTheory.SimpleFunc
variable {f g : α → E} {m : MeasurableSpace α} {μ : Measure α}
-theorem integral_eq (f : α → E) (hf : Integrable f μ) : ∫ a, f a ∂μ = L1.integral (hf.toL1 f) :=
- by rw [integral]; exact @dif_pos _ (id _) hf _ _ _
+theorem integral_eq (f : α → E) (hf : Integrable f μ) : ∫ a, f a ∂μ = L1.integral (hf.toL1 f) := by
+ simp [integral, hE, hf]
#align measure_theory.integral_eq MeasureTheory.integral_eq
theorem integral_eq_setToFun (f : α → E) :
∫ a, f a ∂μ = setToFun μ (weightedSMul μ) (dominatedFinMeasAdditive_weightedSMul μ) f := by
- simp only [integral, L1.integral]; rfl
+ simp only [integral, hE, L1.integral]; rfl
#align measure_theory.integral_eq_set_to_fun MeasureTheory.integral_eq_setToFun
theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f a ∂μ := by
@@ -835,74 +835,91 @@ theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f
set_option linter.uppercaseLean3 false in
#align measure_theory.L1.integral_eq_integral MeasureTheory.L1.integral_eq_integral
-theorem integral_undef (h : ¬Integrable f μ) : ∫ a, f a ∂μ = 0 := by
- rw [integral]; exact @dif_neg _ (id _) h _ _ _
+theorem integral_undef {f : α → G} (h : ¬Integrable f μ) : ∫ a, f a ∂μ = 0 := by
+ by_cases hG : CompleteSpace G
+ · simp [integral, hG, h]
+ · simp [integral, hG]
#align measure_theory.integral_undef MeasureTheory.integral_undef
-theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : ∫ a, f a ∂μ = 0 :=
+theorem integral_non_aestronglyMeasurable {f : α → G} (h : ¬AEStronglyMeasurable f μ) :
+ ∫ a, f a ∂μ = 0 :=
integral_undef <| not_and_of_not_left _ h
#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aestronglyMeasurable
-variable (α E)
+variable (α G)
-theorem integral_zero : ∫ _ : α, (0 : E) ∂μ = 0 := by
- simp only [integral, L1.integral]
- exact setToFun_zero (dominatedFinMeasAdditive_weightedSMul μ)
+@[simp]
+theorem integral_zero : ∫ _ : α, (0 : G) ∂μ = 0 := by
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_zero (dominatedFinMeasAdditive_weightedSMul μ)
+ · simp [integral, hG]
#align measure_theory.integral_zero MeasureTheory.integral_zero
@[simp]
-theorem integral_zero' : integral μ (0 : α → E) = 0 :=
- integral_zero α E
+theorem integral_zero' : integral μ (0 : α → G) = 0 :=
+ integral_zero α G
#align measure_theory.integral_zero' MeasureTheory.integral_zero'
-variable {α E}
+variable {α G}
theorem integrable_of_integral_eq_one {f : α → ℝ} (h : ∫ x, f x ∂μ = 1) : Integrable f μ := by
contrapose h; rw [integral_undef h]; exact zero_ne_one
#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
-theorem integral_add (hf : Integrable f μ) (hg : Integrable g μ) :
+theorem integral_add {f g : α → G} (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, f a + g a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ := by
- simp only [integral, L1.integral]
- exact setToFun_add (dominatedFinMeasAdditive_weightedSMul μ) hf hg
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_add (dominatedFinMeasAdditive_weightedSMul μ) hf hg
+ · simp [integral, hG]
#align measure_theory.integral_add MeasureTheory.integral_add
-theorem integral_add' (hf : Integrable f μ) (hg : Integrable g μ) :
+theorem integral_add' {f g : α → G} (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, (f + g) a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ :=
integral_add hf hg
#align measure_theory.integral_add' MeasureTheory.integral_add'
-theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀ i ∈ s, Integrable (f i) μ) :
+theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → G} (hf : ∀ i ∈ s, Integrable (f i) μ) :
∫ a, ∑ i in s, f i a ∂μ = ∑ i in s, ∫ a, f i a ∂μ := by
- simp only [integral, L1.integral]
- exact setToFun_finset_sum (dominatedFinMeasAdditive_weightedSMul _) s hf
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_finset_sum (dominatedFinMeasAdditive_weightedSMul _) s hf
+ · simp [integral, hG]
#align measure_theory.integral_finset_sum MeasureTheory.integral_finset_sum
@[integral_simps]
-theorem integral_neg (f : α → E) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ := by
- simp only [integral, L1.integral]
- exact setToFun_neg (dominatedFinMeasAdditive_weightedSMul μ) f
+theorem integral_neg (f : α → G) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ := by
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_neg (dominatedFinMeasAdditive_weightedSMul μ) f
+ · simp [integral, hG]
#align measure_theory.integral_neg MeasureTheory.integral_neg
-theorem integral_neg' (f : α → E) : ∫ a, (-f) a ∂μ = -∫ a, f a ∂μ :=
+theorem integral_neg' (f : α → G) : ∫ a, (-f) a ∂μ = -∫ a, f a ∂μ :=
integral_neg f
#align measure_theory.integral_neg' MeasureTheory.integral_neg'
-theorem integral_sub (hf : Integrable f μ) (hg : Integrable g μ) :
+theorem integral_sub {f g : α → G} (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, f a - g a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ := by
- simp only [integral, L1.integral]
- exact setToFun_sub (dominatedFinMeasAdditive_weightedSMul μ) hf hg
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_sub (dominatedFinMeasAdditive_weightedSMul μ) hf hg
+ · simp [integral, hG]
#align measure_theory.integral_sub MeasureTheory.integral_sub
-theorem integral_sub' (hf : Integrable f μ) (hg : Integrable g μ) :
+theorem integral_sub' {f g : α → G} (hf : Integrable f μ) (hg : Integrable g μ) :
∫ a, (f - g) a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
integral_sub hf hg
#align measure_theory.integral_sub' MeasureTheory.integral_sub'
@[integral_simps]
-theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ := by
- simp only [integral, L1.integral]
- exact setToFun_smul (dominatedFinMeasAdditive_weightedSMul μ) weightedSMul_smul c f
+theorem integral_smul [NormedSpace 𝕜 G] [SMulCommClass ℝ 𝕜 G] (c : 𝕜) (f : α → G) :
+ ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ := by
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_smul (dominatedFinMeasAdditive_weightedSMul μ) weightedSMul_smul c f
+ · simp [integral, hG]
#align measure_theory.integral_smul MeasureTheory.integral_smul
theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
@@ -920,47 +937,55 @@ theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
-theorem integral_congr_ae (h : f =ᵐ[μ] g) : ∫ a, f a ∂μ = ∫ a, g a ∂μ := by
- simp only [integral, L1.integral]
- exact setToFun_congr_ae (dominatedFinMeasAdditive_weightedSMul μ) h
+theorem integral_congr_ae {f g : α → G} (h : f =ᵐ[μ] g) : ∫ a, f a ∂μ = ∫ a, g a ∂μ := by
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_congr_ae (dominatedFinMeasAdditive_weightedSMul μ) h
+ · simp [integral, hG]
#align measure_theory.integral_congr_ae MeasureTheory.integral_congr_ae
-- Porting note: `nolint simpNF` added because simplify fails on left-hand side
@[simp, nolint simpNF]
-theorem L1.integral_of_fun_eq_integral {f : α → E} (hf : Integrable f μ) :
+theorem L1.integral_of_fun_eq_integral {f : α → G} (hf : Integrable f μ) :
∫ a, (hf.toL1 f) a ∂μ = ∫ a, f a ∂μ := by
- simp only [MeasureTheory.integral, L1.integral]
- exact setToFun_toL1 (dominatedFinMeasAdditive_weightedSMul μ) hf
+ by_cases hG : CompleteSpace G
+ · simp only [MeasureTheory.integral, hG, L1.integral]
+ exact setToFun_toL1 (dominatedFinMeasAdditive_weightedSMul μ) hf
+ · simp [MeasureTheory.integral, hG]
set_option linter.uppercaseLean3 false in
#align measure_theory.L1.integral_of_fun_eq_integral MeasureTheory.L1.integral_of_fun_eq_integral
@[continuity]
-theorem continuous_integral : Continuous fun f : α →₁[μ] E => ∫ a, f a ∂μ := by
- simp only [integral, L1.integral]
- exact continuous_setToFun (dominatedFinMeasAdditive_weightedSMul μ)
+theorem continuous_integral : Continuous fun f : α →₁[μ] G => ∫ a, f a ∂μ := by
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact continuous_setToFun (dominatedFinMeasAdditive_weightedSMul μ)
+ · simp [integral, hG, continuous_const]
#align measure_theory.continuous_integral MeasureTheory.continuous_integral
-theorem norm_integral_le_lintegral_norm (f : α → E) :
+theorem norm_integral_le_lintegral_norm (f : α → G) :
‖∫ a, f a ∂μ‖ ≤ ENNReal.toReal (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) := by
- by_cases hf : Integrable f μ
- · rw [integral_eq f hf, ← Integrable.norm_toL1_eq_lintegral_norm f hf]
- exact L1.norm_integral_le _
- · rw [integral_undef hf, norm_zero]; exact toReal_nonneg
+ by_cases hG : CompleteSpace G
+ · by_cases hf : Integrable f μ
+ · rw [integral_eq f hf, ← Integrable.norm_toL1_eq_lintegral_norm f hf]
+ exact L1.norm_integral_le _
+ · rw [integral_undef hf, norm_zero]; exact toReal_nonneg
+ · simp [integral, hG]
#align measure_theory.norm_integral_le_lintegral_norm MeasureTheory.norm_integral_le_lintegral_norm
-theorem ennnorm_integral_le_lintegral_ennnorm (f : α → E) :
+theorem ennnorm_integral_le_lintegral_ennnorm (f : α → G) :
(‖∫ a, f a ∂μ‖₊ : ℝ≥0∞) ≤ ∫⁻ a, ‖f a‖₊ ∂μ := by
simp_rw [← ofReal_norm_eq_coe_nnnorm]; apply ENNReal.ofReal_le_of_le_toReal
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
-theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : ∫ a, f a ∂μ = 0 := by
+theorem integral_eq_zero_of_ae {f : α → G} (hf : f =ᵐ[μ] 0) : ∫ a, f a ∂μ = 0 := by
simp [integral_congr_ae hf, integral_zero]
#align measure_theory.integral_eq_zero_of_ae MeasureTheory.integral_eq_zero_of_ae
/-- If `f` has finite integral, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
-theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
+theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → G}
(hf : HasFiniteIntegral f μ) {l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) := by
rw [tendsto_zero_iff_norm_tendsto_zero]
@@ -973,19 +998,21 @@ theorem HasFiniteIntegral.tendsto_set_integral_nhds_zero {ι} {f : α → E}
/-- If `f` is integrable, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
to zero as `μ s` tends to zero. -/
-theorem Integrable.tendsto_set_integral_nhds_zero {ι} {f : α → E} (hf : Integrable f μ)
+theorem Integrable.tendsto_set_integral_nhds_zero {ι} {f : α → G} (hf : Integrable f μ)
{l : Filter ι} {s : ι → Set α} (hs : Tendsto (μ ∘ s) l (𝓝 0)) :
Tendsto (fun i => ∫ x in s i, f x ∂μ) l (𝓝 0) :=
hf.2.tendsto_set_integral_nhds_zero hs
#align measure_theory.integrable.tendsto_set_integral_nhds_zero MeasureTheory.Integrable.tendsto_set_integral_nhds_zero
/-- If `F i → f` in `L1`, then `∫ x, F i x ∂μ → ∫ x, f x ∂μ`. -/
-theorem tendsto_integral_of_L1 {ι} (f : α → E) (hfi : Integrable f μ) {F : ι → α → E} {l : Filter ι}
+theorem tendsto_integral_of_L1 {ι} (f : α → G) (hfi : Integrable f μ) {F : ι → α → G} {l : Filter ι}
(hFi : ∀ᶠ i in l, Integrable (F i) μ)
(hF : Tendsto (fun i => ∫⁻ x, ‖F i x - f x‖₊ ∂μ) l (𝓝 0)) :
Tendsto (fun i => ∫ x, F i x ∂μ) l (𝓝 <| ∫ x, f x ∂μ) := by
- simp only [integral, L1.integral]
- exact tendsto_setToFun_of_L1 (dominatedFinMeasAdditive_weightedSMul μ) f hfi hFi hF
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact tendsto_setToFun_of_L1 (dominatedFinMeasAdditive_weightedSMul μ) f hfi hFi hF
+ · simp [integral, hG, tendsto_const_nhds]
set_option linter.uppercaseLean3 false in
#align measure_theory.tendsto_integral_of_L1 MeasureTheory.tendsto_integral_of_L1
@@ -994,29 +1021,33 @@ set_option linter.uppercaseLean3 false in
We could weaken the condition `bound_integrable` to require `HasFiniteIntegral bound μ` instead
(i.e. not requiring that `bound` is measurable), but in all applications proving integrability
is easier. -/
-theorem tendsto_integral_of_dominated_convergence {F : ℕ → α → E} {f : α → E} (bound : α → ℝ)
+theorem tendsto_integral_of_dominated_convergence {F : ℕ → α → G} {f : α → G} (bound : α → ℝ)
(F_measurable : ∀ n, AEStronglyMeasurable (F n) μ) (bound_integrable : Integrable bound μ)
(h_bound : ∀ n, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound a)
(h_lim : ∀ᵐ a ∂μ, Tendsto (fun n => F n a) atTop (𝓝 (f a))) :
Tendsto (fun n => ∫ a, F n a ∂μ) atTop (𝓝 <| ∫ a, f a ∂μ) := by
- simp only [integral, L1.integral]
- exact tendsto_setToFun_of_dominated_convergence (dominatedFinMeasAdditive_weightedSMul μ)
- bound F_measurable bound_integrable h_bound h_lim
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact tendsto_setToFun_of_dominated_convergence (dominatedFinMeasAdditive_weightedSMul μ)
+ bound F_measurable bound_integrable h_bound h_lim
+ · simp [integral, hG]
#align measure_theory.tendsto_integral_of_dominated_convergence MeasureTheory.tendsto_integral_of_dominated_convergence
/-- Lebesgue dominated convergence theorem for filters with a countable basis -/
theorem tendsto_integral_filter_of_dominated_convergence {ι} {l : Filter ι} [l.IsCountablyGenerated]
- {F : ι → α → E} {f : α → E} (bound : α → ℝ) (hF_meas : ∀ᶠ n in l, AEStronglyMeasurable (F n) μ)
+ {F : ι → α → G} {f : α → G} (bound : α → ℝ) (hF_meas : ∀ᶠ n in l, AEStronglyMeasurable (F n) μ)
(h_bound : ∀ᶠ n in l, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_lim : ∀ᵐ a ∂μ, Tendsto (fun n => F n a) l (𝓝 (f a))) :
Tendsto (fun n => ∫ a, F n a ∂μ) l (𝓝 <| ∫ a, f a ∂μ) := by
- simp only [integral, L1.integral]
- exact tendsto_setToFun_filter_of_dominated_convergence (dominatedFinMeasAdditive_weightedSMul μ)
- bound hF_meas h_bound bound_integrable h_lim
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact tendsto_setToFun_filter_of_dominated_convergence (dominatedFinMeasAdditive_weightedSMul μ)
+ bound hF_meas h_bound bound_integrable h_lim
+ · simp [integral, hG, tendsto_const_nhds]
#align measure_theory.tendsto_integral_filter_of_dominated_convergence MeasureTheory.tendsto_integral_filter_of_dominated_convergence
/-- Lebesgue dominated convergence theorem for series. -/
-theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι → α → E} {f : α → E}
+theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι → α → G} {f : α → G}
(bound : ι → α → ℝ) (hF_meas : ∀ n, AEStronglyMeasurable (F n) μ)
(h_bound : ∀ n, ∀ᵐ a ∂μ, ‖F n a‖ ≤ bound n a)
(bound_summable : ∀ᵐ a ∂μ, Summable fun n => bound n a)
@@ -1046,43 +1077,51 @@ theorem hasSum_integral_of_dominated_convergence {ι} [Countable ι] {F : ι →
variable {X : Type _} [TopologicalSpace X] [FirstCountableTopology X]
-theorem continuousWithinAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α → ℝ} {s : Set X}
+theorem continuousWithinAt_of_dominated {F : X → α → G} {x₀ : X} {bound : α → ℝ} {s : Set X}
(hF_meas : ∀ᶠ x in 𝓝[s] x₀, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ᶠ x in 𝓝[s] x₀, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_cont : ∀ᵐ a ∂μ, ContinuousWithinAt (fun x => F x a) s x₀) :
ContinuousWithinAt (fun x => ∫ a, F x a ∂μ) s x₀ := by
- simp only [integral, L1.integral]
- exact continuousWithinAt_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
- hF_meas h_bound bound_integrable h_cont
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact continuousWithinAt_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
+ hF_meas h_bound bound_integrable h_cont
+ · simp [integral, hG, continuousWithinAt_const]
#align measure_theory.continuous_within_at_of_dominated MeasureTheory.continuousWithinAt_of_dominated
-theorem continuousAt_of_dominated {F : X → α → E} {x₀ : X} {bound : α → ℝ}
+theorem continuousAt_of_dominated {F : X → α → G} {x₀ : X} {bound : α → ℝ}
(hF_meas : ∀ᶠ x in 𝓝 x₀, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ᶠ x in 𝓝 x₀, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_cont : ∀ᵐ a ∂μ, ContinuousAt (fun x => F x a) x₀) :
ContinuousAt (fun x => ∫ a, F x a ∂μ) x₀ := by
- simp only [integral, L1.integral]
- exact continuousAt_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
- hF_meas h_bound bound_integrable h_cont
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact continuousAt_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
+ hF_meas h_bound bound_integrable h_cont
+ · simp [integral, hG, continuousAt_const]
#align measure_theory.continuous_at_of_dominated MeasureTheory.continuousAt_of_dominated
-theorem continuousOn_of_dominated {F : X → α → E} {bound : α → ℝ} {s : Set X}
+theorem continuousOn_of_dominated {F : X → α → G} {bound : α → ℝ} {s : Set X}
(hF_meas : ∀ x ∈ s, AEStronglyMeasurable (F x) μ)
(h_bound : ∀ x ∈ s, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a) (bound_integrable : Integrable bound μ)
(h_cont : ∀ᵐ a ∂μ, ContinuousOn (fun x => F x a) s) :
ContinuousOn (fun x => ∫ a, F x a ∂μ) s := by
- simp only [integral, L1.integral]
- exact continuousOn_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
- hF_meas h_bound bound_integrable h_cont
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact continuousOn_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
+ hF_meas h_bound bound_integrable h_cont
+ · simp [integral, hG, continuousOn_const]
#align measure_theory.continuous_on_of_dominated MeasureTheory.continuousOn_of_dominated
-theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
+theorem continuous_of_dominated {F : X → α → G} {bound : α → ℝ}
(hF_meas : ∀ x, AEStronglyMeasurable (F x) μ) (h_bound : ∀ x, ∀ᵐ a ∂μ, ‖F x a‖ ≤ bound a)
(bound_integrable : Integrable bound μ) (h_cont : ∀ᵐ a ∂μ, Continuous fun x => F x a) :
Continuous fun x => ∫ a, F x a ∂μ := by
- simp only [integral, L1.integral]
- exact continuous_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
- hF_meas h_bound bound_integrable h_cont
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact continuous_setToFun_of_dominated (dominatedFinMeasAdditive_weightedSMul μ)
+ hF_meas h_bound bound_integrable h_cont
+ · simp [integral, hG, continuous_const]
#align measure_theory.continuous_of_dominated MeasureTheory.continuous_of_dominated
/-- The Bochner integral of a real-valued function `f : α → ℝ` is the difference between the
@@ -1113,7 +1152,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
apply NNReal.eq
simp only [Real.coe_toNNReal', coe_nnnorm, nnnorm_neg]
rw [Real.norm_of_nonpos (min_le_right _ _), ← max_neg_neg, neg_zero]
- rw [eq₁, eq₂, integral, dif_pos]
+ rw [eq₁, eq₂, integral, dif_pos, dif_pos]
exact L1.integral_eq_norm_posPart_sub _
#align measure_theory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part MeasureTheory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part
@@ -1140,14 +1179,14 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
rw [this, hfi]; rfl
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
-theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
+theorem integral_norm_eq_lintegral_nnnorm {P : Type _} [NormedAddCommGroup P] {f : α → P}
(hf : AEStronglyMeasurable f μ) : ∫ x, ‖f x‖ ∂μ = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) := by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
· refine' ae_of_all _ _; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
#align measure_theory.integral_norm_eq_lintegral_nnnorm MeasureTheory.integral_norm_eq_lintegral_nnnorm
-theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
+theorem ofReal_integral_norm_eq_lintegral_nnnorm {P : Type _} [NormedAddCommGroup P] {f : α → P}
(hf : Integrable f μ) : ENNReal.ofReal (∫ x, ‖f x‖ ∂μ) = ∫⁻ x, ‖f x‖₊ ∂μ := by
rw [integral_norm_eq_lintegral_nnnorm hf.aestronglyMeasurable,
ENNReal.ofReal_toReal (lt_top_iff_ne_top.mp hf.2)]
@@ -1161,7 +1200,8 @@ theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf
#align measure_theory.integral_eq_integral_pos_part_sub_integral_neg_part MeasureTheory.integral_eq_integral_pos_part_sub_integral_neg_part
theorem integral_nonneg_of_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) : 0 ≤ ∫ a, f a ∂μ := by
- simp only [integral, L1.integral]
+ have A : CompleteSpace ℝ := by infer_instance
+ simp only [integral_def, A, L1.integral_def, dite_true, ge_iff_le]
exact setToFun_nonneg (dominatedFinMeasAdditive_weightedSMul μ)
(fun s _ _ => weightedSMul_nonneg s) hf
#align measure_theory.integral_nonneg_of_ae MeasureTheory.integral_nonneg_of_ae
@@ -1302,7 +1342,8 @@ end NormedAddCommGroup
theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ᵐ[μ] g) :
∫ a, f a ∂μ ≤ ∫ a, g a ∂μ := by
- simp only [integral, L1.integral]
+ have A : CompleteSpace ℝ := by infer_instance
+ simp only [integral, A, L1.integral]
exact setToFun_mono (dominatedFinMeasAdditive_weightedSMul μ)
(fun s _ _ => weightedSMul_nonneg s) hf hg h
#align measure_theory.integral_mono_ae MeasureTheory.integral_mono_ae
@@ -1333,7 +1374,7 @@ theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0
((hasFiniteIntegral_iff_ofReal hf).1 hfi.2).ne]
#align measure_theory.integral_mono_measure MeasureTheory.integral_mono_measure
-theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖ ≤ ∫ a, ‖f a‖ ∂μ :=
+theorem norm_integral_le_integral_norm (f : α → G) : ‖∫ a, f a ∂μ‖ ≤ ∫ a, ‖f a‖ ∂μ :=
have le_ae : ∀ᵐ a ∂μ, 0 ≤ ‖f a‖ := eventually_of_forall fun a => norm_nonneg _
by_cases
(fun h : AEStronglyMeasurable f μ =>
@@ -1346,7 +1387,7 @@ theorem norm_integral_le_integral_norm (f : α → E) : ‖∫ a, f a ∂μ‖
exact integral_nonneg_of_ae le_ae
#align measure_theory.norm_integral_le_integral_norm MeasureTheory.norm_integral_le_integral_norm
-theorem norm_integral_le_of_norm_le {f : α → E} {g : α → ℝ} (hg : Integrable g μ)
+theorem norm_integral_le_of_norm_le {f : α → G} {g : α → ℝ} (hg : Integrable g μ)
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ g x) : ‖∫ x, f x ∂μ‖ ≤ ∫ x, g x ∂μ :=
calc
‖∫ x, f x ∂μ‖ ≤ ∫ x, ‖f x‖ ∂μ := norm_integral_le_integral_norm f
@@ -1369,7 +1410,7 @@ theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
theorem integral_const (c : E) : ∫ _ : α, c ∂μ = (μ univ).toReal • c := by
cases' (@le_top _ _ _ (μ univ)).lt_or_eq with hμ hμ
· haveI : IsFiniteMeasure μ := ⟨hμ⟩
- simp only [integral, L1.integral]
+ simp only [integral, hE, L1.integral]
exact setToFun_const (dominatedFinMeasAdditive_weightedSMul _) _
· by_cases hc : c = 0
· simp [hc, integral_zero]
@@ -1379,7 +1420,7 @@ theorem integral_const (c : E) : ∫ _ : α, c ∂μ = (μ univ).toReal • c :=
simp [integral_undef, *]
#align measure_theory.integral_const MeasureTheory.integral_const
-theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → E} {C : ℝ}
+theorem norm_integral_le_of_norm_le_const [IsFiniteMeasure μ] {f : α → G} {C : ℝ}
(h : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : ‖∫ x, f x ∂μ‖ ≤ C * (μ univ).toReal :=
calc
‖∫ x, f x ∂μ‖ ≤ ∫ _, C ∂μ := norm_integral_le_of_norm_le (integrable_const C) h
@@ -1392,7 +1433,7 @@ theorem tendsto_integral_approxOn_of_measurable [MeasurableSpace E] [BorelSpace
Tendsto (fun n => (SimpleFunc.approxOn f hfm s y₀ h₀ n).integral μ)
atTop (𝓝 <| ∫ x, f x ∂μ) := by
have hfi' := SimpleFunc.integrable_approxOn hfm hfi h₀ h₀i
- simp only [SimpleFunc.integral_eq_integral _ (hfi' _), integral, L1.integral]
+ simp only [SimpleFunc.integral_eq_integral _ (hfi' _), integral, hE, L1.integral]
exact tendsto_setToFun_approxOn_of_measurable (dominatedFinMeasAdditive_weightedSMul μ)
hfi hfm hs h₀ h₀i
#align measure_theory.tendsto_integral_approx_on_of_measurable MeasureTheory.tendsto_integral_approxOn_of_measurable
@@ -1408,32 +1449,37 @@ theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace
variable {ν : Measure α}
-theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integrable f ν) :
+theorem integral_add_measure {f : α → G} (hμ : Integrable f μ) (hν : Integrable f ν) :
∫ x, f x ∂(μ + ν) = ∫ x, f x ∂μ + ∫ x, f x ∂ν := by
+ by_cases hG : CompleteSpace G; swap
+ · simp [integral, hG]
have hfi := hμ.add_measure hν
simp_rw [integral_eq_setToFun]
- have hμ_dfma : DominatedFinMeasAdditive (μ + ν) (weightedSMul μ : Set α → E →L[ℝ] E) 1 :=
+ have hμ_dfma : DominatedFinMeasAdditive (μ + ν) (weightedSMul μ : Set α → G →L[ℝ] G) 1 :=
DominatedFinMeasAdditive.add_measure_right μ ν (dominatedFinMeasAdditive_weightedSMul μ)
zero_le_one
- have hν_dfma : DominatedFinMeasAdditive (μ + ν) (weightedSMul ν : Set α → E →L[ℝ] E) 1 :=
+ have hν_dfma : DominatedFinMeasAdditive (μ + ν) (weightedSMul ν : Set α → G →L[ℝ] G) 1 :=
DominatedFinMeasAdditive.add_measure_left μ ν (dominatedFinMeasAdditive_weightedSMul ν)
zero_le_one
- rw [← setToFun_congr_measure_of_add_right hμ_dfma (dominatedFinMeasAdditive_weightedSMul μ) f hfi,
+ rw [← setToFun_congr_measure_of_add_right hμ_dfma
+ (dominatedFinMeasAdditive_weightedSMul μ) f hfi,
← setToFun_congr_measure_of_add_left hν_dfma (dominatedFinMeasAdditive_weightedSMul ν) f hfi]
refine' setToFun_add_left' _ _ _ (fun s _ hμνs => _) f
rw [Measure.coe_add, Pi.add_apply, add_lt_top] at hμνs
rw [weightedSMul, weightedSMul, weightedSMul, ← add_smul, Measure.coe_add, Pi.add_apply,
- toReal_add hμνs.1.ne hμνs.2.ne]
+ toReal_add hμνs.1.ne hμνs.2.ne]
#align measure_theory.integral_add_measure MeasureTheory.integral_add_measure
@[simp]
-theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) :
+theorem integral_zero_measure {m : MeasurableSpace α} (f : α → G) :
(∫ x, f x ∂(0 : Measure α)) = 0 := by
- simp only [integral, L1.integral]
- exact setToFun_measure_zero (dominatedFinMeasAdditive_weightedSMul _) rfl
+ by_cases hG : CompleteSpace G
+ · simp only [integral, hG, L1.integral]
+ exact setToFun_measure_zero (dominatedFinMeasAdditive_weightedSMul _) rfl
+ · simp [integral, hG]
#align measure_theory.integral_zero_measure MeasureTheory.integral_zero_measure
-theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
+theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → G} {μ : ι → Measure α}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
∫ a, f a ∂(∑ i in s, μ i) = ∑ i in s, ∫ a, f a ∂μ i := by
induction s using Finset.cons_induction_on with
@@ -1444,13 +1490,14 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E}
exact integral_add_measure hf.1 (integrable_finset_sum_measure.2 hf.2)
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
-theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
+theorem nndist_integral_add_measure_le_lintegral
+ {f : α → G} (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
(nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν := by
rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel']
exact ennnorm_integral_le_lintegral_ennnorm _
#align measure_theory.nndist_integral_add_measure_le_lintegral MeasureTheory.nndist_integral_add_measure_le_lintegral
-theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
+theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → G} {μ : ι → Measure α}
(hf : Integrable f (Measure.sum μ)) :
HasSum (fun i => ∫ a, f a ∂μ i) (∫ a, f a ∂Measure.sum μ) := by
have hfi : ∀ i, Integrable f (μ i) := fun i => hf.mono_measure (Measure.le_sum _ _)
@@ -1472,14 +1519,16 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
exact lt_of_add_lt_add_left hs
#align measure_theory.has_sum_integral_measure MeasureTheory.hasSum_integral_measure
-theorem integral_sum_measure {ι} {_ : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
+theorem integral_sum_measure {ι} {_ : MeasurableSpace α} {f : α → G} {μ : ι → Measure α}
(hf : Integrable f (Measure.sum μ)) : ∫ a, f a ∂Measure.sum μ = ∑' i, ∫ a, f a ∂μ i :=
(hasSum_integral_measure hf).tsum_eq.symm
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
-theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
+theorem integral_tsum {ι} [Countable ι] {f : ι → α → G} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
(hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) :
∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ := by
+ by_cases hG : CompleteSpace G; swap
+ · simp [integral, hG]
have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) := by
rw [← lintegral_tsum hf''] at hf'
@@ -1509,27 +1558,31 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
#align measure_theory.integral_tsum MeasureTheory.integral_tsum
@[simp]
-theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) :
+theorem integral_smul_measure (f : α → G) (c : ℝ≥0∞) :
∫ x, f x ∂c • μ = c.toReal • ∫ x, f x ∂μ := by
+ by_cases hG : CompleteSpace G; swap
+ · simp [integral, hG]
-- First we consider the “degenerate” case `c = ∞`
rcases eq_or_ne c ∞ with (rfl | hc)
· rw [ENNReal.top_toReal, zero_smul, integral_eq_setToFun, setToFun_top_smul_measure]
-- Main case: `c ≠ ∞`
simp_rw [integral_eq_setToFun, ← setToFun_smul_left]
- have hdfma : DominatedFinMeasAdditive μ (weightedSMul (c • μ) : Set α → E →L[ℝ] E) c.toReal :=
+ have hdfma : DominatedFinMeasAdditive μ (weightedSMul (c • μ) : Set α → G →L[ℝ] G) c.toReal :=
mul_one c.toReal ▸ (dominatedFinMeasAdditive_weightedSMul (c • μ)).of_smul_measure c hc
- have hdfma_smul := dominatedFinMeasAdditive_weightedSMul (F := E) (c • μ)
+ have hdfma_smul := dominatedFinMeasAdditive_weightedSMul (F := G) (c • μ)
rw [← setToFun_congr_smul_measure c hc hdfma hdfma_smul f]
exact setToFun_congr_left' _ _ (fun s _ _ => weightedSMul_smul_measure μ c) f
#align measure_theory.integral_smul_measure MeasureTheory.integral_smul_measure
theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α → β} (hφ : Measurable φ)
- {f : β → E} (hfm : StronglyMeasurable f) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ := by
+ {f : β → G} (hfm : StronglyMeasurable f) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ := by
+ by_cases hG : CompleteSpace G; swap
+ · simp [integral, hG]
by_cases hfi : Integrable f (Measure.map φ μ); swap
· rw [integral_undef hfi, integral_undef]
exact fun hfφ => hfi ((integrable_map_measure hfm.aestronglyMeasurable hφ.aemeasurable).2 hfφ)
- borelize E
- haveI : SeparableSpace (range f ∪ {0} : Set E) := hfm.separableSpace_range_union_singleton
+ borelize G
+ have : SeparableSpace (range f ∪ {0} : Set G) := hfm.separableSpace_range_union_singleton
refine' tendsto_nhds_unique
(tendsto_integral_approxOn_of_measurable_of_range_subset hfm.measurable hfi _ Subset.rfl) _
convert tendsto_integral_approxOn_of_measurable_of_range_subset (hfm.measurable.comp hφ)
@@ -1544,7 +1597,7 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
simp
#align measure_theory.integral_map_of_strongly_measurable MeasureTheory.integral_map_of_stronglyMeasurable
-theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → E}
+theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → G}
(hfm : AEStronglyMeasurable f (Measure.map φ μ)) :
∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
let g := hfm.mk f
@@ -1558,7 +1611,7 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
#align measure_theory.integral_map MeasureTheory.integral_map
theorem _root_.MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α → β}
- (hf : MeasurableEmbedding f) (g : β → E) : ∫ y, g y ∂Measure.map f μ = ∫ x, g (f x) ∂μ := by
+ (hf : MeasurableEmbedding f) (g : β → G) : ∫ y, g y ∂Measure.map f μ = ∫ x, g (f x) ∂μ := by
by_cases hgm : AEStronglyMeasurable g (Measure.map f μ)
· exact MeasureTheory.integral_map hf.measurable.aemeasurable hgm
· rw [integral_non_aestronglyMeasurable hgm, integral_non_aestronglyMeasurable]
@@ -1567,23 +1620,23 @@ theorem _root_.MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f
theorem _root_.ClosedEmbedding.integral_map {β} [TopologicalSpace α] [BorelSpace α]
[TopologicalSpace β] [MeasurableSpace β] [BorelSpace β] {φ : α → β} (hφ : ClosedEmbedding φ)
- (f : β → E) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
+ (f : β → G) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
hφ.measurableEmbedding.integral_map _
#align closed_embedding.integral_map ClosedEmbedding.integral_map
-theorem integral_map_equiv {β} [MeasurableSpace β] (e : α ≃ᵐ β) (f : β → E) :
+theorem integral_map_equiv {β} [MeasurableSpace β] (e : α ≃ᵐ β) (f : β → G) :
∫ y, f y ∂Measure.map e μ = ∫ x, f (e x) ∂μ :=
e.measurableEmbedding.integral_map f
#align measure_theory.integral_map_equiv MeasureTheory.integral_map_equiv
theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α → β} {ν}
- (h₁ : MeasurePreserving f μ ν) (h₂ : MeasurableEmbedding f) (g : β → E) :
+ (h₁ : MeasurePreserving f μ ν) (h₂ : MeasurableEmbedding f) (g : β → G) :
∫ x, g (f x) ∂μ = ∫ y, g y ∂ν :=
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → E) : ∫ x in s, f x = ∫ x : s, f x := by
+ (f : α → G) : ∫ x in s, f x = ∫ x : s, f x := by
rw [← map_comap_subtype_coe hs]
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
@@ -1762,18 +1815,20 @@ theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_in
exact (trim_measurableSet_eq hm (@SimpleFunc.measurableSet_fiber β F m f x)).symm
#align measure_theory.integral_trim_simple_func MeasureTheory.integral_trim_simpleFunc
-theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : StronglyMeasurable[m] f) :
+theorem integral_trim (hm : m ≤ m0) {f : β → G} (hf : StronglyMeasurable[m] f) :
∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm := by
- borelize F
+ by_cases hG : CompleteSpace G; swap
+ · simp [integral, hG]
+ borelize G
by_cases hf_int : Integrable f μ
swap
· have hf_int_m : ¬Integrable f (μ.trim hm) := fun hf_int_m =>
hf_int (integrable_of_integrable_trim hm hf_int_m)
rw [integral_undef hf_int, integral_undef hf_int_m]
- haveI : SeparableSpace (range f ∪ {0} : Set F) := hf.separableSpace_range_union_singleton
- let f_seq := @SimpleFunc.approxOn F β _ _ _ m _ hf.measurable (range f ∪ {0}) 0 (by simp) _
+ haveI : SeparableSpace (range f ∪ {0} : Set G) := hf.separableSpace_range_union_singleton
+ let f_seq := @SimpleFunc.approxOn G β _ _ _ m _ hf.measurable (range f ∪ {0}) 0 (by simp) _
have hf_seq_meas : ∀ n, StronglyMeasurable[m] (f_seq n) := fun n =>
- @SimpleFunc.stronglyMeasurable β F m _ (f_seq n)
+ @SimpleFunc.stronglyMeasurable β G m _ (f_seq n)
have hf_seq_int : ∀ n, Integrable (f_seq n) μ :=
SimpleFunc.integrable_approxOn_range (hf.mono hm).measurable hf_int
have hf_seq_int_m : ∀ n, Integrable (f_seq n) (μ.trim hm) := fun n =>
@@ -1785,14 +1840,14 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : StronglyMeasurable[m]
exact SimpleFunc.tendsto_approxOn_range_L1_nnnorm (hf.mono hm).measurable hf_int
have h_lim_2 : atTop.Tendsto (fun n => ∫ x, f_seq n x ∂μ) (𝓝 (∫ x, f x ∂μ.trim hm)) := by
simp_rw [hf_seq_eq]
- refine' @tendsto_integral_of_L1 β F _ _ _ m (μ.trim hm) _ f (hf_int.trim hm hf) _ _
+ refine' @tendsto_integral_of_L1 β G _ _ m (μ.trim hm) _ f (hf_int.trim hm hf) _ _
(eventually_of_forall hf_seq_int_m) _
- exact @SimpleFunc.tendsto_approxOn_range_L1_nnnorm β F m _ _ _ f _ _ hf.measurable
+ exact @SimpleFunc.tendsto_approxOn_range_L1_nnnorm β G m _ _ _ f _ _ hf.measurable
(hf_int.trim hm hf)
exact tendsto_nhds_unique h_lim_1 h_lim_2
#align measure_theory.integral_trim MeasureTheory.integral_trim
-theorem integral_trim_ae (hm : m ≤ m0) {f : β → F} (hf : AEStronglyMeasurable f (μ.trim hm)) :
+theorem integral_trim_ae (hm : m ≤ m0) {f : β → G} (hf : AEStronglyMeasurable f (μ.trim hm)) :
∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm := by
rw [integral_congr_ae (ae_eq_of_ae_eq_trim hf.ae_eq_mk), integral_congr_ae hf.ae_eq_mk]
exact integral_trim hm hf.stronglyMeasurable_mk
This is the second half of the changes originally in #5699, removing all occurrences of ;
after a space and implementing a linter rule to enforce it.
In most cases this 2-character substring has a space after it, so the following command was run first:
find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;
The remaining cases were few enough in number that they were done manually.
@@ -1192,7 +1192,7 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
∫ a, (f a).toReal ∂μ = (∫⁻ a, f a ∂μ).toReal := by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_toReal.aestronglyMeasurable]
· rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
- intro x hx; rw [lt_top_iff_ne_top] at hx ; simp [hx]
+ intro x hx; rw [lt_top_iff_ne_top] at hx; simp [hx]
· exact eventually_of_forall fun x => ENNReal.toReal_nonneg
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
register_simp_attr
s to 1 file (#5681)
There are slight differences between mathlib3
and mathlib4
(different set of attributes, different lemmas are in core/std), so I redid the same refactor instead of forward-porting changes.
mathlib3 PR: leanprover-community/mathlib#19223
@@ -4,12 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Zhouhang Zhou, Yury Kudryashov, Sébastien Gouëzel, Rémy Degenne
! This file was ported from Lean 3 source module measure_theory.integral.bochner
-! leanprover-community/mathlib commit 8f9fea08977f7e450770933ee6abb20733b47c92
+! leanprover-community/mathlib commit 48fb5b5280e7c81672afc9524185ae994553ebf4
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Integral.SetToL1
-import Mathlib.MeasureTheory.Integral.IntegralSimps
/-!
# Bochner integral
@@ -702,21 +701,25 @@ theorem integral_zero : integral (0 : α →₁[μ] E) = 0 := by
variable {α E}
+@[integral_simps]
theorem integral_add (f g : α →₁[μ] E) : integral (f + g) = integral f + integral g := by
simp only [integral]
exact map_add integralCLM f g
#align measure_theory.L1.integral_add MeasureTheory.L1.integral_add
+@[integral_simps]
theorem integral_neg (f : α →₁[μ] E) : integral (-f) = -integral f := by
simp only [integral]
exact map_neg integralCLM f
#align measure_theory.L1.integral_neg MeasureTheory.L1.integral_neg
+@[integral_simps]
theorem integral_sub (f g : α →₁[μ] E) : integral (f - g) = integral f - integral g := by
simp only [integral]
exact map_sub integralCLM f g
#align measure_theory.L1.integral_sub MeasureTheory.L1.integral_sub
+@[integral_simps]
theorem integral_smul (c : 𝕜) (f : α →₁[μ] E) : integral (c • f) = c • integral f := by
simp only [integral]
show (integralCLM' (E := E) 𝕜) (c • f) = c • (integralCLM' (E := E) 𝕜) f
@@ -875,6 +878,7 @@ theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀
exact setToFun_finset_sum (dominatedFinMeasAdditive_weightedSMul _) s hf
#align measure_theory.integral_finset_sum MeasureTheory.integral_finset_sum
+@[integral_simps]
theorem integral_neg (f : α → E) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_neg (dominatedFinMeasAdditive_weightedSMul μ) f
@@ -895,6 +899,7 @@ theorem integral_sub' (hf : Integrable f μ) (hg : Integrable g μ) :
integral_sub hf hg
#align measure_theory.integral_sub' MeasureTheory.integral_sub'
+@[integral_simps]
theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_smul (dominatedFinMeasAdditive_weightedSMul μ) weightedSMul_smul c f
@@ -1723,9 +1728,6 @@ set_option linter.uppercaseLean3 false in
end Properties
-attribute [integral_simps] integral_neg integral_smul L1.integral_add L1.integral_sub
- L1.integral_smul L1.integral_neg
-
section IntegralTrim
variable {H β γ : Type _} [NormedAddCommGroup H] {m m0 : MeasurableSpace β} {μ : Measure β}
∑'
precedence (#5615)
∑
, ∏
and variants).([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤])
replaced by $1 $2 $3
@@ -1473,7 +1473,7 @@ theorem integral_sum_measure {ι} {_ : MeasurableSpace α} {f : α → E} {μ :
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
- (hf' : (∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ) ≠ ∞) :
+ (hf' : ∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ ≠ ∞) :
∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ := by
have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) := by
@@ -1468,7 +1468,7 @@ theorem hasSum_integral_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ
#align measure_theory.has_sum_integral_measure MeasureTheory.hasSum_integral_measure
theorem integral_sum_measure {ι} {_ : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
- (hf : Integrable f (Measure.sum μ)) : (∫ a, f a ∂Measure.sum μ) = ∑' i, ∫ a, f a ∂μ i :=
+ (hf : Integrable f (Measure.sum μ)) : ∫ a, f a ∂Measure.sum μ = ∑' i, ∫ a, f a ∂μ i :=
(hasSum_integral_measure hf).tsum_eq.symm
#align measure_theory.integral_sum_measure MeasureTheory.integral_sum_measure
@@ -1505,7 +1505,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
@[simp]
theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) :
- (∫ x, f x ∂c • μ) = c.toReal • ∫ x, f x ∂μ := by
+ ∫ x, f x ∂c • μ = c.toReal • ∫ x, f x ∂μ := by
-- First we consider the “degenerate” case `c = ∞`
rcases eq_or_ne c ∞ with (rfl | hc)
· rw [ENNReal.top_toReal, zero_smul, integral_eq_setToFun, setToFun_top_smul_measure]
@@ -1519,7 +1519,7 @@ theorem integral_smul_measure (f : α → E) (c : ℝ≥0∞) :
#align measure_theory.integral_smul_measure MeasureTheory.integral_smul_measure
theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α → β} (hφ : Measurable φ)
- {f : β → E} (hfm : StronglyMeasurable f) : (∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ := by
+ {f : β → E} (hfm : StronglyMeasurable f) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ := by
by_cases hfi : Integrable f (Measure.map φ μ); swap
· rw [integral_undef hfi, integral_undef]
exact fun hfφ => hfi ((integrable_map_measure hfm.aestronglyMeasurable hφ.aemeasurable).2 hfφ)
@@ -1541,10 +1541,10 @@ theorem integral_map_of_stronglyMeasurable {β} [MeasurableSpace β] {φ : α
theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasurable φ μ) {f : β → E}
(hfm : AEStronglyMeasurable f (Measure.map φ μ)) :
- (∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
+ ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
let g := hfm.mk f
calc
- (∫ y, f y ∂Measure.map φ μ) = ∫ y, g y ∂Measure.map φ μ := integral_congr_ae hfm.ae_eq_mk
+ ∫ y, f y ∂Measure.map φ μ = ∫ y, g y ∂Measure.map φ μ := integral_congr_ae hfm.ae_eq_mk
_ = ∫ y, g y ∂Measure.map (hφ.mk φ) μ := by congr 1; exact Measure.map_congr hφ.ae_eq_mk
_ = ∫ x, g (hφ.mk φ x) ∂μ :=
(integral_map_of_stronglyMeasurable hφ.measurable_mk hfm.stronglyMeasurable_mk)
@@ -1553,7 +1553,7 @@ theorem integral_map {β} [MeasurableSpace β] {φ : α → β} (hφ : AEMeasura
#align measure_theory.integral_map MeasureTheory.integral_map
theorem _root_.MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f : α → β}
- (hf : MeasurableEmbedding f) (g : β → E) : (∫ y, g y ∂Measure.map f μ) = ∫ x, g (f x) ∂μ := by
+ (hf : MeasurableEmbedding f) (g : β → E) : ∫ y, g y ∂Measure.map f μ = ∫ x, g (f x) ∂μ := by
by_cases hgm : AEStronglyMeasurable g (Measure.map f μ)
· exact MeasureTheory.integral_map hf.measurable.aemeasurable hgm
· rw [integral_non_aestronglyMeasurable hgm, integral_non_aestronglyMeasurable]
@@ -1562,12 +1562,12 @@ theorem _root_.MeasurableEmbedding.integral_map {β} {_ : MeasurableSpace β} {f
theorem _root_.ClosedEmbedding.integral_map {β} [TopologicalSpace α] [BorelSpace α]
[TopologicalSpace β] [MeasurableSpace β] [BorelSpace β] {φ : α → β} (hφ : ClosedEmbedding φ)
- (f : β → E) : (∫ y, f y ∂Measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
+ (f : β → E) : ∫ y, f y ∂Measure.map φ μ = ∫ x, f (φ x) ∂μ :=
hφ.measurableEmbedding.integral_map _
#align closed_embedding.integral_map ClosedEmbedding.integral_map
theorem integral_map_equiv {β} [MeasurableSpace β] (e : α ≃ᵐ β) (f : β → E) :
- (∫ y, f y ∂Measure.map e μ) = ∫ x, f (e x) ∂μ :=
+ ∫ y, f y ∂Measure.map e μ = ∫ x, f (e x) ∂μ :=
e.measurableEmbedding.integral_map f
#align measure_theory.integral_map_equiv MeasureTheory.integral_map_equiv
@@ -1585,25 +1585,25 @@ theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : Measur
@[simp]
theorem integral_dirac' [MeasurableSpace α] (f : α → E) (a : α) (hfm : StronglyMeasurable f) :
- (∫ x, f x ∂Measure.dirac a) = f a := by
+ ∫ x, f x ∂Measure.dirac a = f a := by
borelize E
calc
- (∫ x, f x ∂Measure.dirac a) = ∫ _, f a ∂Measure.dirac a :=
+ ∫ x, f x ∂Measure.dirac a = ∫ _, f a ∂Measure.dirac a :=
integral_congr_ae <| ae_eq_dirac' hfm.measurable
_ = f a := by simp [Measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac' MeasureTheory.integral_dirac'
@[simp]
theorem integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α) :
- (∫ x, f x ∂Measure.dirac a) = f a :=
+ ∫ x, f x ∂Measure.dirac a = f a :=
calc
- (∫ x, f x ∂Measure.dirac a) = ∫ _, f a ∂Measure.dirac a := integral_congr_ae <| ae_eq_dirac f
+ ∫ x, f x ∂Measure.dirac a = ∫ _, f a ∂Measure.dirac a := integral_congr_ae <| ae_eq_dirac f
_ = f a := by simp [Measure.dirac_apply_of_mem]
#align measure_theory.integral_dirac MeasureTheory.integral_dirac
theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : StronglyMeasurable f) (a : α)
{s : Set α} (hs : MeasurableSet s) [Decidable (a ∈ s)] :
- (∫ x in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0 := by
+ ∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 := by
rw [restrict_dirac' hs]
split_ifs
· exact integral_dirac' _ _ hf
@@ -1612,7 +1612,7 @@ theorem set_integral_dirac' {mα : MeasurableSpace α} {f : α → E} (hf : Stro
theorem set_integral_dirac [MeasurableSpace α] [MeasurableSingletonClass α] (f : α → E) (a : α)
(s : Set α) [Decidable (a ∈ s)] :
- (∫ x in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0 := by
+ ∫ x in s, f x ∂Measure.dirac a = if a ∈ s then f a else 0 := by
rw [restrict_dirac]
split_ifs
· exact integral_dirac _ _
@@ -1260,6 +1260,10 @@ theorem L1.norm_eq_integral_norm (f : α →₁[μ] H) : ‖f‖ = ∫ a, ‖f a
set_option linter.uppercaseLean3 false in
#align measure_theory.L1.norm_eq_integral_norm MeasureTheory.L1.norm_eq_integral_norm
+theorem L1.dist_eq_integral_dist (f g : α →₁[μ] H) : dist f g = ∫ a, dist (f a) (g a) ∂μ := by
+ simp only [dist_eq_norm, L1.norm_eq_integral_norm]
+ exact integral_congr_ae <| (Lp.coeFn_sub _ _).fun_comp norm
+
theorem L1.norm_of_fun_eq_integral_norm {f : α → H} (hf : Integrable f μ) :
‖hf.toL1 f‖ = ∫ a, ‖f a‖ ∂μ := by
rw [L1.norm_eq_integral_norm]
Also drop some of the parentheses that are no longer needed.
@@ -800,16 +800,16 @@ end
@[inherit_doc MeasureTheory.integral]
-notation3"∫ "(...)", "r:(scoped f => f)" ∂"μ => integral μ r
+notation3 "∫ "(...)", "r:60:(scoped f => f)" ∂"μ:70 => integral μ r
@[inherit_doc MeasureTheory.integral]
-notation3"∫ "(...)", "r:(scoped f => integral volume f) => r
+notation3 "∫ "(...)", "r:60:(scoped f => integral volume f) => r
@[inherit_doc MeasureTheory.integral]
-notation3"∫ "(...)" in "s", "r:(scoped f => f)" ∂"μ => integral (Measure.restrict μ s) r
+notation3 "∫ "(...)" in "s", "r:60:(scoped f => f)" ∂"μ:70 => integral (Measure.restrict μ s) r
@[inherit_doc MeasureTheory.integral]
-notation3"∫ "(...)" in "s", "r:(scoped f => integral (Measure.restrict volume s) f) => r
+notation3 "∫ "(...)" in "s", "r:60:(scoped f => integral (Measure.restrict volume s) f) => r
section Properties
@@ -817,12 +817,12 @@ open ContinuousLinearMap MeasureTheory.SimpleFunc
variable {f g : α → E} {m : MeasurableSpace α} {μ : Measure α}
-theorem integral_eq (f : α → E) (hf : Integrable f μ) : (∫ a, f a ∂μ) = L1.integral (hf.toL1 f) :=
+theorem integral_eq (f : α → E) (hf : Integrable f μ) : ∫ a, f a ∂μ = L1.integral (hf.toL1 f) :=
by rw [integral]; exact @dif_pos _ (id _) hf _ _ _
#align measure_theory.integral_eq MeasureTheory.integral_eq
theorem integral_eq_setToFun (f : α → E) :
- (∫ a, f a ∂μ) = setToFun μ (weightedSMul μ) (dominatedFinMeasAdditive_weightedSMul μ) f := by
+ ∫ a, f a ∂μ = setToFun μ (weightedSMul μ) (dominatedFinMeasAdditive_weightedSMul μ) f := by
simp only [integral, L1.integral]; rfl
#align measure_theory.integral_eq_set_to_fun MeasureTheory.integral_eq_setToFun
@@ -832,17 +832,17 @@ theorem L1.integral_eq_integral (f : α →₁[μ] E) : L1.integral f = ∫ a, f
set_option linter.uppercaseLean3 false in
#align measure_theory.L1.integral_eq_integral MeasureTheory.L1.integral_eq_integral
-theorem integral_undef (h : ¬Integrable f μ) : (∫ a, f a ∂μ) = 0 := by
+theorem integral_undef (h : ¬Integrable f μ) : ∫ a, f a ∂μ = 0 := by
rw [integral]; exact @dif_neg _ (id _) h _ _ _
#align measure_theory.integral_undef MeasureTheory.integral_undef
-theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : (∫ a, f a ∂μ) = 0 :=
+theorem integral_non_aestronglyMeasurable (h : ¬AEStronglyMeasurable f μ) : ∫ a, f a ∂μ = 0 :=
integral_undef <| not_and_of_not_left _ h
#align measure_theory.integral_non_ae_strongly_measurable MeasureTheory.integral_non_aestronglyMeasurable
variable (α E)
-theorem integral_zero : (∫ _ : α, (0 : E) ∂μ) = 0 := by
+theorem integral_zero : ∫ _ : α, (0 : E) ∂μ = 0 := by
simp only [integral, L1.integral]
exact setToFun_zero (dominatedFinMeasAdditive_weightedSMul μ)
#align measure_theory.integral_zero MeasureTheory.integral_zero
@@ -854,68 +854,68 @@ theorem integral_zero' : integral μ (0 : α → E) = 0 :=
variable {α E}
-theorem integrable_of_integral_eq_one {f : α → ℝ} (h : (∫ x, f x ∂μ) = 1) : Integrable f μ := by
+theorem integrable_of_integral_eq_one {f : α → ℝ} (h : ∫ x, f x ∂μ = 1) : Integrable f μ := by
contrapose h; rw [integral_undef h]; exact zero_ne_one
#align measure_theory.integrable_of_integral_eq_one MeasureTheory.integrable_of_integral_eq_one
theorem integral_add (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, f a + g a ∂μ) = (∫ a, f a ∂μ) + ∫ a, g a ∂μ := by
+ ∫ a, f a + g a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_add (dominatedFinMeasAdditive_weightedSMul μ) hf hg
#align measure_theory.integral_add MeasureTheory.integral_add
theorem integral_add' (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, (f + g) a ∂μ) = (∫ a, f a ∂μ) + ∫ a, g a ∂μ :=
+ ∫ a, (f + g) a ∂μ = ∫ a, f a ∂μ + ∫ a, g a ∂μ :=
integral_add hf hg
#align measure_theory.integral_add' MeasureTheory.integral_add'
theorem integral_finset_sum {ι} (s : Finset ι) {f : ι → α → E} (hf : ∀ i ∈ s, Integrable (f i) μ) :
- (∫ a, ∑ i in s, f i a ∂μ) = ∑ i in s, ∫ a, f i a ∂μ := by
+ ∫ a, ∑ i in s, f i a ∂μ = ∑ i in s, ∫ a, f i a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_finset_sum (dominatedFinMeasAdditive_weightedSMul _) s hf
#align measure_theory.integral_finset_sum MeasureTheory.integral_finset_sum
-theorem integral_neg (f : α → E) : (∫ a, -f a ∂μ) = -∫ a, f a ∂μ := by
+theorem integral_neg (f : α → E) : ∫ a, -f a ∂μ = -∫ a, f a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_neg (dominatedFinMeasAdditive_weightedSMul μ) f
#align measure_theory.integral_neg MeasureTheory.integral_neg
-theorem integral_neg' (f : α → E) : (∫ a, (-f) a ∂μ) = -∫ a, f a ∂μ :=
+theorem integral_neg' (f : α → E) : ∫ a, (-f) a ∂μ = -∫ a, f a ∂μ :=
integral_neg f
#align measure_theory.integral_neg' MeasureTheory.integral_neg'
theorem integral_sub (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, f a - g a ∂μ) = (∫ a, f a ∂μ) - ∫ a, g a ∂μ := by
+ ∫ a, f a - g a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_sub (dominatedFinMeasAdditive_weightedSMul μ) hf hg
#align measure_theory.integral_sub MeasureTheory.integral_sub
theorem integral_sub' (hf : Integrable f μ) (hg : Integrable g μ) :
- (∫ a, (f - g) a ∂μ) = (∫ a, f a ∂μ) - ∫ a, g a ∂μ :=
+ ∫ a, (f - g) a ∂μ = ∫ a, f a ∂μ - ∫ a, g a ∂μ :=
integral_sub hf hg
#align measure_theory.integral_sub' MeasureTheory.integral_sub'
-theorem integral_smul (c : 𝕜) (f : α → E) : (∫ a, c • f a ∂μ) = c • ∫ a, f a ∂μ := by
+theorem integral_smul (c : 𝕜) (f : α → E) : ∫ a, c • f a ∂μ = c • ∫ a, f a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_smul (dominatedFinMeasAdditive_weightedSMul μ) weightedSMul_smul c f
#align measure_theory.integral_smul MeasureTheory.integral_smul
theorem integral_mul_left {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, r * f a ∂μ) = r * ∫ a, f a ∂μ :=
+ ∫ a, r * f a ∂μ = r * ∫ a, f a ∂μ :=
integral_smul r f
#align measure_theory.integral_mul_left MeasureTheory.integral_mul_left
theorem integral_mul_right {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, f a * r ∂μ) = (∫ a, f a ∂μ) * r := by
+ ∫ a, f a * r ∂μ = (∫ a, f a ∂μ) * r := by
simp only [mul_comm]; exact integral_mul_left r f
#align measure_theory.integral_mul_right MeasureTheory.integral_mul_right
theorem integral_div {L : Type _} [IsROrC L] (r : L) (f : α → L) :
- (∫ a, f a / r ∂μ) = (∫ a, f a ∂μ) / r := by
+ ∫ a, f a / r ∂μ = (∫ a, f a ∂μ) / r := by
simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
#align measure_theory.integral_div MeasureTheory.integral_div
-theorem integral_congr_ae (h : f =ᵐ[μ] g) : (∫ a, f a ∂μ) = ∫ a, g a ∂μ := by
+theorem integral_congr_ae (h : f =ᵐ[μ] g) : ∫ a, f a ∂μ = ∫ a, g a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_congr_ae (dominatedFinMeasAdditive_weightedSMul μ) h
#align measure_theory.integral_congr_ae MeasureTheory.integral_congr_ae
@@ -923,7 +923,7 @@ theorem integral_congr_ae (h : f =ᵐ[μ] g) : (∫ a, f a ∂μ) = ∫ a, g a
-- Porting note: `nolint simpNF` added because simplify fails on left-hand side
@[simp, nolint simpNF]
theorem L1.integral_of_fun_eq_integral {f : α → E} (hf : Integrable f μ) :
- (∫ a, (hf.toL1 f) a ∂μ) = ∫ a, f a ∂μ := by
+ ∫ a, (hf.toL1 f) a ∂μ = ∫ a, f a ∂μ := by
simp only [MeasureTheory.integral, L1.integral]
exact setToFun_toL1 (dominatedFinMeasAdditive_weightedSMul μ) hf
set_option linter.uppercaseLean3 false in
@@ -949,7 +949,7 @@ theorem ennnorm_integral_le_lintegral_ennnorm (f : α → E) :
exact norm_integral_le_lintegral_norm f
#align measure_theory.ennnorm_integral_le_lintegral_ennnorm MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
-theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : (∫ a, f a ∂μ) = 0 := by
+theorem integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : ∫ a, f a ∂μ = 0 := by
simp [integral_congr_ae hf, integral_zero]
#align measure_theory.integral_eq_zero_of_ae MeasureTheory.integral_eq_zero_of_ae
@@ -1083,12 +1083,11 @@ theorem continuous_of_dominated {F : X → α → E} {bound : α → ℝ}
/-- The Bochner integral of a real-valued function `f : α → ℝ` is the difference between the
integral of the positive part of `f` and the integral of the negative part of `f`. -/
theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
- (∫ a, f a ∂μ) =
- ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) -
- ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) := by
+ ∫ a, f a ∂μ =
+ ENNReal.toReal (∫⁻ a, .ofReal (f a) ∂μ) - ENNReal.toReal (∫⁻ a, .ofReal (-f a) ∂μ) := by
let f₁ := hf.toL1 f
-- Go to the `L¹` space
- have eq₁ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) = ‖Lp.posPart f₁‖ := by
+ have eq₁ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal (f a) ∂μ) = ‖Lp.posPart f₁‖ := by
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
@@ -1099,7 +1098,7 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
rw [Real.nnnorm_of_nonneg (le_max_right _ _)]
rw [Real.coe_toNNReal', NNReal.coe_mk]
-- Go to the `L¹` space
- have eq₂ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| -f a ∂μ) = ‖Lp.negPart f₁‖ := by
+ have eq₂ : ENNReal.toReal (∫⁻ a, ENNReal.ofReal (-f a) ∂μ) = ‖Lp.negPart f₁‖ := by
rw [L1.norm_def]
congr 1
apply lintegral_congr_ae
@@ -1115,10 +1114,10 @@ theorem integral_eq_lintegral_pos_part_sub_lintegral_neg_part {f : α → ℝ} (
theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
(hfm : AEStronglyMeasurable f μ) :
- (∫ a, f a ∂μ) = ENNReal.toReal (∫⁻ a, ENNReal.ofReal <| f a ∂μ) := by
+ ∫ a, f a ∂μ = ENNReal.toReal (∫⁻ a, ENNReal.ofReal (f a) ∂μ) := by
by_cases hfi : Integrable f μ
· rw [integral_eq_lintegral_pos_part_sub_lintegral_neg_part hfi]
- have h_min : (∫⁻ a, ENNReal.ofReal (-f a) ∂μ) = 0 := by
+ have h_min : ∫⁻ a, ENNReal.ofReal (-f a) ∂μ = 0 := by
rw [lintegral_eq_zero_iff']
· refine' hf.mono _
simp only [Pi.zero_apply]
@@ -1129,7 +1128,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
· rw [integral_undef hfi]
simp_rw [Integrable, hfm, hasFiniteIntegral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
Classical.not_not] at hfi
- have : (∫⁻ a : α, ENNReal.ofReal (f a) ∂μ) = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ := by
+ have : ∫⁻ a : α, ENNReal.ofReal (f a) ∂μ = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ := by
refine' lintegral_congr_ae (hf.mono fun a h => _)
dsimp only
rw [Real.norm_eq_abs, abs_of_nonneg h]
@@ -1137,7 +1136,7 @@ theorem integral_eq_lintegral_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f
#align measure_theory.integral_eq_lintegral_of_nonneg_ae MeasureTheory.integral_eq_lintegral_of_nonneg_ae
theorem integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f : α → G}
- (hf : AEStronglyMeasurable f μ) : (∫ x, ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) := by
+ (hf : AEStronglyMeasurable f μ) : ∫ x, ‖f x‖ ∂μ = ENNReal.toReal (∫⁻ x, ‖f x‖₊ ∂μ) := by
rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
· simp_rw [ofReal_norm_eq_coe_nnnorm]
· refine' ae_of_all _ _; simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
@@ -1150,7 +1149,7 @@ theorem ofReal_integral_norm_eq_lintegral_nnnorm {G} [NormedAddCommGroup G] {f :
#align measure_theory.of_real_integral_norm_eq_lintegral_nnnorm MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm
theorem integral_eq_integral_pos_part_sub_integral_neg_part {f : α → ℝ} (hf : Integrable f μ) :
- (∫ a, f a ∂μ) = (∫ a, (Real.toNNReal (f a) : ℝ) ∂μ) - ∫ a, (Real.toNNReal (-f a) : ℝ) ∂μ := by
+ ∫ a, f a ∂μ = ∫ a, (Real.toNNReal (f a) : ℝ) ∂μ - ∫ a, (Real.toNNReal (-f a) : ℝ) ∂μ := by
rw [← integral_sub hf.real_toNNReal]
· simp
· exact hf.neg.real_toNNReal
@@ -1163,7 +1162,7 @@ theorem integral_nonneg_of_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) : 0 ≤ ∫
#align measure_theory.integral_nonneg_of_ae MeasureTheory.integral_nonneg_of_ae
theorem lintegral_coe_eq_integral (f : α → ℝ≥0) (hfi : Integrable (fun x => (f x : ℝ)) μ) :
- (∫⁻ a, f a ∂μ) = ENNReal.ofReal (∫ a, f a ∂μ) := by
+ ∫⁻ a, f a ∂μ = ENNReal.ofReal (∫ a, f a ∂μ) := by
simp_rw [integral_eq_lintegral_of_nonneg_ae (eventually_of_forall fun x => (f x).coe_nonneg)
hfi.aestronglyMeasurable, ← ENNReal.coe_nnreal_eq]
rw [ENNReal.ofReal_toReal]
@@ -1185,7 +1184,7 @@ theorem ofReal_integral_eq_lintegral_ofReal {f : α → ℝ} (hfi : Integrable f
#align measure_theory.of_real_integral_eq_lintegral_of_real MeasureTheory.ofReal_integral_eq_lintegral_ofReal
theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf : ∀ᵐ x ∂μ, f x < ∞) :
- (∫ a, (f a).toReal ∂μ) = (∫⁻ a, f a ∂μ).toReal := by
+ ∫ a, (f a).toReal ∂μ = (∫⁻ a, f a ∂μ).toReal := by
rw [integral_eq_lintegral_of_nonneg_ae _ hfm.ennreal_toReal.aestronglyMeasurable]
· rw [lintegral_congr_ae]; refine' hf.mp (eventually_of_forall _)
intro x hx; rw [lt_top_iff_ne_top] at hx ; simp [hx]
@@ -1193,13 +1192,13 @@ theorem integral_toReal {f : α → ℝ≥0∞} (hfm : AEMeasurable f μ) (hf :
#align measure_theory.integral_to_real MeasureTheory.integral_toReal
theorem lintegral_coe_le_coe_iff_integral_le {f : α → ℝ≥0} (hfi : Integrable (fun x => (f x : ℝ)) μ)
- {b : ℝ≥0} : (∫⁻ a, f a ∂μ) ≤ b ↔ (∫ a, (f a : ℝ) ∂μ) ≤ b := by
+ {b : ℝ≥0} : ∫⁻ a, f a ∂μ ≤ b ↔ ∫ a, (f a : ℝ) ∂μ ≤ b := by
rw [lintegral_coe_eq_integral f hfi, ENNReal.ofReal, ENNReal.coe_le_coe,
Real.toNNReal_le_iff_le_coe]
#align measure_theory.lintegral_coe_le_coe_iff_integral_le MeasureTheory.lintegral_coe_le_coe_iff_integral_le
-theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (h : (∫⁻ a, f a ∂μ) ≤ b) :
- (∫ a, (f a : ℝ) ∂μ) ≤ b := by
+theorem integral_coe_le_of_lintegral_coe_le {f : α → ℝ≥0} {b : ℝ≥0} (h : ∫⁻ a, f a ∂μ ≤ b) :
+ ∫ a, (f a : ℝ) ∂μ ≤ b := by
by_cases hf : Integrable (fun a => (f a : ℝ)) μ
· exact (lintegral_coe_le_coe_iff_integral_le hf).1 h
· rw [integral_undef hf]; exact b.2
@@ -1209,18 +1208,18 @@ theorem integral_nonneg {f : α → ℝ} (hf : 0 ≤ f) : 0 ≤ ∫ a, f a ∂μ
integral_nonneg_of_ae <| eventually_of_forall hf
#align measure_theory.integral_nonneg MeasureTheory.integral_nonneg
-theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : (∫ a, f a ∂μ) ≤ 0 := by
+theorem integral_nonpos_of_ae {f : α → ℝ} (hf : f ≤ᵐ[μ] 0) : ∫ a, f a ∂μ ≤ 0 := by
have hf : 0 ≤ᵐ[μ] -f := hf.mono fun a h => by rwa [Pi.neg_apply, Pi.zero_apply, neg_nonneg]
have : 0 ≤ ∫ a, -f a ∂μ := integral_nonneg_of_ae hf
rwa [integral_neg, neg_nonneg] at this
#align measure_theory.integral_nonpos_of_ae MeasureTheory.integral_nonpos_of_ae
-theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : (∫ a, f a ∂μ) ≤ 0 :=
+theorem integral_nonpos {f : α → ℝ} (hf : f ≤ 0) : ∫ a, f a ∂μ ≤ 0 :=
integral_nonpos_of_ae <| eventually_of_forall hf
#align measure_theory.integral_nonpos MeasureTheory.integral_nonpos
theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = 0 ↔ f =ᵐ[μ] 0 := by
+ ∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 := by
simp_rw [integral_eq_lintegral_of_nonneg_ae hf hfi.1, ENNReal.toReal_eq_zero_iff,
← ENNReal.not_lt_top, ← hasFiniteIntegral_iff_ofReal hf, hfi.2, not_true, or_false_iff]
-- Porting note: split into parts, to make `rw` and `simp` work
@@ -1232,7 +1231,7 @@ theorem integral_eq_zero_iff_of_nonneg_ae {f : α → ℝ} (hf : 0 ≤ᵐ[μ] f)
#align measure_theory.integral_eq_zero_iff_of_nonneg_ae MeasureTheory.integral_eq_zero_iff_of_nonneg_ae
theorem integral_eq_zero_iff_of_nonneg {f : α → ℝ} (hf : 0 ≤ f) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = 0 ↔ f =ᵐ[μ] 0 :=
+ ∫ x, f x ∂μ = 0 ↔ f =ᵐ[μ] 0 :=
integral_eq_zero_iff_of_nonneg_ae (eventually_of_forall hf) hfi
#align measure_theory.integral_eq_zero_iff_of_nonneg MeasureTheory.integral_eq_zero_iff_of_nonneg
@@ -1274,7 +1273,7 @@ set_option linter.uppercaseLean3 false in
theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1 : p ≠ 0) (hp2 : p ≠ ∞)
(hf : Memℒp f p μ) :
snorm f p μ = ENNReal.ofReal ((∫ a, ‖f a‖ ^ p.toReal ∂μ) ^ p.toReal⁻¹) := by
- have A : (∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.toReal) ∂μ) = ∫⁻ a : α, ‖f a‖₊ ^ p.toReal ∂μ := by
+ have A : ∫⁻ a : α, ENNReal.ofReal (‖f a‖ ^ p.toReal) ∂μ = ∫⁻ a : α, ‖f a‖₊ ^ p.toReal ∂μ := by
apply lintegral_congr
intro x
rw [← ofReal_rpow_of_nonneg (norm_nonneg _) toReal_nonneg, ofReal_norm_eq_coe_nnnorm,
@@ -1293,7 +1292,7 @@ theorem Memℒp.snorm_eq_integral_rpow_norm {f : α → H} {p : ℝ≥0∞} (hp1
end NormedAddCommGroup
theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ᵐ[μ] g) :
- (∫ a, f a ∂μ) ≤ ∫ a, g a ∂μ := by
+ ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ := by
simp only [integral, L1.integral]
exact setToFun_mono (dominatedFinMeasAdditive_weightedSMul μ)
(fun s _ _ => weightedSMul_nonneg s) hf hg h
@@ -1301,12 +1300,12 @@ theorem integral_mono_ae {f g : α → ℝ} (hf : Integrable f μ) (hg : Integra
@[mono]
theorem integral_mono {f g : α → ℝ} (hf : Integrable f μ) (hg : Integrable g μ) (h : f ≤ g) :
- (∫ a, f a ∂μ) ≤ ∫ a, g a ∂μ :=
+ ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ :=
integral_mono_ae hf hg <| eventually_of_forall h
#align measure_theory.integral_mono MeasureTheory.integral_mono
theorem integral_mono_of_nonneg {f g : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hgi : Integrable g μ)
- (h : f ≤ᵐ[μ] g) : (∫ a, f a ∂μ) ≤ ∫ a, g a ∂μ := by
+ (h : f ≤ᵐ[μ] g) : ∫ a, f a ∂μ ≤ ∫ a, g a ∂μ := by
by_cases hfm : AEStronglyMeasurable f μ
· refine' integral_mono_ae ⟨hfm, _⟩ hgi h
refine' hgi.hasFiniteIntegral.mono <| h.mp <| hf.mono fun x hf hfg => _
@@ -1316,7 +1315,7 @@ theorem integral_mono_of_nonneg {f g : α → ℝ} (hf : 0 ≤ᵐ[μ] f) (hgi :
#align measure_theory.integral_mono_of_nonneg MeasureTheory.integral_mono_of_nonneg
theorem integral_mono_measure {f : α → ℝ} {ν} (hle : μ ≤ ν) (hf : 0 ≤ᵐ[ν] f)
- (hfi : Integrable f ν) : (∫ a, f a ∂μ) ≤ ∫ a, f a ∂ν := by
+ (hfi : Integrable f ν) : ∫ a, f a ∂μ ≤ ∫ a, f a ∂ν := by
have hfi' : Integrable f μ := hfi.mono_measure hle
have hf' : 0 ≤ᵐ[μ] f := hle.absolutelyContinuous hf
rw [integral_eq_lintegral_of_nonneg_ae hf' hfi'.1, integral_eq_lintegral_of_nonneg_ae hf hfi.1,
@@ -1353,12 +1352,12 @@ theorem SimpleFunc.integral_eq_integral (f : α →ₛ E) (hfi : Integrable f μ
#align measure_theory.simple_func.integral_eq_integral MeasureTheory.SimpleFunc.integral_eq_integral
theorem SimpleFunc.integral_eq_sum (f : α →ₛ E) (hfi : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
+ ∫ x, f x ∂μ = ∑ x in f.range, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
rw [← f.integral_eq_integral hfi, SimpleFunc.integral, ← SimpleFunc.integral_eq]; rfl
#align measure_theory.simple_func.integral_eq_sum MeasureTheory.SimpleFunc.integral_eq_sum
@[simp]
-theorem integral_const (c : E) : (∫ _ : α, c ∂μ) = (μ univ).toReal • c := by
+theorem integral_const (c : E) : ∫ _ : α, c ∂μ = (μ univ).toReal • c := by
cases' (@le_top _ _ _ (μ univ)).lt_or_eq with hμ hμ
· haveI : IsFiniteMeasure μ := ⟨hμ⟩
simp only [integral, L1.integral]
@@ -1401,7 +1400,7 @@ theorem tendsto_integral_approxOn_of_measurable_of_range_subset [MeasurableSpace
variable {ν : Measure α}
theorem integral_add_measure {f : α → E} (hμ : Integrable f μ) (hν : Integrable f ν) :
- (∫ x, f x ∂μ + ν) = (∫ x, f x ∂μ) + ∫ x, f x ∂ν := by
+ ∫ x, f x ∂(μ + ν) = ∫ x, f x ∂μ + ∫ x, f x ∂ν := by
have hfi := hμ.add_measure hν
simp_rw [integral_eq_setToFun]
have hμ_dfma : DominatedFinMeasAdditive (μ + ν) (weightedSMul μ : Set α → E →L[ℝ] E) 1 :=
@@ -1427,7 +1426,7 @@ theorem integral_zero_measure {m : MeasurableSpace α} (f : α → E) :
theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E} {μ : ι → Measure α}
{s : Finset ι} (hf : ∀ i ∈ s, Integrable f (μ i)) :
- (∫ a, f a ∂∑ i in s, μ i) = ∑ i in s, ∫ a, f a ∂μ i := by
+ ∫ a, f a ∂(∑ i in s, μ i) = ∑ i in s, ∫ a, f a ∂μ i := by
induction s using Finset.cons_induction_on with
| h₁ => simp
| h₂ h ih =>
@@ -1437,7 +1436,7 @@ theorem integral_finset_sum_measure {ι} {m : MeasurableSpace α} {f : α → E}
#align measure_theory.integral_finset_sum_measure MeasureTheory.integral_finset_sum_measure
theorem nndist_integral_add_measure_le_lintegral (h₁ : Integrable f μ) (h₂ : Integrable f ν) :
- (nndist (∫ x, f x ∂μ) (∫ x, f x ∂μ + ν) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν := by
+ (nndist (∫ x, f x ∂μ) (∫ x, f x ∂(μ + ν)) : ℝ≥0∞) ≤ ∫⁻ x, ‖f x‖₊ ∂ν := by
rw [integral_add_measure h₁ h₂, nndist_comm, nndist_eq_nnnorm, add_sub_cancel']
exact ennnorm_integral_le_lintegral_ennnorm _
#align measure_theory.nndist_integral_add_measure_le_lintegral MeasureTheory.nndist_integral_add_measure_le_lintegral
@@ -1471,7 +1470,7 @@ theorem integral_sum_measure {ι} {_ : MeasurableSpace α} {f : α → E} {μ :
theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AEStronglyMeasurable (f i) μ)
(hf' : (∑' i, ∫⁻ a : α, ‖f i a‖₊ ∂μ) ≠ ∞) :
- (∫ a : α, ∑' i, f i a ∂μ) = ∑' i, ∫ a : α, f i a ∂μ := by
+ ∫ a : α, ∑' i, f i a ∂μ = ∑' i, ∫ a : α, f i a ∂μ := by
have hf'' : ∀ i, AEMeasurable (fun x => (‖f i x‖₊ : ℝ≥0∞)) μ := fun i => (hf i).ennnorm
have hhh : ∀ᵐ a : α ∂μ, Summable fun n => (‖f n a‖₊ : ℝ) := by
rw [← lintegral_tsum hf''] at hf'
@@ -1490,7 +1489,7 @@ theorem integral_tsum {ι} [Countable ι] {f : ι → α → E} (hf : ∀ i, AES
apply AEMeasurable.nnreal_tsum
exact fun i => (hf i).nnnorm.aemeasurable
· dsimp [HasFiniteIntegral]
- have : (∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ) < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
+ have : ∫⁻ a, ∑' n, ‖f n a‖₊ ∂μ < ⊤ := by rwa [lintegral_tsum hf'', lt_top_iff_ne_top]
convert this using 1
apply lintegral_congr_ae
simp_rw [← coe_nnnorm, ← NNReal.coe_tsum, NNReal.nnnorm_eq]
@@ -1570,13 +1569,12 @@ theorem integral_map_equiv {β} [MeasurableSpace β] (e : α ≃ᵐ β) (f : β
theorem MeasurePreserving.integral_comp {β} {_ : MeasurableSpace β} {f : α → β} {ν}
(h₁ : MeasurePreserving f μ ν) (h₂ : MeasurableEmbedding f) (g : β → E) :
- (∫ x, g (f x) ∂μ) = ∫ y, g y ∂ν :=
+ ∫ x, g (f x) ∂μ = ∫ y, g y ∂ν :=
h₁.map_eq ▸ (h₂.integral_map g).symm
#align measure_theory.measure_preserving.integral_comp MeasureTheory.MeasurePreserving.integral_comp
theorem set_integral_eq_subtype {α} [MeasureSpace α] {s : Set α} (hs : MeasurableSet s)
- (f : α → E) : (∫ x in s, f x ∂volume) = ∫ x : s, f x := by
- -- Porting note: have to specify the volume in the set_integral notation
+ (f : α → E) : ∫ x in s, f x = ∫ x : s, f x := by
rw [← map_comap_subtype_coe hs]
exact (MeasurableEmbedding.subtype_coe hs).integral_map _
#align measure_theory.set_integral_eq_subtype MeasureTheory.set_integral_eq_subtype
@@ -1639,7 +1637,7 @@ theorem mul_meas_ge_le_integral_of_nonneg [IsFiniteMeasure μ] {f : α → ℝ}
· simp only [Ne.def, ENNReal.mul_eq_top, ENNReal.ofReal_eq_zero, not_le,
ENNReal.ofReal_ne_top, false_and_iff, or_false_iff, not_and]
exact fun _ => measure_ne_top _ _
- · have h_lt_top : (∫⁻ a, ‖f a‖₊ ∂μ) < ∞ := hf_int.hasFiniteIntegral
+ · have h_lt_top : ∫⁻ a, ‖f a‖₊ ∂μ < ∞ := hf_int.hasFiniteIntegral
simp_rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs] at h_lt_top
convert h_lt_top.ne
rename_i x
@@ -1652,7 +1650,7 @@ conjugate exponents. -/
theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α → E} {p q : ℝ}
(hpq : p.IsConjugateExponent q) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
- (∫ a, ‖f a‖ * ‖g a‖ ∂μ) ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) := by
+ ∫ a, ‖f a‖ * ‖g a‖ ∂μ ≤ (∫ a, ‖f a‖ ^ p ∂μ) ^ (1 / p) * (∫ a, ‖g a‖ ^ q ∂μ) ^ (1 / q) := by
-- translate the Bochner integrals into Lebesgue integrals.
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae,
integral_eq_lintegral_of_nonneg_ae]
@@ -1665,13 +1663,13 @@ theorem integral_mul_norm_le_Lp_mul_Lq {E} [NormedAddCommGroup E] {f g : α →
· exact hf.1.norm.mul hg.1.norm
rw [ENNReal.toReal_rpow, ENNReal.toReal_rpow, ← ENNReal.toReal_mul]
-- replace norms by nnnorm
- have h_left : (∫⁻ a, ENNReal.ofReal (‖f a‖ * ‖g a‖) ∂μ) =
+ have h_left : ∫⁻ a, ENNReal.ofReal (‖f a‖ * ‖g a‖) ∂μ =
∫⁻ a, ((fun x => (‖f x‖₊ : ℝ≥0∞)) * fun x => (‖g x‖₊ : ℝ≥0∞)) a ∂μ := by
simp_rw [Pi.mul_apply, ← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_mul (norm_nonneg _)]
- have h_right_f : (∫⁻ a, ENNReal.ofReal (‖f a‖ ^ p) ∂μ) = ∫⁻ a, (‖f a‖₊ : ℝ≥0∞) ^ p ∂μ := by
+ have h_right_f : ∫⁻ a, ENNReal.ofReal (‖f a‖ ^ p) ∂μ = ∫⁻ a, (‖f a‖₊ : ℝ≥0∞) ^ p ∂μ := by
refine' lintegral_congr fun x => _
rw [← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.nonneg]
- have h_right_g : (∫⁻ a, ENNReal.ofReal (‖g a‖ ^ q) ∂μ) = ∫⁻ a, (‖g a‖₊ : ℝ≥0∞) ^ q ∂μ := by
+ have h_right_g : ∫⁻ a, ENNReal.ofReal (‖g a‖ ^ q) ∂μ = ∫⁻ a, (‖g a‖₊ : ℝ≥0∞) ^ q ∂μ := by
refine' lintegral_congr fun x => _
rw [← ofReal_norm_eq_coe_nnnorm, ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hpq.symm.nonneg]
rw [h_left, h_right_f, h_right_g]
@@ -1701,16 +1699,16 @@ exponents. -/
theorem integral_mul_le_Lp_mul_Lq_of_nonneg {p q : ℝ} (hpq : p.IsConjugateExponent q) {f g : α → ℝ}
(hf_nonneg : 0 ≤ᵐ[μ] f) (hg_nonneg : 0 ≤ᵐ[μ] g) (hf : Memℒp f (ENNReal.ofReal p) μ)
(hg : Memℒp g (ENNReal.ofReal q) μ) :
- (∫ a, f a * g a ∂μ) ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) := by
- have h_left : (∫ a, f a * g a ∂μ) = ∫ a, ‖f a‖ * ‖g a‖ ∂μ := by
+ ∫ a, f a * g a ∂μ ≤ (∫ a, f a ^ p ∂μ) ^ (1 / p) * (∫ a, g a ^ q ∂μ) ^ (1 / q) := by
+ have h_left : ∫ a, f a * g a ∂μ = ∫ a, ‖f a‖ * ‖g a‖ ∂μ := by
refine' integral_congr_ae _
filter_upwards [hf_nonneg, hg_nonneg]with x hxf hxg
rw [Real.norm_of_nonneg hxf, Real.norm_of_nonneg hxg]
- have h_right_f : (∫ a, f a ^ p ∂μ) = ∫ a, ‖f a‖ ^ p ∂μ := by
+ have h_right_f : ∫ a, f a ^ p ∂μ = ∫ a, ‖f a‖ ^ p ∂μ := by
refine' integral_congr_ae _
filter_upwards [hf_nonneg]with x hxf
rw [Real.norm_of_nonneg hxf]
- have h_right_g : (∫ a, g a ^ q ∂μ) = ∫ a, ‖g a‖ ^ q ∂μ := by
+ have h_right_g : ∫ a, g a ^ q ∂μ = ∫ a, ‖g a‖ ^ q ∂μ := by
refine' integral_congr_ae _
filter_upwards [hg_nonneg]with x hxg
rw [Real.norm_of_nonneg hxg]
@@ -1740,7 +1738,7 @@ theorem SimpleFunc.coe_toLargerSpace_eq (hm : m ≤ m0) (f : @SimpleFunc β m γ
theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F)
(hf_int : Integrable f μ) :
- (∫ x, f x ∂μ) = ∑ x in @SimpleFunc.range β F m f, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
+ ∫ x, f x ∂μ = ∑ x in @SimpleFunc.range β F m f, ENNReal.toReal (μ (f ⁻¹' {x})) • x := by
simp_rw [← f.coe_toLargerSpace_eq hm]
have hf_int : Integrable (f.toLargerSpace hm) μ := by rwa [SimpleFunc.coe_toLargerSpace_eq]
rw [SimpleFunc.integral_eq_sum _ hf_int]
@@ -1748,7 +1746,7 @@ theorem integral_simpleFunc_larger_space (hm : m ≤ m0) (f : @SimpleFunc β m F
#align measure_theory.integral_simple_func_larger_space MeasureTheory.integral_simpleFunc_larger_space
theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_int : Integrable f μ) :
- (∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm := by
+ ∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm := by
have hf : StronglyMeasurable[m] f := @SimpleFunc.stronglyMeasurable β F m _ f
have hf_int_m := hf_int.trim hm hf
rw [integral_simpleFunc_larger_space (le_refl m) f hf_int_m,
@@ -1759,7 +1757,7 @@ theorem integral_trim_simpleFunc (hm : m ≤ m0) (f : @SimpleFunc β m F) (hf_in
#align measure_theory.integral_trim_simple_func MeasureTheory.integral_trim_simpleFunc
theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : StronglyMeasurable[m] f) :
- (∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm := by
+ ∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm := by
borelize F
by_cases hf_int : Integrable f μ
swap
@@ -1774,7 +1772,7 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : StronglyMeasurable[m]
SimpleFunc.integrable_approxOn_range (hf.mono hm).measurable hf_int
have hf_seq_int_m : ∀ n, Integrable (f_seq n) (μ.trim hm) := fun n =>
(hf_seq_int n).trim hm (hf_seq_meas n)
- have hf_seq_eq : ∀ n, (∫ x, f_seq n x ∂μ) = ∫ x, f_seq n x ∂μ.trim hm := fun n =>
+ have hf_seq_eq : ∀ n, ∫ x, f_seq n x ∂μ = ∫ x, f_seq n x ∂μ.trim hm := fun n =>
integral_trim_simpleFunc hm (f_seq n) (hf_seq_int n)
have h_lim_1 : atTop.Tendsto (fun n => ∫ x, f_seq n x ∂μ) (𝓝 (∫ x, f x ∂μ)) := by
refine' tendsto_integral_of_L1 f hf_int (eventually_of_forall hf_seq_int) _
@@ -1789,7 +1787,7 @@ theorem integral_trim (hm : m ≤ m0) {f : β → F} (hf : StronglyMeasurable[m]
#align measure_theory.integral_trim MeasureTheory.integral_trim
theorem integral_trim_ae (hm : m ≤ m0) {f : β → F} (hf : AEStronglyMeasurable f (μ.trim hm)) :
- (∫ x, f x ∂μ) = ∫ x, f x ∂μ.trim hm := by
+ ∫ x, f x ∂μ = ∫ x, f x ∂μ.trim hm := by
rw [integral_congr_ae (ae_eq_of_ae_eq_trim hf.ae_eq_mk), integral_congr_ae hf.ae_eq_mk]
exact integral_trim hm hf.stronglyMeasurable_mk
#align measure_theory.integral_trim_ae MeasureTheory.integral_trim_ae
@@ -1836,7 +1834,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
norm_cast at hf
-- Porting note: two lines above were
--rw [hr, Nonneg.coe_zero] at hf
- have hnegf : (∫ x, -f x ∂μ) = 0 := by
+ have hnegf : ∫ x, -f x ∂μ = 0 := by
rw [integral_neg, neg_eq_zero]
exact le_antisymm (integral_nonpos_of_ae hf) hfint'
have := (integral_eq_zero_iff_of_nonneg_ae ?_ hfint.neg).1 hnegf
@@ -1855,7 +1853,7 @@ theorem snorm_one_le_of_le {r : ℝ≥0} {f : α → ℝ} (hfint : Integrable f
· norm_num
haveI := hμ
rw [integral_eq_integral_pos_part_sub_integral_neg_part hfint, sub_nonneg] at hfint'
- have hposbdd : (∫ ω, max (f ω) 0 ∂μ) ≤ (μ Set.univ).toReal • (r : ℝ) := by
+ have hposbdd : ∫ ω, max (f ω) 0 ∂μ ≤ (μ Set.univ).toReal • (r : ℝ) := by
rw [← integral_const]
refine' integral_mono_ae hfint.real_toNNReal (integrable_const (r : ℝ)) _
filter_upwards [hf]with ω hω using Real.toNNReal_le_iff_le_coe.2 hω
Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: int-y1 <jason_yuen2007@hotmail.com> Co-authored-by: Moritz Doll <moritz.doll@googlemail.com> Co-authored-by: Johan Commelin <johan@commelin.net>
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file