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

Commit c04a42f

Browse files
committed
feat(measure_theory/integral/{interval,circle}_integral): add strict inequalities (#11061)
1 parent f452b38 commit c04a42f

File tree

2 files changed

+97
-22
lines changed

2 files changed

+97
-22
lines changed

src/measure_theory/integral/circle_integral.lean

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,41 @@ calc ∥∮ z in C(c, R), f z∥ ≤ 2 * π * |R| * C :
311311
norm_integral_le_of_norm_le_const' $ by rwa this
312312
... = 2 * π * R * C : by rw this
313313

314+
lemma norm_two_pi_I_inv_smul_integral_le_of_norm_le_const {f : ℂ → E} {c : ℂ} {R C : ℝ} (hR : 0 ≤ R)
315+
(hf : ∀ z ∈ sphere c R, ∥f z∥ ≤ C) :
316+
∥(2 * π * I : ℂ)⁻¹ • ∮ z in C(c, R), f z∥ ≤ R * C :=
317+
begin
318+
have : ∥(2 * π * I : ℂ)⁻¹∥ = (2 * π)⁻¹, by simp [real.pi_pos.le],
319+
rw [norm_smul, this, ← div_eq_inv_mul, div_le_iff real.two_pi_pos, mul_comm (R * C), ← mul_assoc],
320+
exact norm_integral_le_of_norm_le_const hR hf
321+
end
322+
323+
/-- If `f` is continuous on the circle `|z - c| = R`, `R > 0`, the `∥f z∥` is less than or equal to
324+
`C : ℝ` on this circle, and this norm is strictly less than `C` at some point `z` of the circle,
325+
then `∥∮ z in C(c, R), f z∥ < 2 * π * R * C`. -/
326+
lemma norm_integral_lt_of_norm_le_const_of_lt {f : ℂ → E} {c : ℂ} {R C : ℝ} (hR : 0 < R)
327+
(hc : continuous_on f (sphere c R)) (hf : ∀ z ∈ sphere c R, ∥f z∥ ≤ C)
328+
(hlt : ∃ z ∈ sphere c R, ∥f z∥ < C) :
329+
∥∮ z in C(c, R), f z∥ < 2 * π * R * C :=
330+
begin
331+
rw [← _root_.abs_of_pos hR, ← image_circle_map_Ioc] at hlt,
332+
rcases hlt with ⟨_, ⟨θ₀, hmem, rfl⟩, hlt⟩,
333+
calc ∥∮ z in C(c, R), f z∥ ≤ ∫ θ in 0..2 * π, ∥deriv (circle_map c R) θ • f (circle_map c R θ)∥ :
334+
interval_integral.norm_integral_le_integral_norm real.two_pi_pos.le
335+
... < ∫ θ in 0..2 * π, R * C :
336+
begin
337+
simp only [norm_smul, deriv_circle_map, norm_eq_abs, complex.abs_mul, abs_I, mul_one,
338+
abs_circle_map_zero, abs_of_pos hR],
339+
refine interval_integral.integral_lt_integral_of_continuous_on_of_le_of_exists_lt
340+
real.two_pi_pos _ continuous_on_const (λ θ hθ, _) ⟨θ₀, Ioc_subset_Icc_self hmem, _⟩,
341+
{ exact continuous_on_const.mul (hc.comp (continuous_circle_map _ _).continuous_on
342+
(λ θ hθ, circle_map_mem_sphere _ hR.le _)).norm },
343+
{ exact mul_le_mul_of_nonneg_left (hf _ $ circle_map_mem_sphere _ hR.le _) hR.le },
344+
{ exact (mul_lt_mul_left hR).2 hlt }
345+
end
346+
... = 2 * π * R * C : by simp [mul_assoc]
347+
end
348+
314349
@[simp] lemma integral_smul {𝕜 : Type*} [is_R_or_C 𝕜] [normed_space 𝕜 E] [smul_comm_class 𝕜 ℂ E]
315350
(a : 𝕜) (f : ℂ → E) (c : ℂ) (R : ℝ) :
316351
∮ z in C(c, R), a • f z = a • ∮ z in C(c, R), f z :=

src/measure_theory/integral/interval_integral.lean

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,58 +1148,98 @@ begin
11481148
{ rw [integral_symm, neg_eq_zero, integral_eq_zero_iff_of_le_of_nonneg_ae hab hf hfi.symm] }
11491149
end
11501150

1151+
/-- If `f` is nonnegative and integrable on the unordered interval `set.interval_oc a b`, then its
1152+
integral over `a..b` is positive if and only if `a < b` and the measure of
1153+
`function.support f ∩ set.Ioc a b` is positive. -/
11511154
lemma integral_pos_iff_support_of_nonneg_ae'
1152-
(hf : 0 ≤ᵐ[μ.restrict (Ioc a b ∪ Ioc b a)] f) (hfi : interval_integrable f μ a b) :
1155+
(hf : 0 ≤ᵐ[μ.restrict (Ι a b)] f) (hfi : interval_integrable f μ a b) :
11531156
0 < ∫ x in a..b, f x ∂μ ↔ a < b ∧ 0 < μ (support f ∩ Ioc a b) :=
11541157
begin
1155-
obtain hab | hab := le_total b a;
1156-
simp only [Ioc_eq_empty hab.not_lt, empty_union, union_empty] at hf ⊢,
1157-
{ rw [←not_iff_not, not_and_distrib, not_lt, not_lt, integral_of_ge hab, neg_nonpos],
1158-
exact iff_of_true (integral_nonneg_of_ae hf) (or.intro_left _ hab) },
1159-
rw [integral_of_le hab, set_integral_pos_iff_support_of_nonneg_ae hf hfi.1, iff.comm,
1160-
and_iff_right_iff_imp],
1161-
contrapose!,
1162-
intro h,
1163-
rw [Ioc_eq_empty h.not_lt, inter_empty, measure_empty],
1164-
exact le_refl 0,
1158+
cases lt_or_le a b with hab hba,
1159+
{ rw interval_oc_of_le hab.le at hf,
1160+
simp only [hab, true_and, integral_of_le hab.le,
1161+
set_integral_pos_iff_support_of_nonneg_ae hf hfi.1] },
1162+
{ suffices : ∫ x in a..b, f x ∂μ ≤ 0, by simp only [this.not_lt, hba.not_lt, false_and],
1163+
rw [integral_of_ge hba, neg_nonpos],
1164+
rw [interval_oc_swap, interval_oc_of_le hba] at hf,
1165+
exact integral_nonneg_of_ae hf }
11651166
end
11661167

1167-
lemma integral_pos_iff_support_of_nonneg_ae
1168-
(hf : 0 ≤ᵐ[μ] f) (hfi : interval_integrable f μ a b) :
1168+
/-- If `f` is nonnegative a.e.-everywhere and it is integrable on the unordered interval
1169+
`set.interval_oc a b`, then its integral over `a..b` is positive if and only if `a < b` and the
1170+
measure of `function.support f ∩ set.Ioc a b` is positive. -/
1171+
lemma integral_pos_iff_support_of_nonneg_ae (hf : 0 ≤ᵐ[μ] f) (hfi : interval_integrable f μ a b) :
11691172
0 < ∫ x in a..b, f x ∂μ ↔ a < b ∧ 0 < μ (support f ∩ Ioc a b) :=
11701173
integral_pos_iff_support_of_nonneg_ae' (ae_mono measure.restrict_le_self hf) hfi
11711174

1172-
variable (hab : a ≤ b)
1175+
/-- If `f` and `g` are two functions that are interval integrable on `a..b`, `a ≤ b`,
1176+
`f x ≤ g x` for a.e. `x ∈ set.Ioc a b`, and `f x < g x` on a subset of `set.Ioc a b`
1177+
of nonzero measure, then `∫ x in a..b, f x ∂μ < ∫ x in a..b, g x ∂μ`. -/
1178+
lemma integral_lt_integral_of_ae_le_of_measure_set_of_lt_ne_zero (hab : a ≤ b)
1179+
(hfi : interval_integrable f μ a b) (hgi : interval_integrable g μ a b)
1180+
(hle : f ≤ᵐ[μ.restrict (Ioc a b)] g) (hlt : μ.restrict (Ioc a b) {x | f x < g x} ≠ 0) :
1181+
∫ x in a..b, f x ∂μ < ∫ x in a..b, g x ∂μ :=
1182+
begin
1183+
rw [← sub_pos, ← integral_sub hgi hfi, integral_of_le hab,
1184+
measure_theory.integral_pos_iff_support_of_nonneg_ae],
1185+
{ refine pos_iff_ne_zero.2 (mt (measure_mono_null _) hlt),
1186+
exact λ x hx, (sub_pos.2 hx).ne' },
1187+
exacts [hle.mono (λ x, sub_nonneg.2), hgi.1.sub hfi.1]
1188+
end
11731189

1174-
include hab
1190+
/-- If `f` and `g` are continuous on `[a, b]`, `a < b`, `f x ≤ g x` on this interval, and
1191+
`f c < g c` at some point `c ∈ [a, b]`, then `∫ x in a..b, f x < ∫ x in a..b, g x`. -/
1192+
lemma integral_lt_integral_of_continuous_on_of_le_of_exists_lt {f g : ℝ → ℝ} {a b : ℝ}
1193+
(hab : a < b) (hfc : continuous_on f (Icc a b)) (hgc : continuous_on g (Icc a b))
1194+
(hle : ∀ x ∈ Icc a b, f x ≤ g x) (hlt : ∃ c ∈ Icc a b, f c < g c) :
1195+
∫ x in a..b, f x < ∫ x in a..b, g x :=
1196+
begin
1197+
refine integral_lt_integral_of_ae_le_of_measure_set_of_lt_ne_zero hab.le
1198+
(hfc.interval_integrable_of_Icc hab.le) (hgc.interval_integrable_of_Icc hab.le)
1199+
((ae_restrict_mem measurable_set_Ioc).mono $ λ x hx, hle x (Ioc_subset_Icc_self hx)) _,
1200+
simp only [measure.restrict_apply' measurable_set_Ioc],
1201+
rcases hlt with ⟨c, ⟨hac, hcb⟩, hlt⟩,
1202+
have : ∀ᶠ x in 𝓝[Icc a b] c, f x < g x,
1203+
from ((hfc c ⟨hac, hcb⟩).prod (hgc c ⟨hac, hcb⟩)).eventually (is_open_lt_prod.mem_nhds hlt),
1204+
rcases (eventually_nhds_within_iff.1 this).exists_Ioo_subset with ⟨l, u, ⟨hlc, hcu⟩, hsub⟩,
1205+
have A : Ioo (max a l) (min b u) ⊆ Ioc a b,
1206+
from Ioo_subset_Ioc_self.trans (Ioc_subset_Ioc (le_max_left _ _) (min_le_left _ _)),
1207+
have B : Ioo (max a l) (min b u) ⊆ Ioo l u,
1208+
from Ioo_subset_Ioo (le_max_right _ _) (min_le_right _ _),
1209+
refine ne_of_gt _,
1210+
calc (0 : ℝ≥0∞) < volume (Ioo (max a l) (min b u)) :
1211+
by simp [hab, hlc.trans_le hcb, hac.trans_lt hcu, hlc.trans hcu]
1212+
... ≤ volume ({x | f x < g x} ∩ Ioc a b) :
1213+
measure_mono (λ x hx, ⟨hsub (B hx) (Ioc_subset_Icc_self $ A hx), A hx⟩)
1214+
end
11751215

1176-
lemma integral_nonneg_of_ae_restrict (hf : 0 ≤ᵐ[μ.restrict (Icc a b)] f) :
1216+
lemma integral_nonneg_of_ae_restrict (hab : a ≤ b) (hf : 0 ≤ᵐ[μ.restrict (Icc a b)] f) :
11771217
0 ≤ (∫ u in a..b, f u ∂μ) :=
11781218
let H := ae_restrict_of_ae_restrict_of_subset Ioc_subset_Icc_self hf in
11791219
by simpa only [integral_of_le hab] using set_integral_nonneg_of_ae_restrict H
11801220

1181-
lemma integral_nonneg_of_ae (hf : 0 ≤ᵐ[μ] f) :
1221+
lemma integral_nonneg_of_ae (hab : a ≤ b) (hf : 0 ≤ᵐ[μ] f) :
11821222
0 ≤ (∫ u in a..b, f u ∂μ) :=
11831223
integral_nonneg_of_ae_restrict hab $ ae_restrict_of_ae hf
11841224

1185-
lemma integral_nonneg_of_forall (hf : ∀ u, 0 ≤ f u) :
1225+
lemma integral_nonneg_of_forall (hab : a ≤ b) (hf : ∀ u, 0 ≤ f u) :
11861226
0 ≤ (∫ u in a..b, f u ∂μ) :=
11871227
integral_nonneg_of_ae hab $ eventually_of_forall hf
11881228

11891229
lemma integral_nonneg [topological_space α] [opens_measurable_space α] [order_closed_topology α]
1190-
(hf : ∀ u, u ∈ Icc a b → 0 ≤ f u) :
1230+
(hab : a ≤ b) (hf : ∀ u, u ∈ Icc a b → 0 ≤ f u) :
11911231
0 ≤ (∫ u in a..b, f u ∂μ) :=
11921232
integral_nonneg_of_ae_restrict hab $ (ae_restrict_iff' measurable_set_Icc).mpr $ ae_of_all μ hf
11931233

1194-
lemma abs_integral_le_integral_abs :
1234+
lemma abs_integral_le_integral_abs (hab : a ≤ b) :
11951235
|∫ x in a..b, f x ∂μ| ≤ ∫ x in a..b, |f x| ∂μ :=
11961236
by simpa only [← real.norm_eq_abs] using norm_integral_le_integral_norm hab
11971237

11981238
section mono
11991239

1200-
variables (hf : interval_integrable f μ a b) (hg : interval_integrable g μ a b)
1240+
variables (hab : a ≤ b) (hf : interval_integrable f μ a b) (hg : interval_integrable g μ a b)
12011241

1202-
include hf hg
1242+
include hab hf hg
12031243

12041244
lemma integral_mono_ae_restrict (h : f ≤ᵐ[μ.restrict (Icc a b)] g) :
12051245
∫ u in a..b, f u ∂μ ≤ ∫ u in a..b, g u ∂μ :=

0 commit comments

Comments
 (0)