fpvandoorn/carleson
Source indexedlemma · leanprover/lean4:v4.32.0
CoveredByBalls.trans
Carleson.ToMathlib.CoveredByBalls · Carleson/ToMathlib/CoveredByBalls.lean:65 to 83
Mathematical statement
Exact Lean statement
lemma CoveredByBalls.trans (h : CoveredByBalls s n r)
(h2 : BallsCoverBalls X r r' m) : CoveredByBalls s (n * m) r'Complete declaration
Lean source
Full Lean sourceLean 4
lemma CoveredByBalls.trans (h : CoveredByBalls s n r) (h2 : BallsCoverBalls X r r' m) : CoveredByBalls s (n * m) r' := by obtain ⟨b0, hb0, hs0⟩ := h rw [coveredByBalls_iff] have := fun x ↦ ((coveredByBalls_iff ..).mp (h2 x)) classical use b0.biUnion fun x ↦ (this x).choose refine ⟨?_, fun p hp ↦ ?_⟩ · calc _ ≤ ∑ x ∈ b0, (this x).choose.card := card_biUnion_le .. _ ≤ ∑ _ ∈ b0, m := sum_le_sum fun x _ ↦ (this x).choose_spec.1 _ ≤ _ := by rw [sum_const_nat fun x ↦ congrFun rfl] exact Nat.mul_le_mul_right m hb0 · obtain ⟨b, _, hb⟩ := Set.mem_iUnion₂.mp (hs0 hp) have tmp := ((this b).choose_spec.2) hb push _ ∈ _ at tmp ⊢ obtain ⟨c, _, hc⟩ := tmp use c, (by rw [mem_biUnion]; use b), hc