Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 1e46532

Browse files
committed
feat(measure_theory/integral/lebesgue): lintegral_add holds if 1 function is measurable (#14278)
* for any function `f` there exists a measurable function `g ≤ f` with the same Lebesgue integral; * prove `∫⁻ a, f a + g a ∂μ = ∫⁻ a, f a ∂μ + ∫⁻ a, g a ∂μ` assuming **one** of the functions is (a.e.-)measurable; split `lintegral_add` into two lemmas `lintegral_add_(left|right)`; * prove `∫⁻ a, f a ∂μ + ∫⁻ a, g a ∂μ ≤ ∫⁻ a, f a + g a ∂μ` for any `f`, `g`; * prove a version of Markov's inequality for `μ {x | f x + ε ≤ g x}` with possibly non-measurable `f`; * prove `f ≤ᵐ[μ] g → ∫⁻ x, f x ∂μ ≠ ∞ → ∫⁻ x, g x ∂μ ≤ ∫⁻ x, f x ∂μ → f =ᵐ[μ] g` for an a.e.-measurable function `f`; * drop one measurability assumption in `lintegral_sub` and `lintegral_sub_le`; * add `lintegral_strict_mono_of_ae_le_of_frequently_ae_lt`, a version of `lintegral_strict_mono_of_ae_le_of_ae_lt_on`; * drop one measurability assumption in `lintegral_strict_mono_of_ae_le_of_ae_lt_on`, `lintegral_strict_mono`, and `set_lintegral_strict_mono`; * prove `with_density_add` assuming measurability of one of the functions; replace it with `with_density_add_(left|right)`; * drop measurability assumptions here and there in `mean_inequalities`.
1 parent 249f107 commit 1e46532

File tree

12 files changed

+252
-194
lines changed

12 files changed

+252
-194
lines changed

src/measure_theory/constructions/prod.lean

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ begin
207207
suffices : measurable (λ x, c * ν (prod.mk x ⁻¹' s)),
208208
{ simpa [lintegral_indicator _ (m hs)] },
209209
exact (measurable_measure_prod_mk_left hs).const_mul _ },
210-
{ rintro f g - hf hg h2f h2g, simp_rw [pi.add_apply, lintegral_add (hf.comp m) (hg.comp m)],
210+
{ rintro f g - hf hg h2f h2g, simp_rw [pi.add_apply, lintegral_add_left (hf.comp m)],
211211
exact h2f.add h2g },
212212
{ intros f hf h2f h3f,
213213
have := measurable_supr h3f,
@@ -705,8 +705,7 @@ begin
705705
simp [lintegral_indicator, m hs, hs, lintegral_const_mul, measurable_measure_prod_mk_left hs,
706706
prod_apply] },
707707
{ rintro f g - hf hg h2f h2g,
708-
simp [lintegral_add, measurable.lintegral_prod_right', hf.comp m, hg.comp m,
709-
hf, hg, h2f, h2g] },
708+
simp [lintegral_add_left, measurable.lintegral_prod_right', hf.comp m, hf, h2f, h2g] },
710709
{ intros f hf h2f h3f,
711710
have kf : ∀ x n, measurable (λ y, f n (x, y)) := λ x n, (hf n).comp m,
712711
have k2f : ∀ x, monotone (λ n y, f n (x, y)) := λ x i j hij y, h2f hij (x, y),

src/measure_theory/decomposition/lebesgue.lean

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ begin
294294
((measurable_rn_deriv μ₁ ν).add (measurable_rn_deriv μ₂ ν))
295295
((have_lebesgue_decomposition_spec _ _).2.1.add_left (have_lebesgue_decomposition_spec _ _).2.1)
296296
_).symm,
297-
erw with_density_add (measurable_rn_deriv μ₁ ν) (measurable_rn_deriv μ₂ ν),
297+
erw with_density_add_left (measurable_rn_deriv μ₁ ν),
298298
conv_rhs { rw [add_assoc, add_comm (μ₂.singular_part ν), ← add_assoc, ← add_assoc] },
299299
rw [← have_lebesgue_decomposition_add μ₁ ν, add_assoc,
300300
add_comm (ν.with_density (μ₂.rn_deriv ν)),
@@ -627,7 +627,7 @@ theorem have_lebesgue_decomposition_of_finite_measure [is_finite_measure μ] [is
627627
le_sub_iff_add_le, ← ennreal.to_real_add, ennreal.to_real_le_to_real,
628628
measure.coe_smul, pi.smul_apply, with_density_apply _ (hA.inter hE₁),
629629
show ε • ν (A ∩ E) = (ε : ℝ≥0∞) * ν (A ∩ E), by refl,
630-
← set_lintegral_const, ← lintegral_add measurable_const hξm] at this,
630+
← set_lintegral_const, ← lintegral_add_left measurable_const] at this,
631631
{ rw [ne.def, ennreal.add_eq_top, not_or_distrib],
632632
exact ⟨ne_of_lt (measure_lt_top _ _), ne_of_lt (measure_lt_top _ _)⟩ },
633633
{ exact ne_of_lt (measure_lt_top _ _) },
@@ -642,18 +642,17 @@ theorem have_lebesgue_decomposition_of_finite_measure [is_finite_measure μ] [is
642642
{ refine ⟨measurable.add hξm (measurable.indicator measurable_const hE₁), λ A hA, _⟩,
643643
have : ∫⁻ a in A, (ξ + E.indicator (λ _, ε)) a ∂ν =
644644
∫⁻ a in A ∩ E, ε + ξ a ∂ν + ∫⁻ a in A \ E, ξ a ∂ν,
645-
{ simp only [lintegral_add measurable_const hξm, add_assoc, pi.add_apply, inter_comm E,
646-
lintegral_inter_add_diff _ _ hE₁, lintegral_add hξm (measurable_const.indicator hE₁),
647-
lintegral_indicator _ hE₁, set_lintegral_const, measure.restrict_apply hE₁],
648-
exact add_comm _ _ },
645+
{ simp only [lintegral_add_left measurable_const, lintegral_add_left hξm,
646+
set_lintegral_const, add_assoc, lintegral_inter_add_diff _ _ hE₁, pi.add_apply,
647+
lintegral_indicator _ hE₁, restrict_apply hE₁],
648+
rw [inter_comm, add_comm] },
649649
rw [this, ← measure_inter_add_diff A hE₁],
650650
exact add_le_add (hε₂ A hA) (hξle (A \ E) (hA.diff hE₁)) },
651651
have : ∫⁻ a, ξ a + E.indicator (λ _, ε) a ∂ν ≤ Sup (measurable_le_eval ν μ) :=
652652
le_Sup ⟨ξ + E.indicator (λ _, ε), hξε, rfl⟩,
653653
-- but this contradicts the maximality of `∫⁻ x, ξ x ∂ν`
654654
refine not_lt.2 this _,
655-
rw [hξ₁, lintegral_add hξm (measurable.indicator (measurable_const) hE₁),
656-
lintegral_indicator _ hE₁, set_lintegral_const],
655+
rw [hξ₁, lintegral_add_left hξm, lintegral_indicator _ hE₁, set_lintegral_const],
657656
refine ennreal.lt_add_right _ (ennreal.mul_pos_iff.2 ⟨ennreal.coe_pos.2 hε₁, hE₂⟩).ne',
658657
have := measure_ne_top (ν.with_density ξ) univ,
659658
rwa [with_density_apply _ measurable_set.univ, measure.restrict_univ] at this },

src/measure_theory/function/ae_eq_fun.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ by rw [← lintegral_mk, mk_coe_fn]
674674
induction_on f $ λ f hf, (lintegral_eq_zero_iff' hf.ae_measurable).trans mk_eq_mk.symm
675675

676676
lemma lintegral_add (f g : α →ₘ[μ] ℝ≥0∞) : lintegral (f + g) = lintegral f + lintegral g :=
677-
induction_on₂ f g $ λ f hf g hg, by simp [lintegral_add' hf.ae_measurable hg.ae_measurable]
677+
induction_on₂ f g $ λ f hf g hg, by simp [lintegral_add_left' hf.ae_measurable]
678678

679679
lemma lintegral_mono {f g : α →ₘ[μ] ℝ≥0∞} : f ≤ g → lintegral f ≤ lintegral g :=
680680
induction_on₂ f g $ λ f hf g hg hfg, lintegral_mono_ae hfg

src/measure_theory/function/ae_eq_of_integral.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ begin
182182
have A : ∫⁻ x in s, g x ∂μ + ε * μ s ≤ ∫⁻ x in s, g x ∂μ + 0 := calc
183183
∫⁻ x in s, g x ∂μ + ε * μ s = ∫⁻ x in s, g x ∂μ + ∫⁻ x in s, ε ∂μ :
184184
by simp only [lintegral_const, set.univ_inter, measurable_set.univ, measure.restrict_apply]
185-
... = ∫⁻ x in s, (g x + ε) ∂μ : (lintegral_add hg measurable_const).symm
185+
... = ∫⁻ x in s, (g x + ε) ∂μ : (lintegral_add_right _ measurable_const).symm
186186
... ≤ ∫⁻ x in s, f x ∂μ : set_lintegral_mono (hg.add measurable_const) hf (λ x hx, hx.1.1)
187187
... ≤ ∫⁻ x in s, g x ∂μ + 0 : by { rw [add_zero], exact h s s_meas s_lt_top },
188188
have B : ∫⁻ x in s, g x ∂μ ≠ ∞,

src/measure_theory/function/jacobian.lean

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -891,10 +891,7 @@ begin
891891
rw ← this,
892892
end
893893
... = ∫⁻ x in s, ennreal.of_real (|(f' x).det|) ∂μ + 2 * ε * μ s :
894-
begin
895-
rw lintegral_add' (ae_measurable_of_real_abs_det_fderiv_within μ hs hf') ae_measurable_const,
896-
simp only [lintegral_const, measurable_set.univ, measure.restrict_apply, univ_inter],
897-
end
894+
by simp only [lintegral_add_right' _ ae_measurable_const, set_lintegral_const]
898895
end
899896

900897
lemma add_haar_image_le_lintegral_abs_det_fderiv_aux2 (hs : measurable_set s) (h's : μ s ≠ ∞)
@@ -1034,11 +1031,10 @@ begin
10341031
ennreal.of_real_coe_nnreal]
10351032
end
10361033
... = ∑' n, (ennreal.of_real (|(A n).det|) * μ (s ∩ t n) + ε * μ (s ∩ t n)) :
1037-
by simp only [measurable_const, lintegral_const, lintegral_add, measurable_set.univ,
1038-
eq_self_iff_true, measure.restrict_apply, univ_inter]
1034+
by simp only [set_lintegral_const, lintegral_add_right _ measurable_const]
10391035
... ≤ ∑' n, ((μ (f '' (s ∩ t n)) + ε * μ (s ∩ t n)) + ε * μ (s ∩ t n)) :
10401036
begin
1041-
refine ennreal.tsum_le_tsum (λ n, add_le_add _ le_rfl),
1037+
refine ennreal.tsum_le_tsum (λ n, add_le_add_right _ _),
10421038
exact (hδ (A n)).2.2 _ _ (ht n),
10431039
end
10441040
... = μ (f '' s) + 2 * ε * μ s :

src/measure_theory/function/l1_space.lean

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,25 @@ lemma lintegral_norm_eq_lintegral_edist (f : α → β) :
6868
by simp only [of_real_norm_eq_coe_nnnorm, edist_eq_coe_nnnorm]
6969

7070
lemma lintegral_edist_triangle {f g h : α → β}
71-
(hf : ae_strongly_measurable f μ) (hg : ae_strongly_measurable g μ)
72-
(hh : ae_strongly_measurable h μ) :
71+
(hf : ae_strongly_measurable f μ) (hh : ae_strongly_measurable h μ) :
7372
∫⁻ a, edist (f a) (g a) ∂μ ≤ ∫⁻ a, edist (f a) (h a) ∂μ + ∫⁻ a, edist (g a) (h a) ∂μ :=
7473
begin
75-
rw ← lintegral_add' (hf.edist hh) (hg.edist hh),
74+
rw ← lintegral_add_left' (hf.edist hh),
7675
refine lintegral_mono (λ a, _),
7776
apply edist_triangle_right
7877
end
7978

8079
lemma lintegral_nnnorm_zero : ∫⁻ a : α, ∥(0 : β)∥₊ ∂μ = 0 := by simp
8180

82-
lemma lintegral_nnnorm_add
83-
{f : α → β} {g : α → γ} (hf : ae_strongly_measurable f μ) (hg : ae_strongly_measurable g μ) :
81+
lemma lintegral_nnnorm_add_left
82+
{f : α → β} (hf : ae_strongly_measurable f μ) (g : α → γ) :
8483
∫⁻ a, ∥f a∥₊ + ∥g a∥₊ ∂μ = ∫⁻ a, ∥f a∥₊ ∂μ + ∫⁻ a, ∥g a∥₊ ∂μ :=
85-
lintegral_add' hf.ennnorm hg.ennnorm
84+
lintegral_add_left' hf.ennnorm _
85+
86+
lemma lintegral_nnnorm_add_right
87+
(f : α → β) {g : α → γ} (hg : ae_strongly_measurable g μ) :
88+
∫⁻ a, ∥f a∥₊ + ∥g a∥₊ ∂μ = ∫⁻ a, ∥f a∥₊ ∂μ + ∫⁻ a, ∥g a∥₊ ∂μ :=
89+
lintegral_add_right' _ hg.ennnorm
8690

8791
lemma lintegral_nnnorm_neg {f : α → β} :
8892
∫⁻ a, ∥(-f) a∥₊ ∂μ = ∫⁻ a, ∥f a∥₊ ∂μ :=
@@ -560,22 +564,20 @@ lemma lintegral_edist_lt_top {f g : α → β}
560564
(hf : integrable f μ) (hg : integrable g μ) :
561565
∫⁻ a, edist (f a) (g a) ∂μ < ∞ :=
562566
lt_of_le_of_lt
563-
(lintegral_edist_triangle hf.ae_strongly_measurable hg.ae_strongly_measurable
564-
(ae_strongly_measurable_const : ae_strongly_measurable (λa, (0 : β)) μ))
565-
(ennreal.add_lt_top.2 $ by { simp_rw ← has_finite_integral_iff_edist,
567+
(lintegral_edist_triangle hf.ae_strongly_measurable ae_strongly_measurable_zero)
568+
(ennreal.add_lt_top.2 $ by { simp_rw [pi.zero_apply, ← has_finite_integral_iff_edist],
566569
exact ⟨hf.has_finite_integral, hg.has_finite_integral⟩ })
567570

568571
variables (α β μ)
569572
@[simp] lemma integrable_zero : integrable (λ _, (0 : β)) μ :=
570573
by simp [integrable, ae_strongly_measurable_const]
571574
variables {α β μ}
572575

573-
lemma integrable.add' {f g : α → β} (hf : integrable f μ)
574-
(hg : integrable g μ) :
576+
lemma integrable.add' {f g : α → β} (hf : integrable f μ) (hg : integrable g μ) :
575577
has_finite_integral (f + g) μ :=
576578
calc ∫⁻ a, ∥f a + g a∥₊ ∂μ ≤ ∫⁻ a, ∥f a∥₊ + ∥g a∥₊ ∂μ :
577579
lintegral_mono (λ a, by exact_mod_cast nnnorm_add_le _ _)
578-
... = _ : lintegral_nnnorm_add hf.ae_strongly_measurable hg.ae_strongly_measurable
580+
... = _ : lintegral_nnnorm_add_left hf.ae_strongly_measurable _
579581
... < ∞ : add_lt_top.2 ⟨hf.has_finite_integral, hg.has_finite_integral⟩
580582

581583
lemma integrable.add

src/measure_theory/function/lp_space.lean

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -746,7 +746,7 @@ lemma snorm_add_lt_top_of_one_le {f g : α → E} (hf : mem_ℒp f p μ) (hg : m
746746
lt_of_le_of_lt (snorm_add_le hf.1 hg.1 hq1) (ennreal.add_lt_top.mpr ⟨hf.2, hg.2⟩)
747747

748748
lemma snorm'_add_lt_top_of_le_one
749-
{f g : α → E} (hf : ae_strongly_measurable f μ) (hg : ae_strongly_measurable g μ)
749+
{f g : α → E} (hf : ae_strongly_measurable f μ)
750750
(hf_snorm : snorm' f q μ < ∞) (hg_snorm : snorm' g q μ < ∞) (hq_pos : 0 < q) (hq1 : q ≤ 1) :
751751
snorm' (f + g) q μ < ∞ :=
752752
calc (∫⁻ a, ↑∥(f + g) a∥₊ ^ q ∂μ) ^ (1 / q)
@@ -765,11 +765,9 @@ end
765765
... < ∞ :
766766
begin
767767
refine ennreal.rpow_lt_top_of_nonneg (by simp [hq_pos.le] : 01 / q) _,
768-
rw [lintegral_add' (hf.ennnorm.pow_const q)
769-
(hg.ennnorm.pow_const q), ennreal.add_ne_top, ←lt_top_iff_ne_top,
770-
←lt_top_iff_ne_top],
771-
exact ⟨lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top hq_pos hf_snorm,
772-
lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top hq_pos hg_snorm⟩,
768+
rw [lintegral_add_left' (hf.ennnorm.pow_const q), ennreal.add_ne_top],
769+
exact ⟨(lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top hq_pos hf_snorm).ne,
770+
(lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top hq_pos hg_snorm).ne⟩,
773771
end
774772

775773
lemma snorm_add_lt_top {f g : α → E} (hf : mem_ℒp f p μ) (hg : mem_ℒp g p μ) :
@@ -788,7 +786,7 @@ begin
788786
{ rwa [← ennreal.one_to_real, @ennreal.to_real_le_to_real p 1 hp_top ennreal.coe_ne_top], },
789787
rw snorm_eq_snorm' h0 hp_top,
790788
rw [mem_ℒp, snorm_eq_snorm' h0 hp_top] at hf hg,
791-
exact snorm'_add_lt_top_of_le_one hf.1 hg.1 hf.2 hg.2 hp_pos hp1_real,
789+
exact snorm'_add_lt_top_of_le_one hf.1 hf.2 hg.2 hp_pos hp1_real,
792790
end
793791

794792
section map_measure

0 commit comments

Comments
 (0)