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

exists_maximal_disjoint_covering_subfamily

Carleson.TileStructure ยท Carleson/TileStructure.lean:492 to 529

Source documentation

Given any family of tiles, one can extract a maximal disjoint subfamily, covering everything.

Exact Lean statement

lemma exists_maximal_disjoint_covering_subfamily (A : Set (๐”“ X)) :
    โˆƒ (B : Set (๐”“ X)), B.PairwiseDisjoint (fun p โ†ฆ (๐“˜ p : Set X)) โˆง
      B โІ A โˆง (โˆ€ a โˆˆ A, โˆƒ b โˆˆ B, (๐“˜ a : Set X) โІ ๐“˜ b)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma exists_maximal_disjoint_covering_subfamily (A : Set (๐”“ X)) :    โˆƒ (B : Set (๐”“ X)), B.PairwiseDisjoint (fun p โ†ฆ (๐“˜ p : Set X)) โˆง      B โІ A โˆง (โˆ€ a โˆˆ A, โˆƒ b โˆˆ B, (๐“˜ a : Set X) โІ ๐“˜ b) := by  -- consider the pairwise disjoint families in `A` such that any element of `A` is disjoint from  -- every member of the family, or contained in one of them.  let M : Set (Set (๐”“ X)) := {B | B.PairwiseDisjoint (fun p โ†ฆ (๐“˜ p : Set X)) โˆง B โІ A โˆง โˆ€ a โˆˆ A,    (โˆƒ b โˆˆ B, (๐“˜ a : Set X) โІ ๐“˜ b) โˆจ (โˆ€ b โˆˆ B, Disjoint (๐“˜ a : Set X) (๐“˜ b))}  -- let `B` be a maximal such family. It satisfies the properties of the lemma.  obtain โŸจB, BM, hBโŸฉ : โˆƒ B, MaximalFor (ยท โˆˆ M) id B :=    M.toFinite.exists_maximalFor id _ โŸจโˆ…, by simp [M]โŸฉ  refine โŸจB, BM.1, BM.2.1, fun a ha โ†ฆ ?_โŸฉ  rcases BM.2.2 a ha with h'a | h'a  ยท exact h'a  exfalso  let F := {a' โˆˆ A | (๐“˜ a : Set X) โІ ๐“˜ a' โˆง โˆ€ b โˆˆ B, Disjoint (๐“˜ a' : Set X) (๐“˜ b)}  obtain โŸจa', a'F, ha'โŸฉ : โˆƒ a' โˆˆ F, โˆ€ p โˆˆ F, (๐“˜ a' : Set X) โІ ๐“˜ p โ†’ (๐“˜ a' : Set X) = ๐“˜ p := by    obtain โŸจaโ‚€, aโ‚€F, haโ‚€โŸฉ :=      F.toFinite.exists_maximalFor (fun p โ†ฆ (๐“˜ p : Set X)) _ โŸจa, โŸจha, subset_rfl, h'aโŸฉโŸฉ    exact โŸจaโ‚€, aโ‚€F, fun p mp lp โ†ฆ subset_antisymm lp (haโ‚€ mp lp)โŸฉ  have : insert a' B โˆˆ M := by    refine โŸจ?_, ?_, fun p hp โ†ฆ ?_โŸฉ    ยท apply PairwiseDisjoint.insert BM.1 (fun b hb h'b โ†ฆ a'F.2.2 b hb)    ยท apply insert_subset a'F.1 BM.2.1    rcases BM.2.2 p hp with โŸจb, hbโŸฉ | h'p    ยท exact Or.inl โŸจb, mem_insert_of_mem _ hb.1, hb.2โŸฉ    by_cases Hp : Disjoint (๐“˜ p : Set X) (๐“˜ a')    ยท right      simpa [Hp] using h'p    refine Or.inl โŸจa', mem_insert a' B, ?_โŸฉ    rcases le_or_ge_or_disjoint (i := ๐“˜ p) (j := ๐“˜ a') with hij | hij |hij    ยท exact (Grid.le_def.1 hij).1    ยท have : p โˆˆ F := โŸจhp, a'F.2.1.trans (Grid.le_def.1 hij).1, h'pโŸฉ      rw [ha' p this (Grid.le_def.1 hij).1]    ยท exact (Hp hij).elim  have : B = insert a' B := le_antisymm (subset_insert a' B) (hB this (subset_insert a' B))  have : a' โˆˆ B := by rw [this]; exact mem_insert a' B  have : Disjoint (๐“˜ a' : Set X) (๐“˜ a' : Set X) := a'F.2.2 _ this  exact disjoint_left.1 this Grid.c_mem_Grid Grid.c_mem_Grid