Skip to content

Commit 592989b

Browse files
committed
feat(Integral.Bochner.Set): add tendsto_setIntegral_of_monotone₀ (leanprover-community#34025)
Adds the lemma `tendsto_setIntegral_of_monotone₀`, a version of `tendsto_setIntegral_of_monotone` requiring only `AEMeasurableSet` in the hypotheses. The previous version is redefined as a specialization. Also renames `integral_union_ae` to `setIntegral_union₀` for consistency with the rest of the library (it matches the existing `setIntegral_union`).
1 parent 891dd96 commit 592989b

File tree

1 file changed

+31
-15
lines changed
  • Mathlib/MeasureTheory/Integral/Bochner

1 file changed

+31
-15
lines changed

Mathlib/MeasureTheory/Integral/Bochner/Set.lean

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,27 @@ theorem setIntegral_congr_fun (hs : MeasurableSet s) (h : EqOn f g s) :
7777
theorem setIntegral_congr_set (hst : s =ᵐ[μ] t) : ∫ x in s, f x ∂μ = ∫ x in t, f x ∂μ := by
7878
rw [Measure.restrict_congr_set hst]
7979

80-
theorem integral_union_ae (hst : AEDisjoint μ s t) (ht : NullMeasurableSet t μ)
80+
theorem setIntegral_union₀ (hst : AEDisjoint μ s t) (ht : NullMeasurableSet t μ)
8181
(hfs : IntegrableOn f s μ) (hft : IntegrableOn f t μ) :
8282
∫ x in s ∪ t, f x ∂μ = ∫ x in s, f x ∂μ + ∫ x in t, f x ∂μ := by
8383
simp only [Measure.restrict_union₀ hst ht, integral_add_measure hfs hft]
8484

85+
@[deprecated (since := "2026-03-04")] alias integral_union_ae := setIntegral_union₀
86+
8587
theorem setIntegral_union (hst : Disjoint s t) (ht : MeasurableSet t) (hfs : IntegrableOn f s μ)
8688
(hft : IntegrableOn f t μ) : ∫ x in s ∪ t, f x ∂μ = ∫ x in s, f x ∂μ + ∫ x in t, f x ∂μ :=
87-
integral_union_ae hst.aedisjoint ht.nullMeasurableSet hfs hft
89+
setIntegral_union₀ hst.aedisjoint ht.nullMeasurableSet hfs hft
8890

89-
theorem integral_diff (ht : MeasurableSet t) (hfs : IntegrableOn f s μ) (hts : t ⊆ s) :
91+
theorem setIntegral_diff₀ (ht : NullMeasurableSet t μ) (hfs : IntegrableOn f s μ) (hts : t ⊆ s) :
9092
∫ x in s \ t, f x ∂μ = ∫ x in s, f x ∂μ - ∫ x in t, f x ∂μ := by
91-
rw [eq_sub_iff_add_eq, ← setIntegral_union, diff_union_of_subset hts]
92-
exacts [disjoint_sdiff_self_left, ht, hfs.mono_set diff_subset, hfs.mono_set hts]
93+
rw [eq_sub_iff_add_eq, ← setIntegral_union₀, diff_union_of_subset hts]
94+
exacts [disjoint_sdiff_self_left.aedisjoint, ht, hfs.mono_set diff_subset, hfs.mono_set hts]
95+
96+
theorem setIntegral_diff (ht : MeasurableSet t) (hfs : IntegrableOn f s μ) (hts : t ⊆ s) :
97+
∫ x in s \ t, f x ∂μ = ∫ x in s, f x ∂μ - ∫ x in t, f x ∂μ :=
98+
setIntegral_diff₀ ht.nullMeasurableSet hfs hts
99+
100+
@[deprecated (since := "2026-03-04")] alias integral_diff := setIntegral_diff
93101

94102
theorem integral_inter_add_diff₀ (ht : NullMeasurableSet t μ) (hfs : IntegrableOn f s μ) :
95103
∫ x in s ∩ t, f x ∂μ + ∫ x in s \ t, f x ∂μ = ∫ x in s, f x ∂μ := by
@@ -138,7 +146,7 @@ theorem setIntegral_univ : ∫ x in univ, f x ∂μ = ∫ x, f x ∂μ := by rw
138146

139147
theorem integral_add_compl₀ (hs : NullMeasurableSet s μ) (hfi : Integrable f μ) :
140148
∫ x in s, f x ∂μ + ∫ x in sᶜ, f x ∂μ = ∫ x, f x ∂μ := by
141-
have := integral_union_ae disjoint_compl_right.aedisjoint
149+
have := setIntegral_union₀ disjoint_compl_right.aedisjoint
142150
hs.compl hfi.integrableOn hfi.integrableOn
143151
rw [← this, union_compl_self, setIntegral_univ]
144152

@@ -250,31 +258,39 @@ theorem integral_piecewise [DecidablePred (· ∈ s)] (hs : MeasurableSet s) (hf
250258
integral_add' (hf.integrable_indicator hs) (hg.integrable_indicator hs.compl),
251259
integral_indicator hs, integral_indicator hs.compl]
252260

253-
theorem tendsto_setIntegral_of_monotone
261+
theorem tendsto_setIntegral_of_monotone
254262
{ι : Type*} [Preorder ι] [(atTop : Filter ι).IsCountablyGenerated]
255-
{s : ι → Set X} (hsm : ∀ i, MeasurableSet (s i)) (h_mono : Monotone s)
263+
{s : ι → Set X} (hsm : ∀ i, NullMeasurableSet (s i) μ) (h_mono : Monotone s)
256264
(hfi : IntegrableOn f (⋃ n, s n) μ) :
257265
Tendsto (fun i => ∫ x in s i, f x ∂μ) atTop (𝓝 (∫ x in ⋃ n, s n, f x ∂μ)) := by
258266
refine .of_neBot_imp fun hne ↦ ?_
259267
have := (atTop_neBot_iff.mp hne).2
260268
have hfi' : ∫⁻ x in ⋃ n, s n, ‖f x‖₊ ∂μ < ∞ := hfi.2
261269
set S := ⋃ i, s i
262-
have hSm : MeasurableSet S := MeasurableSet.iUnion_of_monotone h_mono hsm
270+
have hSm : NullMeasurableSet S μ := MeasurableSet.iUnion_of_monotone h_mono hsm
263271
have hsub {i} : s i ⊆ S := subset_iUnion s i
264-
rw [← withDensity_apply _ hSm] at hfi'
272+
rw [← withDensity_apply _ hSm] at hfi'
265273
set ν := μ.withDensity (‖f ·‖ₑ) with
266274
refine Metric.nhds_basis_closedBall.tendsto_right_iff.2 fun ε ε0 => ?_
267275
lift ε to ℝ≥0 using ε0.le
268276
have : ∀ᶠ i in atTop, ν (s i) ∈ Icc (ν S - ε) (ν S + ε) :=
269277
tendsto_measure_iUnion_atTop h_mono (ENNReal.Icc_mem_nhds hfi'.ne (ENNReal.coe_pos.2 ε0).ne')
270278
filter_upwards [this] with i hi
271-
rw [mem_closedBall_iff_norm', ← integral_diff (hsm i) hfi hsub, ← coe_nnnorm, NNReal.coe_le_coe, ←
272-
ENNReal.coe_le_coe]
279+
rw [mem_closedBall_iff_norm', ← setIntegral_diff₀ (hsm i) hfi hsub, ← coe_nnnorm,
280+
NNReal.coe_le_coe, ← ENNReal.coe_le_coe]
273281
refine (enorm_integral_le_lintegral_enorm _).trans ?_
274-
rw [← withDensity_apply _ (hSm.diff (hsm _)), ← hν, measure_diff hsub (hsm _).nullMeasurableSet]
282+
have hsm' : NullMeasurableSet (s i) ν := (hsm i).mono_ac (withDensity_absolutelyContinuous ..)
283+
rw [← withDensity_apply₀ _ (hSm.diff (hsm _)), ← hν, measure_diff hsub hsm']
275284
exacts [tsub_le_iff_tsub_le.mp hi.1,
276285
(hi.2.trans_lt <| ENNReal.add_lt_top.2 ⟨hfi', ENNReal.coe_lt_top⟩).ne]
277286

287+
theorem tendsto_setIntegral_of_monotone
288+
{ι : Type*} [Preorder ι] [(atTop : Filter ι).IsCountablyGenerated]
289+
{s : ι → Set X} (hsm : ∀ i, MeasurableSet (s i)) (h_mono : Monotone s)
290+
(hfi : IntegrableOn f (⋃ n, s n) μ) :
291+
Tendsto (fun i => ∫ x in s i, f x ∂μ) atTop (𝓝 (∫ x in ⋃ n, s n, f x ∂μ)) :=
292+
tendsto_setIntegral_of_monotone₀ (hsm · |>.nullMeasurableSet) h_mono hfi
293+
278294
theorem tendsto_setIntegral_of_antitone
279295
{ι : Type*} [Preorder ι] [(atTop : Filter ι).IsCountablyGenerated]
280296
{s : ι → Set X} (hsm : ∀ i, MeasurableSet (s i)) (h_anti : Antitone s)
@@ -286,9 +302,9 @@ theorem tendsto_setIntegral_of_antitone
286302
suffices Tendsto (∫ x in s i₀, f x ∂μ - ∫ x in s i₀ \ s ·, f x ∂μ) atTop
287303
(𝓝 (∫ x in s i₀, f x ∂μ - ∫ x in ⋃ i, s i₀ \ s i, f x ∂μ)) by
288304
convert this.congr' <| (eventually_ge_atTop i₀).mono fun i hi ↦ ?_
289-
· rw [← diff_iInter, integral_diff _ hi₀ (iInter_subset _ _), sub_sub_cancel]
305+
· rw [← diff_iInter, setIntegral_diff _ hi₀ (iInter_subset _ _), sub_sub_cancel]
290306
exact .iInter_of_antitone h_anti hsm
291-
· rw [integral_diff (hsm i) hi₀ (h_anti hi), sub_sub_cancel]
307+
· rw [setIntegral_diff (hsm i) hi₀ (h_anti hi), sub_sub_cancel]
292308
apply tendsto_const_nhds.sub
293309
refine tendsto_setIntegral_of_monotone (by measurability) ?_ ?_
294310
· exact fun i j h ↦ diff_subset_diff_right (h_anti h)

0 commit comments

Comments
 (0)