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

Commit 168806c

Browse files
committed
feat(measure_theory/integral/lebesgue): lintegral is strictly monotone under some conditions (#9373)
1 parent eba2b2e commit 168806c

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

src/measure_theory/integral/lebesgue.lean

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1586,6 +1586,52 @@ begin
15861586
exact ennreal.sub_add_cancel_of_le hx
15871587
end
15881588

1589+
lemma lintegral_sub_le (f g : α → ℝ≥0∞)
1590+
(hf : measurable f) (hg : measurable g) (h : f ≤ᵐ[μ] g) :
1591+
∫⁻ x, g x ∂μ - ∫⁻ x, f x ∂μ ≤ ∫⁻ x, g x - f x ∂μ :=
1592+
begin
1593+
by_cases hfi : ∫⁻ x, f x ∂μ = ∞,
1594+
{ rw [hfi, ennreal.sub_top],
1595+
exact bot_le },
1596+
{ rw lintegral_sub hg hf hfi h,
1597+
refl' }
1598+
end
1599+
1600+
lemma lintegral_strict_mono_of_ae_le_of_ae_lt_on {f g : α → ℝ≥0∞}
1601+
(hf : measurable f) (hg : measurable g) (hfi : ∫⁻ x, f x ∂μ ≠ ∞) (h_le : f ≤ᵐ[μ] g)
1602+
{s : set α} (hμs : μ s ≠ 0) (h : ∀ᵐ x ∂μ, x ∈ s → f x < g x) :
1603+
∫⁻ x, f x ∂μ < ∫⁻ x, g x ∂μ :=
1604+
begin
1605+
rw [← ennreal.sub_pos, ← lintegral_sub hg hf hfi h_le],
1606+
by_contra hnlt,
1607+
rw [not_lt, nonpos_iff_eq_zero, lintegral_eq_zero_iff (hg.sub hf), filter.eventually_eq] at hnlt,
1608+
simp only [ae_iff, ennreal.sub_eq_zero_iff_le, pi.zero_apply, not_lt, not_le] at hnlt h,
1609+
refine hμs _,
1610+
push_neg at h,
1611+
have hs_eq : s = {a : α | a ∈ s ∧ g a ≤ f a} ∪ {a : α | a ∈ s ∧ f a < g a},
1612+
{ ext1 x,
1613+
simp_rw [set.mem_union, set.mem_set_of_eq, ← not_le],
1614+
tauto, },
1615+
rw hs_eq,
1616+
refine measure_union_null h (measure_mono_null _ hnlt),
1617+
simp,
1618+
end
1619+
1620+
lemma lintegral_strict_mono {f g : α → ℝ≥0∞} (hμ : μ ≠ 0)
1621+
(hf : measurable f) (hg : measurable g) (hfi : ∫⁻ x, f x ∂μ ≠ ∞) (h : ∀ᵐ x ∂μ, f x < g x) :
1622+
∫⁻ x, f x ∂μ < ∫⁻ x, g x ∂μ :=
1623+
begin
1624+
rw [ne.def, ← measure.measure_univ_eq_zero] at hμ,
1625+
refine lintegral_strict_mono_of_ae_le_of_ae_lt_on hf hg hfi (ae_le_of_ae_lt h) hμ _,
1626+
simpa using h,
1627+
end
1628+
1629+
lemma set_lintegral_strict_mono {f g : α → ℝ≥0∞} {s : set α}
1630+
(hsm : measurable_set s) (hs : μ s ≠ 0) (hf : measurable f) (hg : measurable g)
1631+
(hfi : ∫⁻ x in s, f x ∂μ ≠ ∞) (h : ∀ᵐ x ∂μ, x ∈ s → f x < g x) :
1632+
∫⁻ x in s, f x ∂μ < ∫⁻ x in s, g x ∂μ :=
1633+
lintegral_strict_mono (by simp [hs]) hf hg hfi ((ae_restrict_iff' hsm).mpr h)
1634+
15891635
/-- Monotone convergence theorem for nonincreasing sequences of functions -/
15901636
lemma lintegral_infi_ae
15911637
{f : ℕ → α → ℝ≥0∞} (h_meas : ∀n, measurable (f n))

src/measure_theory/measure/measure_space_def.lean

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,14 @@ lemma ae_eq_trans {f g h: α → δ} (h₁ : f =ᵐ[μ] g) (h₂ : g =ᵐ[μ] h)
347347
f =ᵐ[μ] h :=
348348
h₁.trans h₂
349349

350+
lemma ae_le_of_ae_lt {f g : α → ℝ≥0∞} (h : ∀ᵐ x ∂μ, f x < g x) : f ≤ᵐ[μ] g :=
351+
begin
352+
rw [filter.eventually_le, ae_iff],
353+
rw ae_iff at h,
354+
refine measure_mono_null (λ x hx, _) h,
355+
exact not_lt.2 (le_of_lt (not_le.1 hx)),
356+
end
357+
350358
@[simp] lemma ae_eq_empty : s =ᵐ[μ] (∅ : set α) ↔ μ s = 0 :=
351359
eventually_eq_empty.trans $ by simp [ae_iff]
352360

0 commit comments

Comments
 (0)