fpvandoorn/carleson
Source indexedlemma Β· leanprover/lean4:v4.32.0
TileStructure.Forest.second_tree_pointwise
Carleson.ForestOperator.PointwiseEstimate Β· Carleson/ForestOperator/PointwiseEstimate.lean:669 to 750
Source documentation
Lemma 7.1.5
Exact Lean statement
lemma second_tree_pointwise (hu : u β t) (hL : L β π (t u)) (hx : x β L) (hx' : x' β L) :
ββ i β t.Ο u x, β« y, Ks i x y * approxOnCube (π (t u)) f yββ β€
nontangentialMaximalFunction (π¬ u) (approxOnCube (π (t u)) f) x'Complete declaration
Lean source
Full Lean sourceLean 4
lemma second_tree_pointwise (hu : u β t) (hL : L β π (t u)) (hx : x β L) (hx' : x' β L) : ββ i β t.Ο u x, β« y, Ks i x y * approxOnCube (π (t u)) f yββ β€ nontangentialMaximalFunction (π¬ u) (approxOnCube (π (t u)) f) x' := by rcases (t.Ο u x).eq_empty_or_nonempty with hne | hne; Β· simp [hne] let sβ := Finset.min' (t.Ο u x) hne have msβ : sβ β t.Ο u x := Finset.min'_mem .. simp_rw [Ο, Finset.mem_image, Finset.mem_filter_univ] at msβ obtain β¨p, β¨mp, xp, _, _β©, spβ© := msβ have Lle : L β€ π p := by rcases π_subset_πβ hL with hL | hL Β· exact le_of_mem_of_mem (hL.symm βΈ scale_mem_Icc.1) hx xp Β· exact (le_or_ge_of_mem_of_mem xp hx).resolve_left (hL.2 p mp) let sβ := Finset.max' (t.Ο u x) hne have msβ : sβ β t.Ο u x := Finset.max'_mem .. simp_rw [Ο, Finset.mem_image, Finset.mem_filter_univ] at msβ obtain β¨p', β¨mp', xp', Qxp', _β©, sp'β© := msβ have s_ineq : π° p β€ π° p' := by rw [sp, sp']; exact (t.Ο u x).min'_le sβ (Finset.max'_mem ..) have pinc : π p β€ π p' := le_of_mem_of_mem s_ineq xp xp' have d5 : dist_(p') (π¬ u) (Q x) < 5 := dist_lt_5 hu mp' Qxp' have d5' : dist_{x, D ^ sβ} (π¬ u) (Q x) < 5 * defaultA a ^ 5 := by have i1 : dist x (π p) < 4 * D ^ π° p' := (mem_ball.mp (Grid_subset_ball xp)).trans_le <| by gcongr; exacts [one_le_realD _, s_ineq] have i2 : dist (π p') (π p) < 4 * D ^ π° p' := mem_ball'.mp (ball_subset_Grid.trans (Grid.le_def.mp pinc).1 |>.trans Grid_subset_ball <| mem_ball_self (by unfold defaultD; positivity)) calc _ β€ dist_{π p, 8 * D ^ π° p'} (π¬ u) (Q x) := by refine cdist_mono (ball_subset_ball' ?_); rw [β sp'] calc _ β€ (D : β) ^ π° p' + 4 * D ^ π° p' := add_le_add_right i1.le _ _ = 5 * D ^ π° p' := by ring _ β€ _ := by gcongr; norm_num _ β€ defaultA a * dist_{π p', 4 * D ^ π° p'} (π¬ u) (Q x) := by convert cdist_le (xβ := π p) _ using 1 Β· exact dist_congr rfl (by ring) Β· apply i2.trans_le; nth_rw 1 [β one_mul (4 * _)]; gcongr; exact one_le_two _ β€ defaultA a ^ 5 * dist_(p') (π¬ u) (Q x) := by rw [pow_succ', mul_assoc]; gcongr convert! cdist_le_iterate _ (π¬ u) (Q x) 4 using 1 Β· exact dist_congr rfl (by ring) Β· unfold defaultD; positivity _ < _ := by rw [mul_comm]; gcongr have d1 : dist_{x, D ^ (sβ - 1)} (π¬ u) (Q x) < 1 := by calc _ β€ dist_{x, D ^ sβ} (π¬ u) (Q x) * 2 ^ (-π * a : β€) := by rw [neg_mul, zpow_neg, le_mul_inv_iffβ (by positivity), mul_comm] convert! le_cdist_iterate _ (π¬ u) (Q x) (π * a) using 1 Β· apply dist_congr rfl rw [Nat.cast_pow, β pow_mul, show a * (π * a) = π * a ^ 2 by ring, β Nat.cast_pow] change _ = (D : β) * _ rw [β zpow_one_addβ (realD_pos _).ne', add_sub_cancel] Β· unfold defaultD; positivity _ < 5 * defaultA a ^ 5 * 2 ^ (-π * a : β€) := by gcongr _ = 5 * (2 : β) ^ (-(π - 5) * a : β€) := by rw [Nat.cast_pow, β pow_mul, β zpow_natCast, show (2 : β) = (2 : β) by rfl, mul_assoc, β zpow_addβ two_ne_zero] congr simp ring _ β€ 5 * 2 ^ (-3 : β€) := by gcongr Β· exact one_le_two Β· simp only [neg_sub, sub_mul, Int.reduceNeg, tsub_le_iff_right, le_neg_add_iff_add_le] norm_cast calc 3 + 5 * a _ β€ a + 5 * a := by gcongr; linarith [four_le_a X] _ = 6 * a := by ring _ β€ π * a := by gcongr; linarith [seven_le_c] _ < _ := by norm_num have x'p : x' β π p := (Grid.le_def.mp Lle).1 hx' refine le_iSupβ_of_le (π p) x'p <| le_iSupβ_of_le x xp <| le_iSupβ_of_le (π° p') β¨s_ineq, scale_mem_Icc.2β© <| le_iSup_of_le ?_ ?_ Β· apply le_upperRadius; convert! d1 Β· convert le_rfl; change (Icc (π° p) _).toFinset = _; rw [sp, sp'] apply subset_antisymm Β· rw [β Finset.toFinset_coe (t.Ο u x), toFinset_subset_toFinset] exact (convex_scales hu).out (Finset.min'_mem ..) (Finset.max'_mem ..) Β· intro z mz; rw [toFinset_Icc, Finset.mem_Icc] exact β¨Finset.min'_le _ _ mz, Finset.le_max' _ _ mzβ©