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

TileStructure.Forest.disjoint_of_ne_of_mem

Carleson.ForestOperator.Forests Β· Carleson/ForestOperator/Forests.lean:640 to 668

Mathematical statement

Exact Lean statement

lemma disjoint_of_ne_of_mem {i j : β„•} {u u' : 𝔓 X} (hne : u β‰  u') (hu : u ∈ t.rowDecomp i) (hu' : u' ∈ t.rowDecomp j)
  {p p' : 𝔓 X} (hp : p ∈ t u) (hp' : p' ∈ t u') : Disjoint (E p) (E p')

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma disjoint_of_ne_of_mem {i j : β„•} {u u' : 𝔓 X} (hne : u β‰  u') (hu : u ∈ t.rowDecomp i) (hu' : u' ∈ t.rowDecomp j)  {p p' : 𝔓 X} (hp : p ∈ t u) (hp' : p' ∈ t u') : Disjoint (E p) (E p') := by  classical  wlog hsle : 𝔰 p ≀ 𝔰 p'  Β· exact (this hne.symm hu' hu hp' hp (Int.le_of_not_le hsle)).symm  -- if x is in the inter, both `Disjoint (Ξ© p) (Ξ© p')` and `Q x ∈ Ξ© p ∩ Ξ© p'`  refine _root_.not_imp_self.mp (fun h => disjoint_impl ?_)  simp only [Set.disjoint_iff, subset_def, mem_inter_iff, mem_empty_iff_false, imp_false, not_and,    not_forall, Decidable.not_not] at h  obtain ⟨x,hxp, hxp'⟩ := h  rw [← rowDecomp_apply (j := j)] at hp'  have π“˜_p_le : π“˜ p ≀ π“˜ p' := by    exact ⟨(fundamental_dyadic hsle).resolve_right <|      Set.Nonempty.not_disjoint <|      Set.nonempty_of_mem ⟨E_subset_π“˜ hxp,E_subset_π“˜ hxp'⟩, hsle⟩  have : 2 ^ (Z * (n + 1)) < dist_(p) (𝒬 p) (𝒬 u') := lt_dist t    (mem_forest_of_mem hu') (mem_forest_of_mem hu) hne.symm hp    <| le_trans π“˜_p_le (π“˜_le_π“˜ _ hu' hp')  have := calc 2 ^ (Z * (n + 1)) - 4    _ < dist_(p) (𝒬 p) (𝒬 u') - dist_(p) (𝒬 p') (𝒬 u') :=      sub_lt_sub this <| lt_of_le_of_lt (Grid.dist_mono π“˜_p_le) <| dist_lt_four _ hu' hp'    _ ≀ dist_(p) (𝒬 p) (𝒬 p') := by      exact le_trans (le_abs_self _) <|        abs_dist_sub_le (Ξ± := WithFunctionDistance (𝔠 p) (↑D ^ 𝔰 p / 4)) _ _ _  have : 𝒬 p' βˆ‰ ball_(p) (𝒬 p) 1 := by    intro hmem    apply not_lt_of_ge (le_trans (calculation_7_7_4 (X := X)) this.le) (mem_ball'.mp hmem)  have : Β¬(Ξ© p' βŠ† Ξ© p) := (fun hx => this <| subset_cball <| hx 𝒬_mem_Ξ©)  exact (relative_fundamental_dyadic π“˜_p_le).resolve_right this