Skip to main content
fpvandoorn/carleson
Source indexedlemma Β· leanprover/lean4:v4.32.0

forest_inner

Carleson.Discrete.ForestUnion Β· Carleson/Discrete/ForestUnion.lean:433 to 482

Source documentation

Lemma 5.4.7, verifying (2.0.37)

Exact Lean statement

lemma forest_inner (hu : u ∈ π”˜β‚ƒ k n j) (hp : p ∈ 𝔗₂ k n j u) :
    ball (𝔠 p) (8 * D ^ 𝔰 p) βŠ† π“˜ u

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma forest_inner (hu : u ∈ π”˜β‚ƒ k n j) (hp : p ∈ 𝔗₂ k n j u) :    ball (𝔠 p) (8 * D ^ 𝔰 p) βŠ† π“˜ u := by  have pβ‚„ := (𝔗₂_subset_ℭ₆.trans ℭ₆_subset_β„­β‚… |>.trans β„­β‚…_subset_β„­β‚„) hp  have p₁ := (β„­β‚„_subset_ℭ₃.trans ℭ₃_subset_β„­β‚‚ |>.trans β„­β‚‚_subset_ℭ₁) pβ‚„  obtain ⟨q, mq, lq, sq⟩ := exists_le_add_scale_of_mem_layersBelow pβ‚„  obtain ⟨-, u'', mu'', nu'', sl⟩ := ℭ₃_def.mp (maxLayer_subset mq)  replace nu'' : π“˜ q < π“˜ u'' := lt_of_le_of_ne sl.1 nu''  have s2 : smul 2 p ≀ smul 2 q := wiggle_order_11_10 lq (C5_3_3_le (X := X).trans (by norm_num))  have s2' : smul 2 p ≀ smul 1 u'' := s2.trans sl  have s10 : smul 10 p ≀ smul 1 u'' := smul_mono s2' le_rfl (by norm_num)  simp_rw [𝔗₂, mem_inter_iff, mem_iUnionβ‚‚, mem_iUnion] at hp  obtain ⟨p₆, u', mu', ru', pu'⟩ := hp  have ur : URel k n j u' u'' := Or.inr ⟨p, pu', s10⟩  have hu'' : u'' ∈ π”˜β‚‚ k n j := by    rw [π”˜β‚‚, mem_setOf, not_disjoint_iff]    exact ⟨mu'', ⟨p, ⟨p₁, (lq.1.trans_lt nu'').ne, s2'⟩, pβ‚†βŸ©βŸ©  have ru'' : URel k n j u u'' := equivalenceOn_urel.trans (π”˜β‚ƒ_subset_π”˜β‚‚ hu) mu' hu'' ru' ur  have qlu : π“˜ q < π“˜ u := URel.eq (π”˜β‚ƒ_subset_π”˜β‚‚ hu) hu'' ru'' β–Έ nu''  have squ : 𝔰 q < 𝔰 u := (Grid.lt_def.mp qlu).2  have spu : 𝔰 p ≀ 𝔰 u - (Z * (n + 1) : β„•) - 1 := by lia  have ⟨I, sI, plI, Ilu⟩ : βˆƒ I, s I = 𝔰 u - (Z * (n + 1) : β„•) - 1 ∧ π“˜ p ≀ I ∧ I ≀ π“˜ u := by    apply Grid.exists_sandwiched (lq.1.trans qlu.le) (𝔰 u - (Z * (n + 1) : β„•) - 1)    refine ⟨spu, ?_⟩    change _ ≀ 𝔰 u    lia  have bI : I βˆ‰ 𝓛 n u := by    have pβ‚… := ℭ₆_subset_β„­β‚… p₆    rw [β„­β‚…_def] at pβ‚…; replace pβ‚… := pβ‚….2; contrapose! pβ‚…    use u, (π”˜β‚ƒ_subset_π”˜β‚‚.trans π”˜β‚‚_subset_π”˜β‚) hu, plI.1.trans (subset_biUnion_of_mem pβ‚…)  rw [𝓛, mem_setOf, not_and] at bI; specialize bI Ilu  rw [not_and, not_not] at bI; specialize bI (by lia); rw [← sI] at spu  rcases spu.eq_or_lt with h | h  Β· have hI : π“˜ p = I := by      apply eq_of_le_of_not_lt plI; rw [Grid.lt_def, not_and_or, not_lt]; exact Or.inr h.symm.le    rwa [← hI] at bI  Β· apply subset_trans (ball_subset_ball' _) bI    have ds : c (π“˜ p) ∈ ball (c I) (4 * D ^ s I) := (plI.1.trans Grid_subset_ball) Grid.c_mem_Grid    rw [mem_ball] at ds    calc      _ ≀ 4 * D * (D : ℝ) ^ 𝔰 p + 4 * D ^ s I := by        gcongr        Β· linarith [four_le_realD X]        Β· exact ds.le      _ = 4 * D ^ (𝔰 p + 1) + 4 * D ^ s I := by        rw [mul_assoc]; congr; rw [mul_comm, ← zpow_add_oneβ‚€ (realD_pos _).ne']      _ ≀ 4 * D ^ s I + 4 * D ^ s I := by        gcongr        Β· exact one_le_realD a        Β· lia      _ = _ := by ring