Skip to main content
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

Canonical 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⟩