Skip to content

Commit cf4b6b8

Browse files
authored
feat: Lemma 11.1.6 (#452)
I had to modify a little bit the blueprint, as it claimed an inequality was always true, but I could only prove it in some range. If one writes down the details of the proof, only this range is needed, so the global strategy of proof works perfectly well modulo these minor adjustments. I made the following Lean change: the `L^2` norm of `f` on an interval `[a, b]` was used as `eLpNorm (indicator (Icc a b) f) 2` (where there is a measure there, the volume, which is implicit). I changed it to `eLpNorm f 2 (volume.restrict (Icc a b))` here and there, as this is how we do integrals on sets and it is much more convenient to use since we have a big API for restrictions of measures (and avoiding indicators is always a good idea as they are pretty painful).
1 parent d6aa681 commit cf4b6b8

File tree

9 files changed

+625
-170
lines changed

9 files changed

+625
-170
lines changed

Carleson/Classical/HilbertKernel.lean

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Carleson.Classical.Basic
2+
import Mathlib.Data.Real.Pi.Bounds
23

34
/- This file contains definitions and lemmas regarding the Hilbert kernel. -/
45

@@ -21,20 +22,21 @@ lemma k_of_one_le_abs {x : ℝ} (abs_le_one : 1 ≤ |x|) : k x = 0 := by
2122
rw [k, max_eq_right (by linarith)]
2223
simp
2324

24-
@[measurability]
25+
@[fun_prop]
2526
lemma k_measurable : Measurable k := by
2627
unfold k
2728
fun_prop
2829

29-
def K (x y : ℝ) : ℂ := k (x - y)
30-
--TODO: maybe change to
31-
--def K : ℝ → ℝ → ℂ := fun x y ↦ k (x - y)
30+
def K : ℝ → ℝ → ℂ := fun x y ↦ k (x - y)
31+
32+
lemma K_def : K = fun x y ↦ k (x - y) := rfl
3233

3334
lemma Hilbert_kernel_conj_symm {x y : ℝ} : K y x = conj (K x y) := by
3435
rw [K, ← neg_sub, k_of_neg_eq_conj_k, ← K]
3536

36-
@[measurability]
37-
lemma Hilbert_kernel_measurable : Measurable (Function.uncurry K) := k_measurable.comp measurable_sub
37+
@[fun_prop]
38+
lemma Hilbert_kernel_measurable : Measurable (Function.uncurry K) :=
39+
k_measurable.comp measurable_sub
3840

3941
/- Lemma 11.1.11 (Hilbert kernel bound) -/
4042
lemma Hilbert_kernel_bound {x y : ℝ} : ‖K x y‖ ≤ 2 ^ (2 : ℝ) / (2 * |x - y|) := by
@@ -80,13 +82,15 @@ lemma Hilbert_kernel_bound {x y : ℝ} : ‖K x y‖ ≤ 2 ^ (2 : ℝ) / (2 * |x
8082

8183
/-Main part of the proof of Hilbert_kernel_regularity -/
8284
/-TODO: This can be local, i.e. invisible to other files. -/
83-
lemma Hilbert_kernel_regularity_main_part {y y' : ℝ} (yy'nonneg : 0 ≤ y ∧ 0 ≤ y') (ypos : 0 < y) (y2ley' : y / 2 ≤ y') (hy : y ≤ 1) (hy' : y' ≤ 1) :
85+
lemma Hilbert_kernel_regularity_main_part {y y' : ℝ} (yy'nonneg : 0 ≤ y ∧ 0 ≤ y') (ypos : 0 < y)
86+
(y2ley' : y / 2 ≤ y') (hy : y ≤ 1) (hy' : y' ≤ 1) :
8487
‖k (-y) - k (-y')‖ ≤ 2 ^ 6 * (1 / |y|) * (|y - y'| / |y|) := by
8588
rw [k_of_abs_le_one, k_of_abs_le_one]
8689
· simp only [abs_neg, ofReal_neg, mul_neg]
8790
rw [_root_.abs_of_nonneg yy'nonneg.1, _root_.abs_of_nonneg yy'nonneg.2]
8891
set f : ℝ → ℂ := fun t ↦ (1 - t) / (1 - exp (-(I * t))) with hf
89-
set f' : ℝ → ℂ := fun t ↦ (-1 + exp (-(I * t)) + I * (t - 1) * exp (-(I * t))) / (1 - exp (-(I * t))) ^ 2 with f'def
92+
set f' : ℝ → ℂ := fun t ↦ (-1 + exp (-(I * t)) + I * (t - 1) * exp (-(I * t)))
93+
/ (1 - exp (-(I * t))) ^ 2 with f'def
9094
set c : ℝ → ℂ := fun t ↦ (1 - t) with cdef
9195
set c' : ℝ → ℂ := fun t ↦ -1 with c'def
9296
set d : ℝ → ℂ := fun t ↦ (1 - exp (-(I * t))) with ddef
@@ -235,7 +239,8 @@ lemma Hilbert_kernel_regularity {x y y' : ℝ} :
235239
have := this h_ y_y'_nonneg
236240
rw [y_def, y'_def] at this
237241
simp only [neg_neg, abs_neg, sub_neg_eq_add, neg_add_eq_sub] at this
238-
rw [← RCLike.norm_conj, map_sub, ← k_of_neg_eq_conj_k, ← k_of_neg_eq_conj_k, ←abs_neg (y' - y)] at this
242+
rw [← RCLike.norm_conj, map_sub, ← k_of_neg_eq_conj_k, ← k_of_neg_eq_conj_k,
243+
← abs_neg (y' - y)] at this
239244
simpa
240245
/-"Wlog" 0 < y-/
241246
by_cases ypos : y ≤ 0

Carleson/Classical/HilbertStrongType.lean

Lines changed: 408 additions & 63 deletions
Large diffs are not rendered by default.

Carleson/ToMathlib/MeasureTheory/Integral/MeanInequalities.lean

Lines changed: 52 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -489,21 +489,17 @@ theorem eLpNorm_convolution_le_enorm_mul' [μ.IsAddRightInvariant] {p q r : ℝ
489489
((L (f x)).le_opNorm (g y)).trans <| mul_le_mul_of_nonneg_right (L.le_opNorm _) (norm_nonneg _)
490490

491491
open Set AddCircle in
492-
/-- **Young's convolution inequality** on (a, a + T]: the `L^r` seminorm of the convolution
493-
of `T`-periodic functions over (a, a + T] is bounded by `‖L‖ₑ` times the product of
494-
the `L^p` and `L^q` seminorms on that interval, where `1 / p + 1 / q = 1 / r + 1`. Here `‖L‖ₑ`
495-
is replaced with a bound for `L` restricted to the ranges of `f` and `g`; see
496-
`eLpNorm_Ioc_convolution_le_enorm_mul` for a version using `‖L‖ₑ` explicitly. -/
497-
theorem eLpNorm_Ioc_convolution_le_of_norm_le_mul (a : ℝ) {T : ℝ} [hT : Fact (0 < T)]
492+
lemma eLpNorm_Ioc_convolution_le_of_norm_le_mul_aux (a : ℝ) {T : ℝ} [hT : Fact (0 < T)]
498493
{p q r : ℝ≥0∞} (hp : 1 ≤ p) (hq : 1 ≤ q) (hr : 1 ≤ r) (hpqr : p⁻¹ + q⁻¹ = r⁻¹ + 1)
499494
{f : ℝ → E} {g : ℝ → E'} (hfT : f.Periodic T) (hgT : g.Periodic T)
500495
(hf : AEStronglyMeasurable f) (hg : AEStronglyMeasurable g)
501496
(c : ℝ) (hL : ∀ (x y : ℝ), ‖L (f x) (g y)‖ ≤ c * ‖f x‖ * ‖g y‖) :
502-
eLpNorm ((Ioc a (a + T)).indicator fun x ↦ ∫ y in a..a+T, L (f y) (g (x - y))) r ≤
503-
.ofReal c * eLpNorm ((Ioc a (a + T)).indicator f) p * eLpNorm ((Ioc a (a + T)).indicator g) q :=
497+
eLpNorm (fun x ↦ ∫ y in a..a+T, L (f y) (g (x - y))) r (volume.restrict (Ioc a (a + T))) ≤
498+
.ofReal c * eLpNorm f p (volume.restrict (Ioc a (a + T))) *
499+
eLpNorm g q (volume.restrict (Ioc a (a + T))) :=
504500
calc
505501
_ = eLpNorm (liftIoc T a fun x ↦ ∫ (y : ℝ) in a..a + T, (L (f y)) (g (x - y))) r := by
506-
rw [← eLpNorm_liftIoc T a]
502+
rw [← eLpNorm_liftIoc' T a]
507503
· apply AEStronglyMeasurable.sub
508504
· apply AEStronglyMeasurable.integral_prod_right' (f := fun z ↦ L (f z.2) (g (z.1 - z.2)))
509505
apply L.aestronglyMeasurable_comp₂ hf.restrict.comp_snd
@@ -516,20 +512,62 @@ theorem eLpNorm_Ioc_convolution_le_of_norm_le_mul (a : ℝ) {T : ℝ} [hT : Fact
516512
exact eLpNorm_convolution_le_of_norm_le_mul' L hp hq hr hpqr (hf.liftIoc T a) (hg.liftIoc T a)
517513
c (by intros; apply hL)
518514
_ = _ := by
519-
rw [← eLpNorm_liftIoc T a hf, ← eLpNorm_liftIoc T a hg]
515+
rw [← eLpNorm_liftIoc' T a hf, ← eLpNorm_liftIoc' T a hg]
516+
517+
open Set AddCircle in
518+
/-- **Young's convolution inequality** on (a, a + T]: the `L^r` seminorm of the convolution
519+
of `T`-periodic functions over (a, a + T] is bounded by `‖L‖ₑ` times the product of
520+
the `L^p` and `L^q` seminorms on that interval, where `1 / p + 1 / q = 1 / r + 1`. Here `‖L‖ₑ`
521+
is replaced with a bound for `L` restricted to the ranges of `f` and `g`; see
522+
`eLpNorm_Ioc_convolution_le_enorm_mul` for a version using `‖L‖ₑ` explicitly. -/
523+
theorem eLpNorm_Ioc_convolution_le_of_norm_le_mul (a : ℝ) {T : ℝ} [hT : Fact (0 < T)]
524+
{p q r : ℝ≥0∞} (hp : 1 ≤ p) (hq : 1 ≤ q) (hr : 1 ≤ r) (hpqr : p⁻¹ + q⁻¹ = r⁻¹ + 1)
525+
{f : ℝ → E} {g : ℝ → E'} (hgT : g.Periodic T)
526+
(hf : AEStronglyMeasurable f) (hg : AEStronglyMeasurable g)
527+
(c : ℝ) (hL : ∀ (x y : ℝ), ‖L (f x) (g y)‖ ≤ c * ‖f x‖ * ‖g y‖) :
528+
eLpNorm (fun x ↦ ∫ y in a..a+T, L (f y) (g (x - y))) r (volume.restrict (Ioc a (a + T))) ≤
529+
.ofReal c * eLpNorm f p (volume.restrict (Ioc a (a + T))) *
530+
eLpNorm g q (volume.restrict (Ioc a (a + T))) := by
531+
let f' := AddCircle.liftIoc T a f
532+
let f'' := fun (x : ℝ) ↦ f' x
533+
have hfT : f''.Periodic T := by simp [Function.Periodic, f'']
534+
have : eLpNorm (fun x ↦ ∫ y in a..a+T, L (f'' y) (g (x - y))) r
535+
(volume.restrict (Ioc a (a + T))) ≤
536+
.ofReal c * eLpNorm f'' p (volume.restrict (Ioc a (a + T))) *
537+
eLpNorm g q (volume.restrict (Ioc a (a + T))) := by
538+
apply eLpNorm_Ioc_convolution_le_of_norm_le_mul_aux L a hp hq hr hpqr hfT hgT _ hg
539+
· intro x y
540+
simp only [liftIoc, Function.comp_apply, restrict_apply, f'', f']
541+
apply hL
542+
have A : AEStronglyMeasurable f'
543+
(Measure.map (fun (x : ℝ) ↦ (x : AddCircle T)) (volume : Measure ℝ)) :=
544+
AEStronglyMeasurable.mono_ac (quasiMeasurePreserving_coe_addCircle T).absolutelyContinuous
545+
(by fun_prop)
546+
exact A.comp_measurable (by fun_prop)
547+
convert this using 3 with x
548+
· rw [intervalIntegral.integral_of_le (by linarith [hT.out]),
549+
intervalIntegral.integral_of_le (by linarith [hT.out])]
550+
apply setIntegral_congr_fun measurableSet_Ioc (fun y hy ↦ ?_)
551+
congr
552+
exact (equivIoc_coe_of_mem a hy).symm
553+
· apply eLpNorm_congr_ae
554+
filter_upwards [self_mem_ae_restrict measurableSet_Ioc] with y hy
555+
congr
556+
exact (equivIoc_coe_of_mem a hy).symm
520557

521558
open Set in
522559
/-- **Young's convolution inequality** on (a, a + T]: the `L^r` seminorm of the convolution
523560
of `T`-periodic functions over (a, a + T] is bounded by `‖L‖ₑ` times the product of
524561
the `L^p` and `L^q` seminorms on that interval, where `1 / p + 1 / q = 1 / r + 1`. -/
525562
theorem eLpNorm_Ioc_convolution_le_enorm_mul (a : ℝ) {T : ℝ} [hT : Fact (0 < T)]
526563
{p q r : ℝ≥0∞} (hp : 1 ≤ p) (hq : 1 ≤ q) (hr : 1 ≤ r) (hpqr : p⁻¹ + q⁻¹ = r⁻¹ + 1)
527-
{f : ℝ → E} {g : ℝ → E'} (hfT : f.Periodic T) (hgT : g.Periodic T)
564+
{f : ℝ → E} {g : ℝ → E'} (hgT : g.Periodic T)
528565
(hf : AEStronglyMeasurable f) (hg : AEStronglyMeasurable g) :
529-
eLpNorm ((Ioc a (a + T)).indicator fun x ↦ ∫ y in a..a+T, L (f y) (g (x - y))) r ≤
530-
‖L‖ₑ * eLpNorm ((Ioc a (a + T)).indicator f) p * eLpNorm ((Ioc a (a + T)).indicator g) q := by
566+
eLpNorm (fun x ↦ ∫ y in a..a+T, L (f y) (g (x - y))) r (volume.restrict (Ioc a (a + T))) ≤
567+
‖L‖ₑ * eLpNorm f p (volume.restrict (Ioc a (a + T)))
568+
* eLpNorm g q (volume.restrict (Ioc a (a + T))) := by
531569
rw [← enorm_norm, Real.enorm_of_nonneg (norm_nonneg L)]
532-
exact eLpNorm_Ioc_convolution_le_of_norm_le_mul L a hp hq hr hpqr hfT hgT hf hg ‖L‖ <| fun x y ↦
570+
exact eLpNorm_Ioc_convolution_le_of_norm_le_mul L a hp hq hr hpqr hgT hf hg ‖L‖ <| fun x y ↦
533571
((L (f x)).le_opNorm (g y)).trans <| mul_le_mul_of_nonneg_right (L.le_opNorm _) (norm_nonneg _)
534572

535573
end ENNReal

Carleson/ToMathlib/MeasureTheory/Integral/Periodic.lean

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,24 +72,46 @@ open AddCircle
7272

7373
variable {E : Type*} (T a : ℝ) [hT : Fact (0 < T)] {f : ℝ → E}
7474

75-
protected theorem AEStronglyMeasurable.liftIoc [TopologicalSpace E]
75+
@[fun_prop] protected theorem AEStronglyMeasurable.liftIoc [TopologicalSpace E]
7676
(hf : AEStronglyMeasurable f) : AEStronglyMeasurable (liftIoc T a f) :=
7777
(map_subtypeVal_map_equivIoc_volume T a ▸ hf.restrict).comp_measurable
7878
measurable_subtype_coe |>.comp_measurable (measurable_equivIoc T a)
7979

80-
protected theorem AEStronglyMeasurable.liftIco [TopologicalSpace E]
80+
@[fun_prop] protected theorem AEStronglyMeasurable.liftIco [TopologicalSpace E]
8181
(hf : AEStronglyMeasurable f) : AEStronglyMeasurable (liftIco T a f) :=
8282
(hf.liftIoc T a).congr (liftIoc_ae_eq_liftIco f)
8383

84-
protected theorem AEMeasurable.liftIoc [MeasurableSpace E] (hf : AEMeasurable f) :
84+
@[fun_prop] protected theorem AEMeasurable.liftIoc [MeasurableSpace E] (hf : AEMeasurable f) :
8585
AEMeasurable (liftIoc T a f) :=
8686
(map_subtypeVal_map_equivIoc_volume T a ▸ hf.restrict).comp_measurable
8787
measurable_subtype_coe |>.comp_measurable (measurable_equivIoc T a)
8888

89-
protected theorem AEMeasurable.liftIco [MeasurableSpace E] (hf : AEMeasurable f) :
89+
@[fun_prop] protected theorem AEMeasurable.liftIco [MeasurableSpace E] (hf : AEMeasurable f) :
9090
AEMeasurable (liftIco T a f) :=
9191
(hf.liftIoc T a).congr (liftIoc_ae_eq_liftIco f)
9292

93+
theorem map_coe_addCircle_volume_eq :
94+
Measure.map (fun (x : ℝ) ↦ (x : AddCircle T)) volume =
95+
(⊤ : ℝ≥0∞) • (volume : Measure (AddCircle T)) := by
96+
have : (volume : Measure ℝ) =
97+
Measure.sum (fun (n : ℤ) ↦ volume.restrict (Ioc (n • T) ((n + 1) • T))) := by
98+
rw [← restrict_iUnion (Set.pairwise_disjoint_Ioc_zsmul T) (fun n ↦ measurableSet_Ioc),
99+
iUnion_Ioc_zsmul hT.out, restrict_univ]
100+
rw [this, Measure.map_sum (by fun_prop)]
101+
have A (n : ℤ) : Measure.map (fun (x : ℝ) ↦ (x : AddCircle T))
102+
(volume.restrict (Ioc (n • T) ((n + 1) • T)) ) = volume := by
103+
simp only [zsmul_eq_mul, Int.cast_add, Int.cast_one, add_mul, one_mul]
104+
exact (AddCircle.measurePreserving_mk T (n * T)).map_eq
105+
simp only [A]
106+
ext s hs
107+
simp [hs]
108+
109+
theorem quasiMeasurePreserving_coe_addCircle :
110+
QuasiMeasurePreserving (fun (x : ℝ) ↦ (x : AddCircle T)) := by
111+
refine ⟨by fun_prop, ?_⟩
112+
rw [map_coe_addCircle_volume_eq]
113+
exact smul_absolutelyContinuous
114+
93115
end MeasureTheory
94116

95117

@@ -141,23 +163,45 @@ theorem eLpNorm_liftIoc (p : ℝ≥0∞) :
141163
rw [this, eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ioc]
142164
exact (eLpNorm_comp_measurePreserving (hf.liftIoc T a) (AddCircle.measurePreserving_mk T a)).symm
143165

166+
/-- The norm of the lift of a function `f` is equal to the norm of `f` on that period. -/
167+
theorem eLpNorm_liftIoc' (p : ℝ≥0∞) :
168+
eLpNorm (AddCircle.liftIoc T a f) p = eLpNorm f p (volume.restrict ((Set.Ioc a (a + T)))) := by
169+
rw [eLpNorm_liftIoc _ _ hf, eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ioc]
170+
144171
/-- The norm of the lift of a function `f` is equal to the norm of `f` on that period. -/
145172
theorem eLpNorm_liftIco (p : ℝ≥0∞) :
146173
eLpNorm (AddCircle.liftIco T a f) p = eLpNorm ((Set.Ico a (a + T)).indicator f) p := by
147174
rw [eLpNorm_congr_ae (liftIoc_ae_eq_liftIco f).symm, eLpNorm_liftIoc T a hf,
148175
eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ico,
149176
eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ioc, restrict_Ico_eq_restrict_Ioc]
150177

178+
/-- The norm of the lift of a function `f` is equal to the norm of `f` on that period. -/
179+
theorem eLpNorm_liftIco' (p : ℝ≥0∞) :
180+
eLpNorm (AddCircle.liftIco T a f) p = eLpNorm f p (volume.restrict (Set.Ico a (a + T))) := by
181+
rw [eLpNorm_liftIco _ _ hf, eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ico]
182+
151183
/-- The norm of the lift of a periodic function `f` is equal to the norm of `f` on any period. -/
152184
theorem eLpNorm_liftIoc_of_periodic (hfT : Periodic f T) (p : ℝ≥0∞) :
153185
eLpNorm (AddCircle.liftIoc T a f) p = eLpNorm ((Set.Ioc a' (a' + T)).indicator f) p := by
154186
rw [liftIoc_eq_liftIoc a a' hfT, eLpNorm_liftIoc T a' hf p]
155187

188+
/-- The norm of the lift of a periodic function `f` is equal to the norm of `f` on any period. -/
189+
theorem eLpNorm_liftIoc_of_periodic' (hfT : Periodic f T) (p : ℝ≥0∞) :
190+
eLpNorm (AddCircle.liftIoc T a f) p = eLpNorm f p (volume.restrict (Set.Ioc a' (a' + T))) := by
191+
rw [eLpNorm_liftIoc_of_periodic T a a' hf hfT,
192+
eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ioc]
193+
156194
/-- The norm of the lift of a periodic function `f` is equal to the norm of `f` on any period. -/
157195
theorem eLpNorm_liftIco_of_periodic (hfT : Periodic f T) (p : ℝ≥0∞) :
158196
eLpNorm (AddCircle.liftIco T a f) p = eLpNorm ((Set.Ico a' (a' + T)).indicator f) p := by
159197
rw [liftIco_eq_liftIco a a' hfT, eLpNorm_liftIco T a' hf p]
160198

199+
/-- The norm of the lift of a periodic function `f` is equal to the norm of `f` on any period. -/
200+
theorem eLpNorm_liftIco_of_periodic' (hfT : Periodic f T) (p : ℝ≥0∞) :
201+
eLpNorm (AddCircle.liftIco T a f) p = eLpNorm f p (volume.restrict (Set.Ico a' (a' + T))) := by
202+
rw [eLpNorm_liftIco_of_periodic T a a' hf hfT,
203+
eLpNorm_indicator_eq_eLpNorm_restrict measurableSet_Ico]
204+
161205
end eLpNorm
162206

163207
end AddCircle

Carleson/ToMathlib/Topology/Instances/AddCircle/Defs.lean

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ end Periodic
6767

6868
/-- Ioc version of mathlib `coe_eq_coe_iff_of_mem_Ico` -/
6969
lemma coe_eq_coe_iff_of_mem_Ioc {p : 𝕜} [hp : Fact (0 < p)]
70-
{a : 𝕜} [Archimedean 𝕜] {x y : 𝕜} (hx : x ∈ Set.Ioc a (a + p)) (hy : y ∈ Set.Ioc a (a + p)) :
70+
{a : 𝕜} [Archimedean 𝕜] {x y : 𝕜} (hx : x ∈ Set.Ioc a (a + p)) (hy : y ∈ Set.Ioc a (a + p)) :
7171
(x : AddCircle p) = y ↔ x = y := by
7272
refine ⟨fun h => ?_, by tauto⟩
7373
suffices (⟨x, hx⟩ : Set.Ioc a (a + p)) = ⟨y, hy⟩ by exact Subtype.mk.inj this
@@ -82,5 +82,14 @@ lemma eq_coe_Ioc {p : 𝕜} [hp : Fact (0 < p)] [Archimedean 𝕜]
8282
exact ⟨b.1, by simpa only [zero_add] using b.2,
8383
(QuotientAddGroup.equivIocMod hp.out 0).symm_apply_apply a⟩
8484

85+
lemma coe_equivIoc {p : 𝕜} [hp : Fact (0 < p)] [Archimedean 𝕜] (a : 𝕜) {y : AddCircle p} :
86+
(equivIoc p a y : AddCircle p) = y :=
87+
(equivIoc p a).left_inv y
88+
89+
lemma equivIoc_coe_of_mem {p : 𝕜} [hp : Fact (0 < p)] [Archimedean 𝕜] (a : 𝕜) {y : 𝕜}
90+
(hy : y ∈ Set.Ioc a (a + p)) :
91+
equivIoc p a y = y := by
92+
have : equivIoc p a y = ⟨y, hy⟩ := (equivIoc p a).right_inv ⟨y, hy⟩
93+
simp [this]
8594

8695
end AddCircle

Carleson/TwoSidedCarleson/Basic.lean

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ lemma memLp_top_K_on_ball_complement (hr : 0 < r) {x : X}:
2525
· intro y hy
2626
apply enorm_K_le_ball_complement' hr hy
2727

28-
lemma czoperator_bound {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr : 0 < r) (x : X) :
28+
lemma czOperator_bound {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr : 0 < r) (x : X) :
2929
∃ (M : ℝ≥0), ∀ᵐ y ∂(volume.restrict (ball x r)ᶜ), ‖K x y * g y‖ ≤ M := by
3030
let M0 := (C_K a / volume (ball x r) * eLpNorm g ∞).toNNReal
3131
use M0
@@ -62,28 +62,38 @@ lemma czoperator_bound {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr : 0 < r
6262
· exact measurableSet_ball.compl.nullMeasurableSet
6363
· exact measurableSet_ball.compl.nullMeasurableSet
6464

65+
omit [IsOneSidedKernel a K] in
6566
@[fun_prop]
66-
lemma czOperator_aestronglyMeasurable' {g : X → ℂ} (hg : AEStronglyMeasurable g) :
67+
lemma czOperator_aestronglyMeasurable' (hK : Measurable (uncurry K))
68+
{g : X → ℂ} (hg : AEStronglyMeasurable g) :
6769
AEStronglyMeasurable (fun x ↦ czOperator K r g x) := by
6870
unfold czOperator
6971
conv => arg 1; intro x; rw [← integral_indicator (by measurability)]
7072
let f := fun (x,z) ↦ (ball x r)ᶜ.indicator (fun y ↦ K x y * g y) z
7173
apply AEStronglyMeasurable.integral_prod_right' (f := f)
7274
unfold f
7375
apply AEStronglyMeasurable.indicator
74-
· apply Continuous.comp_aestronglyMeasurable₂ (by fun_prop) aestronglyMeasurable_K
76+
· apply Continuous.comp_aestronglyMeasurable₂ (by fun_prop) hK.aestronglyMeasurable
7577
exact hg.comp_snd
7678
· conv => arg 1; change {x : (X × X) | x.2 ∈ (ball x.1 r)ᶜ}
7779
simp_rw [mem_compl_iff, mem_ball, not_lt]
7880
apply measurableSet_le <;> fun_prop
7981

8082
@[fun_prop]
81-
-- TODO: remove in favour of `czOperator_aestronglyMeasurable'` (and unprime that one)
82-
lemma czOperator_aestronglyMeasurable {g : X → ℂ} (hg : BoundedFiniteSupport g) :
83+
lemma czOperator_aestronglyMeasurable
84+
{g : X → ℂ} (hg : AEStronglyMeasurable g) :
8385
AEStronglyMeasurable (fun x ↦ czOperator K r g x) :=
84-
czOperator_aestronglyMeasurable' hg.aestronglyMeasurable
86+
czOperator_aestronglyMeasurable' measurable_K hg
8587

86-
lemma czoperator_welldefined {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr : 0 < r) (x : X):
88+
/- Next lemma is useful for fun_prop in a context where it can not find the relevant measure to
89+
apply `czOperator_aestronglyMeasurable`.
90+
TODO: investigate -/
91+
@[fun_prop]
92+
lemma czOperator_aestronglyMeasurable_aux {g : X → ℂ} (hg : BoundedFiniteSupport g) :
93+
AEStronglyMeasurable (fun x ↦ czOperator K r g x) :=
94+
czOperator_aestronglyMeasurable hg.aestronglyMeasurable
95+
96+
lemma czOperator_welldefined {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr : 0 < r) (x : X):
8797
IntegrableOn (fun y => K x y * g y) (ball x r)ᶜ volume := by
8898
let Kxg := fun y ↦ K x y * g y
8999
have mKxg : AEStronglyMeasurable Kxg := by
@@ -99,7 +109,7 @@ lemma czoperator_welldefined {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr :
99109
simp only [NNReal.zero_le_coe]
100110

101111
have bdd_Kxg : ∃ (M : ℝ), ∀ᵐ y ∂(volume.restrict ((ball x r)ᶜ ∩ support Kxg)), ‖Kxg y‖ ≤ M := by
102-
obtain ⟨M, hM⟩ := czoperator_bound (K := K) hg hr x
112+
obtain ⟨M, hM⟩ := czOperator_bound (K := K) hg hr x
103113
use M
104114
rw [ae_iff, Measure.restrict_apply₀']
105115
· conv =>
@@ -129,12 +139,12 @@ lemma czoperator_welldefined {g : X → ℂ} (hg : BoundedFiniteSupport g) (hr :
129139
· exact hM
130140

131141
-- This could be adapted to state T_r is a linear operator but maybe it's not worth the effort
132-
lemma czoperator_sub {f g : X → ℂ} (hf : BoundedFiniteSupport f) (hg : BoundedFiniteSupport g) (hr : 0 < r) :
142+
lemma czOperator_sub {f g : X → ℂ} (hf : BoundedFiniteSupport f) (hg : BoundedFiniteSupport g) (hr : 0 < r) :
133143
czOperator K r (f - g) = czOperator K r f - czOperator K r g := by
134144
ext x
135145
unfold czOperator
136146
simp_rw [Pi.sub_apply, mul_sub_left_distrib,
137-
integral_sub (czoperator_welldefined hf hr x) (czoperator_welldefined hg hr x)]
147+
integral_sub (czOperator_welldefined hf hr x) (czOperator_welldefined hg hr x)]
138148

139149
/-- Lemma 10.1.1 -/
140150
lemma geometric_series_estimate {x : ℝ} (hx : 2 ≤ x) :

0 commit comments

Comments
 (0)