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
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