Skip to content

Commit c98de65

Browse files
authored
Proof of Lemma 10.0.1 (#451)
A bit ugly, but it works
1 parent d32f31b commit c98de65

File tree

5 files changed

+78
-3
lines changed

5 files changed

+78
-3
lines changed

Carleson/Defs.lean

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,28 @@ Use `ENNReal.toReal` to get the corresponding real number. -/
292292
def carlesonOperator [FunctionDistances ℝ X] (K : X → X → ℂ) (f : X → ℂ) (x : X) : ℝ≥0∞ :=
293293
⨆ (θ : Θ X), linearizedCarlesonOperator (fun _ ↦ θ) K f x
294294

295+
private lemma carlesonOperatorIntegrand_const_smul [FunctionDistances ℝ X] (K : X → X → ℂ)
296+
(θ : Θ X) (R₁ R₂ : ℝ) (f : X → ℂ) (z : ℂ) :
297+
carlesonOperatorIntegrand (z • K) θ R₁ R₂ f = z • carlesonOperatorIntegrand K θ R₁ R₂ f := by
298+
unfold carlesonOperatorIntegrand
299+
ext x
300+
simp_rw [Pi.smul_apply, smul_eq_mul, ← integral_const_mul]
301+
congr with y
302+
ring
303+
304+
private lemma linearizedCarlesonOperator_const_smul [FunctionDistances ℝ X] (Q : X → Θ X)
305+
(K : X → X → ℂ) (f : X → ℂ) (z : ℂ) :
306+
linearizedCarlesonOperator Q (z • K) f = ‖z‖ₑ • linearizedCarlesonOperator Q K f := by
307+
unfold linearizedCarlesonOperator
308+
simp_rw [carlesonOperatorIntegrand_const_smul, Pi.smul_apply, smul_eq_mul, enorm_mul, ← mul_iSup]
309+
rfl
310+
311+
lemma carlesonOperator_const_smul [FunctionDistances ℝ X] (K : X → X → ℂ) (f : X → ℂ) (z : ℂ) :
312+
carlesonOperator (z • K) f = ‖z‖ₑ • carlesonOperator K f := by
313+
unfold carlesonOperator
314+
simp_rw [linearizedCarlesonOperator_const_smul, Pi.smul_apply, ← smul_iSup]
315+
rfl
316+
295317
end DoublingMeasure
296318

297319
/-- This is usually the value of the argument `A` in `DoublingMeasure`
@@ -340,6 +362,19 @@ class IsOneSidedKernel (a : outParam ℕ) (K : X → X → ℂ) : Prop where
340362

341363
export IsOneSidedKernel (measurable_K norm_K_le_vol_inv norm_K_sub_le)
342364

365+
lemma isOneSidedKernel_const_smul {a : ℕ} {K : X → X → ℂ} [IsOneSidedKernel a K] {r : ℝ}
366+
(hr : |r| ≤ 1) :
367+
IsOneSidedKernel a (r • K) where
368+
measurable_K := measurable_K.const_smul r
369+
norm_K_le_vol_inv x y := by
370+
convert mul_le_mul hr (norm_K_le_vol_inv (K := K) x y) (norm_nonneg _) (zero_le_one' ℝ) using 1
371+
all_goals simp
372+
norm_K_sub_le h := by
373+
simp only [Pi.smul_apply, real_smul]
374+
rw [← one_mul (_ ^ _ * _), ← mul_sub, Complex.norm_mul, norm_real, Real.norm_eq_abs]
375+
gcongr
376+
exact norm_K_sub_le h
377+
343378
lemma MeasureTheory.stronglyMeasurable_K [IsOneSidedKernel a K] :
344379
StronglyMeasurable (uncurry K) :=
345380
measurable_K.stronglyMeasurable
@@ -418,7 +453,7 @@ lemma integrableOn_K_Icc [IsOpenPosMeasure (volume : Measure X)]
418453
IntegrableOn (K x) {y | dist x y ∈ Icc r R} volume := by
419454
rw [← mul_one (K x)]
420455
refine integrableOn_K_mul ?_ x hr ?_
421-
· have : {y | dist x y ∈ Icc r R} ⊆ closedBall x R := by intro y; simp [dist_comm y x]
456+
· have : {y | dist x y ∈ Icc r R} ⊆ closedBall x R := Annulus.cc_subset_closedBall
422457
exact integrableOn_const ((measure_mono this).trans_lt measure_closedBall_lt_top).ne
423458
· intro y hy; simp [hy.1, dist_comm y x]
424459

Carleson/ToMathlib/WeakType.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,13 @@ lemma HasBoundedStrongType.hasBoundedWeakType (hp' : 0 < p')
523523
fun f hf ↦
524524
⟨(h f hf).1, wnorm_le_eLpNorm (h f hf).1 hp' |>.trans (h f hf).2
525525

526+
lemma HasBoundedStrongType.const_smul {T : (α → ε₁) → α' → ℝ≥0∞}
527+
(h : HasBoundedStrongType T p p' μ ν c) (r : ℝ≥0) :
528+
HasBoundedStrongType (r • T) p p' μ ν (r • c) := by
529+
intro f hf
530+
rw [Pi.smul_apply, MeasureTheory.eLpNorm_const_smul']
531+
exact ⟨(h f hf).1.const_smul _, le_of_le_of_eq (mul_le_mul_left' (h f hf).2 ‖r‖ₑ) (by simp; rfl)⟩
532+
526533
end HasBoundedStrongType
527534

528535
section distribution

Carleson/TwoSidedCarleson/MainTheorem.lean

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,32 @@ theorem two_sided_metric_carleson (ha : 4 ≤ a) (hq : q ∈ Ioc 1 2) (hqq' : q.
3030
{f : X → ℂ} (hmf : Measurable f) (hf : ∀ x, ‖f x‖ ≤ F.indicator 1 x) :
3131
∫⁻ x in G, carlesonOperator K f x ≤
3232
C10_0_1 a q * (volume G) ^ (q' : ℝ)⁻¹ * (volume F) ^ (q : ℝ)⁻¹ := by
33-
-- note: you might need to case on whether `volume F` is `∞` or not.
34-
sorry
33+
let c := (2 : ℝ) ^ (-2 * (a : ℝ) ^ 3)
34+
have c_pos : 0 < c := Real.rpow_pos_of_pos two_pos _
35+
have : IsOneSidedKernel a (c • K) := by
36+
apply isOneSidedKernel_const_smul
37+
unfold c
38+
rw [neg_mul, Real.abs_rpow_of_nonneg two_pos.le, abs_two]
39+
exact Real.rpow_le_one_of_one_le_of_nonpos one_le_two (by norm_num)
40+
let : KernelProofData a (c • K) := by constructor <;> assumption
41+
have : nontangentialOperator (c • K) = ‖c‖ₑ • nontangentialOperator K := by
42+
convert nontangentialOperator_const_smul (c : ℂ)
43+
rw [← ofReal_norm_eq_enorm, ← ofReal_norm_eq_enorm, Complex.norm_real]
44+
have HBST : HasBoundedStrongType (nontangentialOperator (c • K)) 2 2 volume volume (C_Ts a) := by
45+
rw [this, ← ofReal_norm_eq_enorm]
46+
convert HasBoundedStrongType.const_smul (nontangential_from_simple ha hT) ‖c‖.toNNReal
47+
rw [C_Ts, C10_0_2_def, coe_pow, coe_ofNat, ← rpow_natCast, Nat.cast_pow, ENNReal.smul_def,
48+
Real.norm_eq_abs, ofNNReal_toNNReal, abs_of_pos c_pos, ← ofReal_rpow_of_pos two_pos,
49+
coe_pow, coe_ofNat, ← rpow_natCast, Nat.cast_mul, Nat.cast_ofNat, Nat.cast_pow,
50+
ofReal_ofNat 2, smul_eq_mul, ← rpow_add _ _ (NeZero.ne 2) ENNReal.ofNat_ne_top]
51+
ring_nf
52+
rw [← ENNReal.mul_le_mul_left (enorm_ne_zero.mpr c_pos.ne') enorm_ne_top,
53+
← lintegral_const_mul' _ _ enorm_ne_top, mul_assoc, ← mul_assoc, ← mul_assoc]
54+
convert metric_carleson hq hqq' hF hG hmf hf HBST
55+
· convert congrFun (carlesonOperator_const_smul K f (c : ℂ)) _ |>.symm; simp
56+
rw [C10_0_1, C_K, coe_mul, ← mul_assoc, ← ofReal_coe_nnreal, Real.enorm_eq_ofReal c_pos.le,
57+
← ofReal_mul c_pos.le, NNReal.coe_pow, NNReal.coe_rpow, NNReal.coe_ofNat,
58+
← Real.rpow_mul_natCast two_pos.le, ← Real.rpow_add two_pos,
59+
ofReal_eq_one.mpr (by ring_nf; exact Real.rpow_zero 2), one_mul]
3560

3661
end

Carleson/TwoSidedCarleson/NontangentialOperator.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,4 +1173,11 @@ theorem nontangential_from_simple (ha : 4 ≤ a)
11731173
_ ≤ a ^ 3 + 2 * a * a * a := by gcongr
11741174
_ = _ := by ring
11751175

1176+
omit [IsTwoSidedKernel a K] in
1177+
lemma nontangentialOperator_const_smul (z : ℂ) :
1178+
nontangentialOperator (z • K) = ‖z‖ₑ • nontangentialOperator K := by
1179+
unfold nontangentialOperator
1180+
simp_rw [Pi.smul_apply, smul_eq_mul, mul_assoc, integral_const_mul, enorm_mul, ← ENNReal.mul_iSup]
1181+
rfl
1182+
11761183
end

blueprint/src/chapter/main.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6896,6 +6896,7 @@ \chapter{Two-sided Metric Space Carleson}
68966896

68976897
\begin{proof}[Proof of \Cref{two-sided-metric-space-Carleson}]
68986898
\proves{two-sided-metric-space-Carleson}
6899+
\leanok
68996900
Let $1<q\le 2$ be a real number. Let $\Theta$ be a cancellative compatible collection of functions.
69006901
By the assumption \eqref{two-sided-Hr-bound-assumption}, we can apply \Cref{nontangential-from-simple} to obtain for every bounded measurable $g:X\to\C$ supported on a set of finite measure,
69016902
\begin{equation}\label{original-operator-assumption}

0 commit comments

Comments
 (0)