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

Commit ccdbfb6

Browse files
committed
feat(measure_theory/integral/set_integral): First moment method (#18731)
Integrable functions are smaller/larger than their mean on a set of positive measure. We prove it for the Bochner and Lebesgue integrals.
1 parent 660b3a2 commit ccdbfb6

4 files changed

Lines changed: 220 additions & 8 deletions

File tree

src/analysis/mean_inequalities_pow.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ begin
297297
{ simp [← mul_assoc, ennreal.inv_mul_cancel two_ne_zero two_ne_top] },
298298
{ have A : p - 10 := ne_of_gt (sub_pos.2 h'p),
299299
simp only [mul_rpow_of_nonneg _ _ (zero_le_one.trans hp), rpow_sub _ _ two_ne_zero two_ne_top,
300-
div_eq_inv_mul, rpow_one, mul_one],
300+
ennreal.div_eq_inv_mul, rpow_one, mul_one],
301301
ring }
302302
end
303303

src/data/real/ennreal.lean

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ by rintro (h | h); simp [h]⟩
193193
lemma to_real_eq_zero_iff (x : ℝ≥0∞) : x.to_real = 0 ↔ x = 0 ∨ x = ∞ :=
194194
by simp [ennreal.to_real, to_nnreal_eq_zero_iff]
195195

196+
lemma to_nnreal_ne_zero : a.to_nnreal ≠ 0 ↔ a ≠ 0 ∧ a ≠ ∞ :=
197+
a.to_nnreal_eq_zero_iff.not.trans not_or_distrib
198+
199+
lemma to_real_ne_zero : a.to_real ≠ 0 ↔ a ≠ 0 ∧ a ≠ ∞ :=
200+
a.to_real_eq_zero_iff.not.trans not_or_distrib
201+
196202
lemma to_nnreal_eq_one_iff (x : ℝ≥0∞) : x.to_nnreal = 1 ↔ x = 1 :=
197203
begin
198204
refine ⟨λ h, _, congr_arg _⟩,
@@ -204,6 +210,9 @@ end
204210
lemma to_real_eq_one_iff (x : ℝ≥0∞) : x.to_real = 1 ↔ x = 1 :=
205211
by rw [ennreal.to_real, nnreal.coe_eq_one, ennreal.to_nnreal_eq_one_iff]
206212

213+
lemma to_nnreal_ne_one : a.to_nnreal ≠ 1 ↔ a ≠ 1 := a.to_nnreal_eq_one_iff.not
214+
lemma to_real_ne_one : a.to_real ≠ 1 ↔ a ≠ 1 := a.to_real_eq_one_iff.not
215+
207216
@[simp] lemma coe_ne_top : (r : ℝ≥0∞) ≠ ∞ := with_top.coe_ne_top
208217
@[simp] lemma top_ne_coe : ∞ ≠ (r : ℝ≥0∞) := with_top.top_ne_coe
209218
@[simp] lemma of_real_ne_top {r : ℝ} : ennreal.of_real r ≠ ∞ := by simp [ennreal.of_real]
@@ -996,7 +1005,7 @@ instance : div_inv_monoid ℝ≥0∞ :=
9961005
{ inv := has_inv.inv,
9971006
.. (infer_instance : monoid ℝ≥0∞) }
9981007

999-
lemma div_eq_inv_mul : a / b = b⁻¹ * a := by rw [div_eq_mul_inv, mul_comm]
1008+
protected lemma div_eq_inv_mul : a / b = b⁻¹ * a := by rw [div_eq_mul_inv, mul_comm]
10001009

10011010
@[simp] lemma inv_zero : (0 : ℝ≥0∞)⁻¹ = ∞ :=
10021011
show Inf {b : ℝ≥0∞ | 10 * b} = ∞, by simp; refl

src/measure_theory/function/l1_space.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ begin
456456
rw [integrable, and_iff_right this, has_finite_integral_const_iff]
457457
end
458458

459-
lemma integrable_const [is_finite_measure μ] (c : β) : integrable (λ x : α, c) μ :=
459+
@[simp] lemma integrable_const [is_finite_measure μ] (c : β) : integrable (λ x : α, c) μ :=
460460
integrable_const_iff.2 $ or.inr $ measure_lt_top _ _
461461

462462
lemma mem_ℒp.integrable_norm_rpow {f : α → β} {p : ℝ≥0∞}

src/measure_theory/integral/average.lean

Lines changed: 208 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/-
22
Copyright (c) 2022 Yury G. Kudryashov. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
4-
Authors: Yury G. Kudryashov
4+
Authors: Yury G. Kudryashov, Yaël Dillies
55
-/
66
import measure_theory.integral.set_integral
77

@@ -19,24 +19,32 @@ measure, then the average of any function is equal to its integral.
1919
For the average on a set, we use `⨍ x in s, f x ∂μ` (notation for `⨍ x, f x ∂(μ.restrict s)`). For
2020
average w.r.t. the volume, one can omit `∂volume`.
2121
22+
We prove several version of the first moment method: An integrable function is below/above its
23+
average on a set of positive measure.
24+
2225
## Implementation notes
2326
2427
The average is defined as an integral over `(μ univ)⁻¹ • μ` so that all theorems about Bochner
2528
integrals work for the average without modifications. For theorems that require integrability of a
2629
function, we provide a convenience lemma `measure_theory.integrable.to_average`.
2730
31+
## TODO
32+
33+
Provide the first moment method for the Lebesgue integral as well. A draft is available on branch
34+
`first_moment_lintegral`.
35+
2836
## Tags
2937
3038
integral, center mass, average value
3139
-/
3240

33-
open measure_theory measure_theory.measure metric set filter topological_space function
41+
open ennreal measure_theory measure_theory.measure metric set filter topological_space function
3442
open_locale topology big_operators ennreal convex
3543

3644
variables {α E F : Type*} {m0 : measurable_space α}
3745
[normed_add_comm_group E] [normed_space ℝ E] [complete_space E]
3846
[normed_add_comm_group F] [normed_space ℝ F] [complete_space F]
39-
{μ : measure α} {s : set E}
47+
{μ : measure α} {s t : set α}
4048

4149
/-!
4250
### Average value of a function w.r.t. a measure
@@ -49,8 +57,8 @@ integral.
4957
-/
5058

5159
namespace measure_theory
52-
53-
variable (μ)
60+
section normed_add_comm_group
61+
variables (μ) {f g : α → E}
5462
include m0
5563

5664
/-- Average value of a function `f` w.r.t. a measure `μ`, notation: `⨍ x, f x ∂μ`. It is defined as
@@ -106,6 +114,9 @@ variable {μ}
106114
lemma average_congr {f g : α → E} (h : f =ᵐ[μ] g) : ⨍ x, f x ∂μ = ⨍ x, g x ∂μ :=
107115
by simp only [average_eq, integral_congr_ae h]
108116

117+
lemma set_average_congr_set_ae (h : s =ᵐ[μ] t) : ⨍ x in s, f x ∂μ = ⨍ x in t, f x ∂μ :=
118+
by simp only [set_average_eq, set_integral_congr_set_ae h, measure_congr h]
119+
109120
lemma average_add_measure [is_finite_measure μ] {ν : measure α} [is_finite_measure ν] {f : α → E}
110121
(hμ : integrable f μ) (hν : integrable f ν) :
111122
⨍ x, f x ∂(μ + ν) =
@@ -182,4 +193,196 @@ by simp only [set_average_eq, integral_const, measure.restrict_apply, measurable
182193
univ_inter, smul_smul, ← ennreal.to_real_inv, ← ennreal.to_real_mul,
183194
ennreal.inv_mul_cancel hs₀ hs, ennreal.one_to_real, one_smul]
184195

196+
@[simp] lemma integral_average (μ : measure α) [is_finite_measure μ] (f : α → E) :
197+
∫ x, ⨍ a, f a ∂μ ∂μ = ∫ x, f x ∂μ :=
198+
begin
199+
unfreezingI { obtain rfl | hμ := eq_or_ne μ 0 },
200+
{ simp only [integral_zero_measure] },
201+
{ rw [integral_const, average_eq,
202+
smul_inv_smul₀ (to_real_ne_zero.2 ⟨measure_univ_ne_zero.2 hμ, measure_ne_top _ _⟩)] }
203+
end
204+
205+
lemma set_integral_set_average (μ : measure α) [is_finite_measure μ] (f : α → E) (s : set α) :
206+
∫ x in s, ⨍ a in s, f a ∂μ ∂μ = ∫ x in s, f x ∂μ :=
207+
integral_average _ _
208+
209+
lemma integral_sub_average (μ : measure α) [is_finite_measure μ] (f : α → E) :
210+
∫ x, f x - ⨍ a, f a ∂μ ∂μ = 0 :=
211+
begin
212+
by_cases hf : integrable f μ,
213+
{ rw [integral_sub hf (integrable_const _), integral_average, sub_self] },
214+
refine integral_undef (λ h, hf _),
215+
convert h.add (integrable_const _),
216+
exact (sub_add_cancel _ _).symm,
217+
end
218+
219+
lemma set_integral_sub_set_average (hs : μ s ≠ ∞) (f : α → E) :
220+
∫ x in s, f x - ⨍ a in s, f a ∂μ ∂μ = 0 :=
221+
by haveI haveI : fact (μ s < ∞) := ⟨lt_top_iff_ne_top.2 hs⟩; exact integral_sub_average _ _
222+
223+
lemma integral_average_sub [is_finite_measure μ] (hf : integrable f μ) :
224+
∫ x, ⨍ a, f a ∂μ - f x ∂μ = 0 :=
225+
by rw [integral_sub (integrable_const _) hf, integral_average, sub_self]
226+
227+
lemma set_integral_set_average_sub (hs : μ s ≠ ∞) (hf : integrable_on f s μ) :
228+
∫ x in s, ⨍ a in s, f a ∂μ - f x ∂μ = 0 :=
229+
by haveI haveI : fact (μ s < ∞) := ⟨lt_top_iff_ne_top.2 hs⟩; exact integral_average_sub hf
230+
231+
end normed_add_comm_group
232+
233+
lemma of_real_average {f : α → ℝ} (hf : integrable f μ) (hf₀ : 0 ≤ᵐ[μ] f) :
234+
ennreal.of_real (⨍ x, f x ∂μ) = (∫⁻ x, ennreal.of_real (f x) ∂μ) / μ univ :=
235+
begin
236+
obtain rfl | hμ := eq_or_ne μ 0,
237+
{ simp },
238+
{ rw [average_eq, smul_eq_mul, ←to_real_inv, of_real_mul (to_real_nonneg),
239+
of_real_to_real (inv_ne_top.2 $ measure_univ_ne_zero.2 hμ),
240+
of_real_integral_eq_lintegral_of_real hf hf₀, ennreal.div_eq_inv_mul] }
241+
end
242+
243+
lemma of_real_set_average {f : α → ℝ} (hf : integrable_on f s μ)
244+
(hf₀ : 0 ≤ᵐ[μ.restrict s] f) :
245+
ennreal.of_real (⨍ x in s, f x ∂μ) = (∫⁻ x in s, ennreal.of_real (f x) ∂μ) / μ s :=
246+
by simpa using of_real_average hf hf₀
247+
248+
lemma average_to_real {f : α → ℝ≥0∞} (hf : ae_measurable f μ) (hf' : ∀ᵐ x ∂μ, f x ≠ ∞) :
249+
⨍ x, (f x).to_real ∂μ = (∫⁻ x, f x ∂μ / μ univ).to_real :=
250+
begin
251+
obtain rfl | hμ := eq_or_ne μ 0,
252+
{ simp },
253+
{ rw [average_eq, smul_eq_mul, to_real_div,
254+
←integral_to_real hf (hf'.mono $ λ _, lt_top_iff_ne_top.2), div_eq_inv_mul] }
255+
end
256+
257+
lemma set_average_to_real {f : α → ℝ≥0∞} (hf : ae_measurable f (μ.restrict s))
258+
(hf' : ∀ᵐ x ∂(μ.restrict s), f x ≠ ∞) :
259+
⨍ x in s, (f x).to_real ∂μ = (∫⁻ x in s, f x ∂μ / μ s).to_real :=
260+
by simpa using average_to_real hf hf'
261+
262+
/-! ### First moment method -/
263+
264+
section first_moment
265+
variables {N : set α} {f : α → ℝ}
266+
267+
/-- **First moment method**. An integrable function is smaller than its mean on a set of positive
268+
measure. -/
269+
lemma measure_le_set_average_pos (hμ : μ s ≠ 0) (hμ₁ : μ s ≠ ∞) (hf : integrable_on f s μ) :
270+
0 < μ {x ∈ s | f x ≤ ⨍ a in s, f a ∂μ} :=
271+
begin
272+
refine pos_iff_ne_zero.2 (λ H, _),
273+
replace H : (μ.restrict s) {x | f x ≤ ⨍ a in s, f a ∂μ} = 0,
274+
{ rwa [restrict_apply₀, inter_comm],
275+
exact ae_strongly_measurable.null_measurable_set_le hf.1 ae_strongly_measurable_const },
276+
haveI : is_finite_measure (μ.restrict s) :=
277+
by simpa only [measure.restrict_apply, measurable_set.univ, univ_inter] using hμ₁.lt_top⟩,
278+
refine (integral_sub_average (μ.restrict s) f).not_gt _,
279+
refine (set_integral_pos_iff_support_of_nonneg_ae _ _).2 _,
280+
{ refine eq_bot_mono (measure_mono (λ x hx, _)) H,
281+
simp only [pi.zero_apply, sub_nonneg, mem_compl_iff, mem_set_of_eq, not_le] at hx,
282+
exact hx.le },
283+
{ exact hf.sub (integrable_on_const.2 $ or.inr $ lt_top_iff_ne_top.2 hμ₁) },
284+
{ rwa [pos_iff_ne_zero, inter_comm, ←diff_compl, ←diff_inter_self_eq_diff, measure_diff_null],
285+
refine eq_bot_mono (measure_mono _) (measure_inter_eq_zero_of_restrict H),
286+
exact inter_subset_inter_left _ (λ a ha, (sub_eq_zero.1 $ of_not_not ha).le) }
287+
end
288+
289+
/-- **First moment method**. An integrable function is greater than its mean on a set of positive
290+
measure. -/
291+
lemma measure_set_average_le_pos (hμ : μ s ≠ 0) (hμ₁ : μ s ≠ ∞) (hf : integrable_on f s μ) :
292+
0 < μ {x ∈ s | ⨍ a in s, f a ∂μ ≤ f x} :=
293+
by simpa [integral_neg, neg_div] using measure_le_set_average_pos hμ hμ₁ hf.neg
294+
295+
/-- **First moment method**. The minimum of an integrable function is smaller than its mean. -/
296+
lemma exists_le_set_average (hμ : μ s ≠ 0) (hμ₁ : μ s ≠ ∞) (hf : integrable_on f s μ) :
297+
∃ x ∈ s, f x ≤ ⨍ a in s, f a ∂μ :=
298+
let ⟨x, hx, h⟩ := nonempty_of_measure_ne_zero (measure_le_set_average_pos hμ hμ₁ hf).ne'
299+
in ⟨x, hx, h⟩
300+
301+
/-- **First moment method**. The maximum of an integrable function is greater than its mean. -/
302+
lemma exists_set_average_le (hμ : μ s ≠ 0) (hμ₁ : μ s ≠ ∞) (hf : integrable_on f s μ) :
303+
∃ x ∈ s, ⨍ a in s, f a ∂μ ≤ f x :=
304+
let ⟨x, hx, h⟩ := nonempty_of_measure_ne_zero (measure_set_average_le_pos hμ hμ₁ hf).ne'
305+
in ⟨x, hx, h⟩
306+
307+
section finite_measure
308+
variables [is_finite_measure μ]
309+
310+
/-- **First moment method**. An integrable function is smaller than its mean on a set of positive
311+
measure. -/
312+
lemma measure_le_average_pos (hμ : μ ≠ 0) (hf : integrable f μ) : 0 < μ {x | f x ≤ ⨍ a, f a ∂μ} :=
313+
by simpa using measure_le_set_average_pos (measure.measure_univ_ne_zero.2 hμ) (measure_ne_top _ _)
314+
hf.integrable_on
315+
316+
/-- **First moment method**. An integrable function is greater than its mean on a set of positive
317+
measure. -/
318+
lemma measure_average_le_pos (hμ : μ ≠ 0) (hf : integrable f μ) : 0 < μ {x | ⨍ a, f a ∂μ ≤ f x} :=
319+
by simpa using measure_set_average_le_pos (measure.measure_univ_ne_zero.2 hμ) (measure_ne_top _ _)
320+
hf.integrable_on
321+
322+
/-- **First moment method**. The minimum of an integrable function is smaller than its mean. -/
323+
lemma exists_le_average (hμ : μ ≠ 0) (hf : integrable f μ) : ∃ x, f x ≤ ⨍ a, f a ∂μ :=
324+
let ⟨x, hx⟩ := nonempty_of_measure_ne_zero (measure_le_average_pos hμ hf).ne' in ⟨x, hx⟩
325+
326+
/-- **First moment method**. The maximum of an integrable function is greater than its mean. -/
327+
lemma exists_average_le (hμ : μ ≠ 0) (hf : integrable f μ) : ∃ x, ⨍ a, f a ∂μ ≤ f x :=
328+
let ⟨x, hx⟩ := nonempty_of_measure_ne_zero (measure_average_le_pos hμ hf).ne' in ⟨x, hx⟩
329+
330+
/-- **First moment method**. The minimum of an integrable function is smaller than its mean, while
331+
avoiding a null set. -/
332+
lemma exists_not_mem_null_le_average (hμ : μ ≠ 0) (hf : integrable f μ) (hN : μ N = 0) :
333+
∃ x ∉ N, f x ≤ ⨍ a, f a ∂μ :=
334+
begin
335+
have := measure_le_average_pos hμ hf,
336+
rw ←measure_diff_null hN at this,
337+
obtain ⟨x, hx, hxN⟩ := nonempty_of_measure_ne_zero this.ne',
338+
exact ⟨x, hxN, hx⟩,
339+
end
340+
341+
/-- **First moment method**. The maximum of an integrable function is greater than its mean, while
342+
avoiding a null set. -/
343+
lemma exists_not_mem_null_average_le (hμ : μ ≠ 0) (hf : integrable f μ) (hN : μ N = 0) :
344+
∃ x ∉ N, ⨍ a, f a ∂μ ≤ f x :=
345+
by simpa [integral_neg, neg_div] using exists_not_mem_null_le_average hμ hf.neg hN
346+
347+
end finite_measure
348+
349+
section probability_measure
350+
variables [is_probability_measure μ]
351+
352+
/-- **First moment method**. An integrable function is smaller than its integral on a set of
353+
positive measure. -/
354+
lemma measure_le_integral_pos (hf : integrable f μ) : 0 < μ {x | f x ≤ ∫ a, f a ∂μ} :=
355+
by simpa only [average_eq_integral]
356+
using measure_le_average_pos (is_probability_measure.ne_zero μ) hf
357+
358+
/-- **First moment method**. An integrable function is greater than its integral on a set of
359+
positive measure. -/
360+
lemma measure_integral_le_pos (hf : integrable f μ) : 0 < μ {x | ∫ a, f a ∂μ ≤ f x} :=
361+
by simpa only [average_eq_integral]
362+
using measure_average_le_pos (is_probability_measure.ne_zero μ) hf
363+
364+
/-- **First moment method**. The minimum of an integrable function is smaller than its integral. -/
365+
lemma exists_le_integral (hf : integrable f μ) : ∃ x, f x ≤ ∫ a, f a ∂μ :=
366+
by simpa only [average_eq_integral] using exists_le_average (is_probability_measure.ne_zero μ) hf
367+
368+
/-- **First moment method**. The maximum of an integrable function is greater than its integral. -/
369+
lemma exists_integral_le (hf : integrable f μ) : ∃ x, ∫ a, f a ∂μ ≤ f x :=
370+
by simpa only [average_eq_integral] using exists_average_le (is_probability_measure.ne_zero μ) hf
371+
372+
/-- **First moment method**. The minimum of an integrable function is smaller than its integral,
373+
while avoiding a null set. -/
374+
lemma exists_not_mem_null_le_integral (hf : integrable f μ) (hN : μ N = 0) :
375+
∃ x ∉ N, f x ≤ ∫ a, f a ∂μ :=
376+
by simpa only [average_eq_integral]
377+
using exists_not_mem_null_le_average (is_probability_measure.ne_zero μ) hf hN
378+
379+
/-- **First moment method**. The maximum of an integrable function is greater than its integral,
380+
while avoiding a null set. -/
381+
lemma exists_not_mem_null_integral_le (hf : integrable f μ) (hN : μ N = 0) :
382+
∃ x ∉ N, ∫ a, f a ∂μ ≤ f x :=
383+
by simpa only [average_eq_integral]
384+
using exists_not_mem_null_average_le (is_probability_measure.ne_zero μ) hf hN
385+
386+
end probability_measure
387+
end first_moment
185388
end measure_theory

0 commit comments

Comments
 (0)