fpvandoorn/carleson
Source indexedlemma Β· leanprover/lean4:v4.32.0
forest_separation
Carleson.Discrete.ForestUnion Β· Carleson/Discrete/ForestUnion.lean:374 to 430
Source documentation
Lemma 5.4.6, verifying (2.0.36)
Note: swapped u and u' to match (2.0.36)
Exact Lean statement
lemma forest_separation (hu : u β πβ k n j) (hu' : u' β πβ k n j) (huu' : u β u')
(hp : p β πβ k n j u') (h : π p β€ π u) : 2 ^ (Z * (n + 1)) < dist_(p) (π¬ p) (π¬ u)Complete declaration
Lean source
Full Lean sourceLean 4
lemma forest_separation (hu : u β πβ k n j) (hu' : u' β πβ k n j) (huu' : u β u') (hp : p β πβ k n j u') (h : π p β€ π u) : 2 ^ (Z * (n + 1)) < dist_(p) (π¬ p) (π¬ u) := by simp_rw [πβ, mem_inter_iff, mem_iUnionβ, mem_iUnion] at hp obtain β¨mpβ, v, mv, rv, β¨-, np, slβ©β© := hp obtain β¨p', mp', lp', sp'β© := exists_scale_add_le_of_mem_layersAbove <| (ββ_subset_ββ
|>.trans ββ
_subset_ββ |>.trans ββ_subset_ββ |>.trans ββ_subset_ββ) mpβ have np'u : Β¬URel k n j v u := by by_contra h; apply absurd (Eq.symm _) huu' replace h := equivalenceOn_urel.trans (πβ_subset_πβ hu') mv (πβ_subset_πβ hu) rv h exact EquivalenceOn.reprs_inj hu' hu h have vnu : v β u := by by_contra h; subst h; exact absurd URel.rfl np'u simp_rw [URel, vnu, false_or, not_exists, not_and] at np'u have mpt : p' β πβ k n j v := by refine β¨minLayer_subset mp', ?_, ?_β© Β· exact (lp'.1.trans_lt (lt_of_le_of_ne sl.1 np)).ne Β· exact (wiggle_order_11_10 lp' (C5_3_3_le (X := X).trans (by norm_num))).trans sl specialize np'u p' mpt have πp'u : π p' β€ π u := lp'.1.trans h simp_rw [TileLike.le_def, smul_fst, πp'u, true_and] at np'u obtain β¨(q : Ξ X), mq, nqβ© := Set.not_subset.mp np'u change dist_(u) q (π¬ u) < 1 at mq; change Β¬ dist_(p') q (π¬ p') < 10 at nq; rw [not_lt] at nq have d8 : 8 < dist_(p') (π¬ p) (π¬ u) := calc _ = 10 - 1 - 1 := by norm_num _ < 10 - 1 - dist_(u) q (π¬ u) := by gcongr _ β€ 10 - 1 - dist_(p') q (π¬ u) := tsub_le_tsub_left (Grid.dist_mono πp'u) _ _ β€ dist_(p') q (π¬ p') - 1 - dist_(p') q (π¬ u) := by gcongr _ < dist_(p') q (π¬ p') - dist_(p') (π¬ p) (π¬ p') - dist_(p') q (π¬ u) := by gcongr; rw [β @mem_ball]; exact subset_cball (lp'.2 π¬_mem_Ξ©) _ β€ _ := by rw [sub_le_iff_le_add', sub_le_iff_le_add] nth_rw 3 [dist_comm]; apply dist_triangle4 have Znpos : 0 < Z * (n + 1) := by rw [defaultZ]; positivity let d : β := (π° p - π° p').toNat have sd : π° p' + d = π° p := by simp_rw [d]; rw [Int.toNat_sub_of_le] <;> lia have d1 : dist_(p') (π¬ p) (π¬ u) β€ C2_1_2 a ^ d * dist_(p) (π¬ p) (π¬ u) := Grid.dist_strictMono_iterate lp'.1 sd have Cdpos : 0 < C2_1_2 a ^ d := by rw [C2_1_2]; positivity have Cidpos : 0 < (C2_1_2 a)β»ΒΉ ^ d := by rw [C2_1_2]; positivity calc _ β€ (C2_1_2 a)β»ΒΉ ^ (Z * (n + 1)) := by refine pow_le_pow_leftβ zero_le_two ?_ _ nth_rw 1 [C2_1_2, β Real.inv_rpow zero_le_two, β Real.rpow_neg_one, β Real.rpow_mul zero_le_two, neg_one_mul, β Real.rpow_one 2] apply Real.rpow_le_rpow_of_exponent_le one_le_two simp only [add_mul, neg_mul, neg_add_rev, neg_neg, le_neg_add_iff_add_le] norm_cast have : 7 * a β€ π * a := by gcongr; exact seven_le_c linarith [four_le_a X] _ β€ (C2_1_2 a)β»ΒΉ ^ d := by refine pow_le_pow_rightβ ?_ (by lia) simp_rw [one_le_inv_iffβ, C2_1_2_le_one (X := X), and_true, C2_1_2]; positivity _ β€ (C2_1_2 a)β»ΒΉ ^ d * 8 := by nth_rw 1 [β mul_one (_ ^ d)]; gcongr; norm_num _ < (C2_1_2 a)β»ΒΉ ^ d * dist_(p') (π¬ p) (π¬ u) := by gcongr _ β€ _ := by rwa [β mul_le_mul_iff_of_pos_left Cdpos, inv_pow, β mul_assoc, mul_inv_cancelβ Cdpos.ne', one_mul]