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

forest_stacking

Carleson.Discrete.ForestUnion Β· Carleson/Discrete/ForestUnion.lean:538 to 576

Source documentation

Lemma 5.4.8, used to verify that π”˜β‚„ satisfies 2.0.34.

Exact Lean statement

lemma forest_stacking (x : X) (hkn : k ≀ n) : stackSize (π”˜β‚ƒ (X := X) k n j) x ≀ C5_4_8 n

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma forest_stacking (x : X) (hkn : k ≀ n) : stackSize (π”˜β‚ƒ (X := X) k n j) x ≀ C5_4_8 n := by  classical  by_contra! h  let C : Finset (𝔓 X) := { u | u ∈ π”˜β‚ƒ (X := X) k n j ∧ x ∈ π“˜ u }  have Cc : C.card = stackSize (π”˜β‚ƒ k n j) x := by    simp_rw [stackSize, indicator_apply, Pi.one_apply, Finset.sum_boole, Nat.cast_id,      C, Grid.mem_def, Finset.filter_filter]  have Cn : C.Nonempty := by    by_contra! Ce    simp_rw [← Cc, Ce, Finset.card_empty, not_lt_zero] at h  let C' : Finset (Grid X) := C.image π“˜  have C'n : C'.Nonempty := by rwa [Finset.image_nonempty]  obtain ⟨i, mi, li⟩ := C'.exists_minimal C'n  simp_rw [C', Finset.mem_image, C, Finset.mem_filter_univ] at mi  obtain ⟨u, ⟨mu, mx⟩, uei⟩ := mi; subst uei  have uA : (π“˜ u : Set X) βŠ† setA (2 * n + 6) k n := fun y my ↦    calc      _ = (4 * n + 12) * 2 ^ n := by ring      _ < stackSize (π”˜β‚ƒ k n j) x := h      _ ≀ stackSize (π”˜β‚ƒ k n j) y := by        simp_rw [stackSize, indicator_apply, Pi.one_apply, Finset.sum_boole, Nat.cast_id]        apply Finset.card_le_card fun v mv ↦ ?_        simp_rw [Finset.filter_filter, Finset.mem_filter_univ] at mv ⊒        have mvC' : π“˜ v ∈ C' := by          simp_rw [C', Finset.mem_image]; use v          simp_rw [C, Finset.mem_filter_univ, and_true]; exact mv        specialize li mvC'        have inc := (or_assoc.mpr (le_or_ge_or_disjoint (i := π“˜ u) (j := π“˜ v))).resolve_right          (not_disjoint_iff.mpr ⟨_, mx, mv.2⟩)        replace inc : π“˜ u ≀ π“˜ v := by tauto        exact ⟨mv.1, inc.1 my⟩      _ ≀ _ := stackSize_π”˜β‚ƒ_le_𝔐 _  refine absurd (disjoint_left.mpr fun v mv ↦ ?_) (π”˜β‚ƒ_subset_π”˜β‚‚ mu).2  rw [𝔗₁, mem_setOf] at mv; rw [ℭ₆, mem_setOf, not_and, not_not]  refine fun _ ↦ (mv.2.2.1).1.trans ?_  calc    _ βŠ† setA (2 * n + 6) k n := uA    _ βŠ† Gβ‚‚ := subset_iUnionβ‚‚_of_subset n k (subset_iUnion_of_subset hkn subset_rfl)    _ βŠ† _ := subset_union_of_subset_left subset_union_right G₃