Skip to main content
fpvandoorn/carleson
Source indexedlemma ยท leanprover/lean4:v4.32.0

iUnion_L0'

Carleson.Discrete.ForestComplement ยท Carleson/Discrete/ForestComplement.lean:445 to 517

Source documentation

Main part of Lemma 5.5.2.

Exact Lean statement

lemma iUnion_L0' : โ‹ƒ (l < n), ๐”โ‚€' (X := X) k n l = ๐”โ‚€ k n

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma iUnion_L0' : โ‹ƒ (l < n), ๐”โ‚€' (X := X) k n l = ๐”โ‚€ k n := by  classical  refine iUnion_lt_minLayer_iff_bounded_series.mpr fun p โ†ฆ ?_  suffices ยฌโˆƒ s : LTSeries (๐”โ‚€ (X := X) k n), s.length = n by    rcases lt_or_ge p.length n with c | c    ยท exact c    ยท exact absurd โŸจp.take โŸจn, by liaโŸฉ, by rw [RelSeries.take_length]โŸฉ this  by_contra h; obtain โŸจs, hsโŸฉ := h; let sl := s.last; have dsl := sl.2.1.2.1  simp_rw [dens', lt_iSup_iff, mem_singleton_iff, exists_prop, exists_eq_left] at dsl  obtain โŸจl, hl, p', mp', sp', qp'โŸฉ := dsl  obtain โŸจb, mb, qbโŸฉ := exists_๐”’_with_le_quotient hl qp'  have ๐“˜p'b : ๐“˜ p' = ๐“˜ b := by rw [๐”’, Finset.mem_filter] at mb; exact mb.2.1.symm  replace qb := ENNReal.mul_lt_of_lt_div qb  have mba : b โˆˆ (aux๐” k n).toFinset := by    simp_rw [mem_toFinset, aux๐”, mem_setOf, qb, and_true]; rw [TilesAt, mem_preimage] at mp' โŠข    exact ๐“˜p'b โ–ธ mp'  obtain โŸจm, lm, maxmโŸฉ := (aux๐” k n).toFinset.exists_le_maximal mba  replace maxm : m โˆˆ ๐” k n := by simpa only [mem_toFinset] using! maxm  -- We will now show a contradiction. As a member of `๐”โ‚€ k n` the _first_ element `sโ‚€` of the  -- `LTSeries s` satisfies `๐”… k n sโ‚€ = โˆ…`. But we will show that `m โˆˆ ๐”… k n sโ‚€`,  -- i.e. `smul 100 sโ‚€ โ‰ค smul 1 m`.  let sโ‚€ := s.head; apply absurd sโ‚€.2.2; rw [โ† ne_eq, โ† nonempty_iff_ne_empty]; use m, maxm  constructor  ยท have l1 : ๐“˜ sโ‚€.1 โ‰ค ๐“˜ sl.1 := s.head_le_last.1    have l2 : ๐“˜ sl.1 โ‰ค ๐“˜ b := ๐“˜p'b โ–ธ sp'.1    exact (l1.trans l2).trans lm.1  change ball_(m) (๐’ฌ m) 1 โІ ball_(sโ‚€.1) (๐’ฌ sโ‚€.1) 100; intro (ฮธ : ฮ˜ X) mฮธ; rw [mem_ball] at mฮธ  have aux : dist_(sl.1) (๐’ฌ sl.1) ฮธ < 2 * l + 3 :=    calc      _ โ‰ค dist_(sl.1) (๐’ฌ sl.1) (๐’ฌ p') + dist_(sl.1) (๐’ฌ p') ฮธ := dist_triangle ..      _ < l + dist_(sl.1) (๐’ฌ p') ฮธ := by        apply add_lt_add_left        have : ๐’ฌ p' โˆˆ ball_(p') (๐’ฌ p') l := by convert! mem_ball_self (zero_lt_two.trans_le hl)        exact mem_ball'.mp (sp'.2 this)      _ โ‰ค l + dist_(p') (๐’ฌ p') ฮธ := add_le_add_right (Grid.dist_mono sp'.1) _      _ โ‰ค l + dist_(p') (๐’ฌ p') (๐’ฌ b) + dist_(p') (๐’ฌ b) ฮธ := by        rw [add_assoc]; apply add_le_add_right; exact dist_triangle ..      _ โ‰ค l + (l + 1) + dist_(b) (๐’ฌ b) ฮธ := by        gcongr        ยท rw [๐”’, Finset.mem_filter] at mb          obtain โŸจ(x : ฮ˜ X), xโ‚, xโ‚‚โŸฉ := not_disjoint_iff.mp mb.2.2          calc            _ โ‰ค dist_(p') x (๐’ฌ p') + dist_(p') x (๐’ฌ b) := dist_triangle_left ..            _ โ‰ค _ := by              apply add_le_add xโ‚.le              change dist_{๐“˜ p'} x (๐’ฌ b) โ‰ค 1; rw [๐“˜p'b]              exact (_root_.subset_cball xโ‚‚).le        ยท change dist_{๐“˜ p'} (๐’ฌ b) ฮธ โ‰ค dist_{๐“˜ b} (๐’ฌ b) ฮธ; rw [๐“˜p'b]      _ โ‰ค l + (l + 1) + (dist_(b) (๐’ฌ m) (๐’ฌ b) + dist_(b) (๐’ฌ m) ฮธ) :=        add_le_add_right (dist_triangle_left ..) _      _ โ‰ค l + (l + 1) + (1 + dist_(m) (๐’ฌ m) ฮธ) := by        gcongr        ยท exact (dist_๐’ฌ_lt_one_of_le lm).le        ยท exact Grid.dist_mono lm.1      _ < l + (l + 1) + (1 + 1) := by gcongr; exact mem_ball'.mp mฮธ      _ = _ := by ring  calc    _ โ‰ค dist_(sโ‚€.1) (๐’ฌ sl.1) ฮธ + dist_(sโ‚€.1) (๐’ฌ sl.1) (๐’ฌ sโ‚€.1) := dist_triangle_left ..    _ < 1 + dist_(sโ‚€.1) (๐’ฌ sl.1) ฮธ := by      rw [add_comm]; exact add_lt_add_left (dist_๐’ฌ_lt_one_of_le s.head_le_last) _    _ โ‰ค 1 + C2_1_2 a ^ n * dist_(sl.1) (๐’ฌ sl.1) ฮธ := add_le_add_right (dist_LTSeries hs) _    _ < 1 + C2_1_2 a ^ n * (2 * l + 3) := by gcongr; rw [C2_1_2]; positivity    _ โ‰ค 1 + (1 / 256) ^ n * (2 * 2 ^ n + 3) := by      gcongr      ยท rw [C2_1_2]; positivity      ยท exact C2_1_2_le_inv_256 X      ยท exact_mod_cast (l_upper_bound hl qp').le    _ = 1 + 2 * (2 / 256) ^ n + (1 / 256) ^ n * 3 := by      simp [div_pow]; ring    _ โ‰ค 1 + 2 * (2 / 256) ^ 0 + (1 / 256) ^ 0 * 3 := by      gcongr 1 + 2 * ?_ + ?_ * 3 <;>        exact pow_le_pow_of_le_one (by norm_num) (by norm_num) (by lia)    _ < _ := by norm_num