fpvandoorn/carleson
Source indexedlemma Β· leanprover/lean4:v4.32.0
exists_j_of_mem_πpos_β
Carleson.Discrete.ForestComplement Β· Carleson/Discrete/ForestComplement.lean:147 to 178
Mathematical statement
Exact Lean statement
lemma exists_j_of_mem_πpos_β (h : p β πpos (X := X)) (mp : p β β k n) (hkn : k β€ n) :
p β πβ k n β¨ β j β€ 2 * n + 3, p β ββ k n jComplete declaration
Lean source
Full Lean sourceLean 4
lemma exists_j_of_mem_πpos_β (h : p β πpos (X := X)) (mp : p β β k n) (hkn : k β€ n) : p β πβ k n β¨ β j β€ 2 * n + 3, p β ββ k n j := by classical rw [πpos, mem_setOf, inter_comm _ G'αΆ, β inter_assoc] at h replace h : 0 < volume (G'αΆ β© (π p : Set X)) := h.trans_le (measure_mono inter_subset_left) rw [inter_comm, G', compl_union, compl_union, inter_comm GβαΆ, β inter_assoc, β inter_assoc] at h replace h : 0 < volume ((π p : Set X) β© GβαΆ) := h.trans_le (measure_mono (inter_subset_left.trans inter_subset_left)) obtain β¨x, mx, nxβ© := nonempty_of_measure_ne_zero h.ne' simp_rw [Gβ, mem_compl_iff, mem_iUnion] at nx; push Not at nx; specialize nx n k hkn let B : β := Finset.card { q | q β π
k n p } have Blt : B < 2 ^ (2 * n + 4) := by calc _ β€ Finset.card { m | m β π k n β§ x β π m } := by apply Finset.card_le_card (Finset.monotone_filter_right _ ?_) refine fun a _ha ha' β¦ β¨mem_of_mem_inter_left ha', ?_β© obtain β¨mβ, mββ© := ha' exact mβ.1.1 mx _ = stackSize (π k n) x := by simp_rw [stackSize, indicator_apply, Pi.one_apply, Finset.sum_boole, Nat.cast_id, Finset.filter_filter]; rfl _ β€ (2 * n + 6) * 2 ^ (n + 1) := by rwa [setA, mem_setOf, not_lt] at nx _ < _ := by rw [show 2 * n + 4 = (n + 3) + (n + 1) by lia, pow_add _ (n + 3)] exact mul_lt_mul_of_pos_right two_mul_n_add_six_lt (by positivity) rcases B.eq_zero_or_pos with Bz | Bpos Β· simp_rw [B, filter_mem_univ_eq_toFinset, Finset.card_eq_zero, toFinset_eq_empty] at Bz exact Or.inl β¨mp, Bzβ© Β· right; use Nat.log 2 B; rw [β Nat.log_lt_iff_lt_pow one_lt_two Bpos.ne'] at Blt refine β¨by lia, (?_ : _ β§ _ β€ B), (?_ : Β¬(_ β§ _ β€ B))β© Β· exact β¨mp, Nat.pow_log_le_self 2 Bpos.ne'β© Β· rw [not_and, not_le]; exact fun _ β¦ Nat.lt_pow_succ_log_self one_lt_two _