@@ -4,7 +4,6 @@ Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Sébastien Gouëzel
55-/
66module
7-
87public import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
98public import Mathlib.MeasureTheory.Covering.VitaliFamily
109public import Mathlib.Data.Set.Pairwise.Lattice
@@ -187,6 +186,43 @@ theorem exists_disjoint_subfamily_covering_enlargement_closedBall
187186 rcases A b ⟨rb.1 , rb.2 ⟩ with ⟨c, cu, _⟩
188187 exact ⟨c, cu, by simp only [closedBall_eq_empty.2 h'a, empty_subset]⟩
189188
189+ /- Note: it seems easier to do the analogous proof again than to apply the previous one, because the
190+ interior of a closed ball may not equal the open ball. -/
191+
192+ /-- Vitali covering theorem, open balls version: given a family `t` of balls, one can
193+ extract a disjoint subfamily `u ⊆ t` so that all balls in `t` are covered by the τ-times
194+ dilations of balls in `u`, for some `τ > 3`. -/
195+ theorem exists_disjoint_subfamily_covering_enlargement_ball
196+ [PseudoMetricSpace α] (t : Set ι)
197+ (x : ι → α) (r : ι → ℝ) (R : ℝ) (hr : ∀ a ∈ t, r a ≤ R) (τ : ℝ) (hτ : 3 < τ) :
198+ ∃ u ⊆ t,
199+ (u.PairwiseDisjoint fun a => ball (x a) (r a)) ∧
200+ ∀ a ∈ t, ∃ b ∈ u, ball (x a) (r a) ⊆ ball (x b) (τ * r b) := by
201+ rcases eq_empty_or_nonempty t with (rfl | _)
202+ · exact ⟨∅, Subset.refl _, pairwiseDisjoint_empty, by simp⟩
203+ by_cases! ht : ∀ a ∈ t, r a ≤ 0
204+ · exact ⟨t, Subset.rfl, fun a ha b _ _ => by
205+ simp only [ball_eq_empty.2 (ht a ha), empty_disjoint, Function.onFun],
206+ fun a ha => ⟨a, ha, by simp only [ball_eq_empty.2 (ht a ha), empty_subset]⟩⟩
207+ let t' := { a ∈ t | 0 < r a }
208+ rcases exists_disjoint_subfamily_covering_enlargement (fun a => ball (x a) (r a)) t' r
209+ ((τ - 1 ) / 2 ) (by linarith) (fun a ha => ha.2 .le) R (fun a ha => hr a ha.1 ) fun a ha =>
210+ ⟨x a, mem_ball_self ha.2 ⟩ with
211+ ⟨u, ut', u_disj, hu⟩
212+ have A : ∀ a ∈ t', ∃ b ∈ u, ball (x a) (r a) ⊆ ball (x b) (τ * r b) := by
213+ intro a ha
214+ rcases hu a ha with ⟨b, bu, hb, rb⟩
215+ refine ⟨b, bu, ?_⟩
216+ have : dist (x a) (x b) < r a + r b := dist_lt_add_of_nonempty_ball_inter_ball hb
217+ apply ball_subset_ball'
218+ linarith
219+ refine ⟨u, ut'.trans fun a ha => ha.1 , u_disj, fun a ha => ?_⟩
220+ rcases lt_or_ge 0 (r a) with (h'a | h'a)
221+ · exact A a ⟨ha, h'a⟩
222+ · rcases ht with ⟨b, rb⟩
223+ rcases A b ⟨rb.1 , rb.2 ⟩ with ⟨c, cu, _⟩
224+ exact ⟨c, cu, by simp only [ball_eq_empty.2 h'a, empty_subset]⟩
225+
190226/-- The measurable **Vitali covering theorem** .
191227
192228Assume one is given a family `t` of closed sets with nonempty interior, such that each `a ∈ t` is
0 commit comments