[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
⊢ ∃ u x, PairwiseDisjoint u B ∧ ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ δ a ≤ τ * δ b
[PROOFSTEP]
let T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      u.PairwiseDisjoint B ∧ ∀ a ∈ t, ∀ b ∈ u, (B a ∩ B b).Nonempty → ∃ c ∈ u, (B a ∩ B c).Nonempty ∧ δ a ≤ τ * δ c}
    -- By Zorn, choose a maximal family in the good set `T` of disjoint families.
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
⊢ ∃ u x, PairwiseDisjoint u B ∧ ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ δ a ≤ τ * δ b
[PROOFSTEP]
obtain ⟨u, uT, hu⟩ : ∃ u ∈ T, ∀ v ∈ T, u ⊆ v → v = u :=
  by
  refine' zorn_subset _ fun U UT hU => _
  refine' ⟨⋃₀ U, _, fun s hs => subset_sUnion_of_mem hs⟩
  simp only [Set.sUnion_subset_iff, and_imp, exists_prop, forall_exists_index, mem_sUnion, Set.mem_setOf_eq]
  refine'
    ⟨fun u hu => (UT hu).1, (pairwiseDisjoint_sUnion hU.directedOn).2 fun u hu => (UT hu).2.1,
      fun a hat b u uU hbu hab => _⟩
  obtain ⟨c, cu, ac, hc⟩ : ∃ c, c ∈ u ∧ (B a ∩ B c).Nonempty ∧ δ a ≤ τ * δ c := (UT uU).2.2 a hat b hbu hab
  exact
    ⟨c, ⟨u, uU, cu⟩, ac, hc⟩
      -- The only nontrivial bit is to check that every `a ∈ t` intersects an element `b ∈ u` with
        -- comparatively large `δ b`. Assume this is not the case, then we will contradict the maximality.
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
⊢ ∃ u, u ∈ T ∧ ∀ (v : Set ι), v ∈ T → u ⊆ v → v = u
[PROOFSTEP]
refine' zorn_subset _ fun U UT hU => _
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
U : Set (Set ι)
UT : U ⊆ T
hU : IsChain (fun x x_1 => x ⊆ x_1) U
⊢ ∃ ub, ub ∈ T ∧ ∀ (s : Set ι), s ∈ U → s ⊆ ub
[PROOFSTEP]
refine' ⟨⋃₀ U, _, fun s hs => subset_sUnion_of_mem hs⟩
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
U : Set (Set ι)
UT : U ⊆ T
hU : IsChain (fun x x_1 => x ⊆ x_1) U
⊢ ⋃₀ U ∈ T
[PROOFSTEP]
simp only [Set.sUnion_subset_iff, and_imp, exists_prop, forall_exists_index, mem_sUnion, Set.mem_setOf_eq]
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
U : Set (Set ι)
UT : U ⊆ T
hU : IsChain (fun x x_1 => x ⊆ x_1) U
⊢ (∀ (t' : Set ι), t' ∈ U → t' ⊆ t) ∧
    PairwiseDisjoint (⋃₀ U) B ∧
      ∀ (a : ι),
        a ∈ t →
          ∀ (b : ι) (x : Set ι),
            x ∈ U →
              b ∈ x → Set.Nonempty (B a ∩ B b) → ∃ c, (∃ t, t ∈ U ∧ c ∈ t) ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c
[PROOFSTEP]
refine'
  ⟨fun u hu => (UT hu).1, (pairwiseDisjoint_sUnion hU.directedOn).2 fun u hu => (UT hu).2.1, fun a hat b u uU hbu hab =>
    _⟩
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
U : Set (Set ι)
UT : U ⊆ T
hU : IsChain (fun x x_1 => x ⊆ x_1) U
a : ι
hat : a ∈ t
b : ι
u : Set ι
uU : u ∈ U
hbu : b ∈ u
hab : Set.Nonempty (B a ∩ B b)
⊢ ∃ c, (∃ t, t ∈ U ∧ c ∈ t) ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c
[PROOFSTEP]
obtain ⟨c, cu, ac, hc⟩ : ∃ c, c ∈ u ∧ (B a ∩ B c).Nonempty ∧ δ a ≤ τ * δ c := (UT uU).2.2 a hat b hbu hab
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
U : Set (Set ι)
UT : U ⊆ T
hU : IsChain (fun x x_1 => x ⊆ x_1) U
a : ι
hat : a ∈ t
b : ι
u : Set ι
uU : u ∈ U
hbu : b ∈ u
hab : Set.Nonempty (B a ∩ B b)
c : ι
cu : c ∈ u
ac : Set.Nonempty (B a ∩ B c)
hc : δ a ≤ τ * δ c
⊢ ∃ c, (∃ t, t ∈ U ∧ c ∈ t) ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c
[PROOFSTEP]
exact
  ⟨c, ⟨u, uU, cu⟩, ac, hc⟩
    -- The only nontrivial bit is to check that every `a ∈ t` intersects an element `b ∈ u` with
      -- comparatively large `δ b`. Assume this is not the case, then we will contradict the maximality.
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
hu : ∀ (v : Set ι), v ∈ T → u ⊆ v → v = u
⊢ ∃ u x, PairwiseDisjoint u B ∧ ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ δ a ≤ τ * δ b
[PROOFSTEP]
refine' ⟨u, uT.1, uT.2.1, fun a hat => _⟩
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
hu : ∀ (v : Set ι), v ∈ T → u ⊆ v → v = u
a : ι
hat : a ∈ t
⊢ ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ δ a ≤ τ * δ b
[PROOFSTEP]
contrapose! hu
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
have a_disj : ∀ c ∈ u, Disjoint (B a) (B c) := by
  intro c hc
  by_contra h
  rw [not_disjoint_iff_nonempty_inter] at h
  obtain ⟨d, du, ad, hd⟩ : ∃ d, d ∈ u ∧ (B a ∩ B d).Nonempty ∧ δ a ≤ τ * δ d := uT.2.2 a hat c hc h
  exact
    lt_irrefl _
      ((hu d du ad).trans_le hd)
        -- Let `A` be all the elements of `t` which do not intersect the family `u`. It is nonempty as it
          -- contains `a`. We will pick an element `a'` of `A` with `δ a'` almost as large as possible.
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
⊢ ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
[PROOFSTEP]
intro c hc
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
c : ι
hc : c ∈ u
⊢ Disjoint (B a) (B c)
[PROOFSTEP]
by_contra h
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
c : ι
hc : c ∈ u
h : ¬Disjoint (B a) (B c)
⊢ False
[PROOFSTEP]
rw [not_disjoint_iff_nonempty_inter] at h
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
c : ι
hc : c ∈ u
h : Set.Nonempty (B a ∩ B c)
⊢ False
[PROOFSTEP]
obtain ⟨d, du, ad, hd⟩ : ∃ d, d ∈ u ∧ (B a ∩ B d).Nonempty ∧ δ a ≤ τ * δ d := uT.2.2 a hat c hc h
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
c : ι
hc : c ∈ u
h : Set.Nonempty (B a ∩ B c)
d : ι
du : d ∈ u
ad : Set.Nonempty (B a ∩ B d)
hd : δ a ≤ τ * δ d
⊢ False
[PROOFSTEP]
exact
  lt_irrefl _
    ((hu d du ad).trans_le hd)
      -- Let `A` be all the elements of `t` which do not intersect the family `u`. It is nonempty as it
        -- contains `a`. We will pick an element `a'` of `A` with `δ a'` almost as large as possible.
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
let A := {a' | a' ∈ t ∧ ∀ c ∈ u, Disjoint (B a') (B c)}
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
have Anonempty : A.Nonempty := ⟨a, hat, a_disj⟩
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
let m := sSup (δ '' A)
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
have bddA : BddAbove (δ '' A) := by
  refine' ⟨R, fun x xA => _⟩
  rcases(mem_image _ _ _).1 xA with ⟨a', ha', rfl⟩
  exact δle a' ha'.1
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
⊢ BddAbove (δ '' A)
[PROOFSTEP]
refine' ⟨R, fun x xA => _⟩
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
x : ℝ
xA : x ∈ δ '' A
⊢ x ≤ R
[PROOFSTEP]
rcases(mem_image _ _ _).1 xA with ⟨a', ha', rfl⟩
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
a' : ι
ha' : a' ∈ A
xA : δ a' ∈ δ '' A
⊢ δ a' ≤ R
[PROOFSTEP]
exact δle a' ha'.1
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
obtain ⟨a', a'A, ha'⟩ : ∃ a' ∈ A, m / τ ≤ δ a' :=
  by
  have : 0 ≤ m := (δnonneg a hat).trans (le_csSup bddA (mem_image_of_mem _ ⟨hat, a_disj⟩))
  rcases eq_or_lt_of_le this with (mzero | mpos)
  · refine' ⟨a, ⟨hat, a_disj⟩, _⟩
    simpa only [← mzero, zero_div] using δnonneg a hat
  · have I : m / τ < m := by
      rw [div_lt_iff (zero_lt_one.trans hτ)]
      conv_lhs => rw [← mul_one m]
      exact (mul_lt_mul_left mpos).2 hτ
    rcases exists_lt_of_lt_csSup (nonempty_image_iff.2 Anonempty) I with ⟨x, xA, hx⟩
    rcases(mem_image _ _ _).1 xA with ⟨a', ha', rfl⟩
    exact ⟨a', ha', hx.le⟩
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
have : 0 ≤ m := (δnonneg a hat).trans (le_csSup bddA (mem_image_of_mem _ ⟨hat, a_disj⟩))
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
rcases eq_or_lt_of_le this with (mzero | mpos)
[GOAL]
case inl
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mzero : 0 = m
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
refine' ⟨a, ⟨hat, a_disj⟩, _⟩
[GOAL]
case inl
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mzero : 0 = m
⊢ m / τ ≤ δ a
[PROOFSTEP]
simpa only [← mzero, zero_div] using δnonneg a hat
[GOAL]
case inr
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
have I : m / τ < m := by
  rw [div_lt_iff (zero_lt_one.trans hτ)]
  conv_lhs => rw [← mul_one m]
  exact (mul_lt_mul_left mpos).2 hτ
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
⊢ m / τ < m
[PROOFSTEP]
rw [div_lt_iff (zero_lt_one.trans hτ)]
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
⊢ m < m * τ
[PROOFSTEP]
conv_lhs => rw [← mul_one m]
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
| m
[PROOFSTEP]
rw [← mul_one m]
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
| m
[PROOFSTEP]
rw [← mul_one m]
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
| m
[PROOFSTEP]
rw [← mul_one m]
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
⊢ m * 1 < m * τ
[PROOFSTEP]
exact (mul_lt_mul_left mpos).2 hτ
[GOAL]
case inr
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
I : m / τ < m
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
rcases exists_lt_of_lt_csSup (nonempty_image_iff.2 Anonempty) I with ⟨x, xA, hx⟩
[GOAL]
case inr.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
I : m / τ < m
x : ℝ
xA : x ∈ δ '' A
hx : m / τ < x
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
rcases(mem_image _ _ _).1 xA with ⟨a', ha', rfl⟩
[GOAL]
case inr.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
this : 0 ≤ m
mpos : 0 < m
I : m / τ < m
a' : ι
ha' : a' ∈ A
xA : δ a' ∈ δ '' A
hx : m / τ < δ a'
⊢ ∃ a', a' ∈ A ∧ m / τ ≤ δ a'
[PROOFSTEP]
exact ⟨a', ha', hx.le⟩
[GOAL]
case intro.intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
a : ι
hat : a ∈ t
hu : ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → τ * δ b < δ a
a_disj : ∀ (c : ι), c ∈ u → Disjoint (B a) (B c)
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
clear hat hu a_disj a
[GOAL]
case intro.intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
have a'_ne_u : a' ∉ u := fun H =>
  (hne _ a'A.1).ne_empty
    (disjoint_self.1 (a'A.2 _ H))
      -- we claim that `u ∪ {a'}` still belongs to `T`, contradicting the maximality of `u`.
[GOAL]
case intro.intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
⊢ ∃ v,
    v ∈
        {u |
          u ⊆ t ∧
            PairwiseDisjoint u B ∧
              ∀ (a : ι),
                a ∈ t →
                  ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c} ∧
      u ⊆ v ∧ v ≠ u
[PROOFSTEP]
refine' ⟨insert a' u, ⟨_, _, _⟩, subset_insert _ _, (ne_insert_of_not_mem _ a'_ne_u).symm⟩
[GOAL]
case intro.intro.intro.intro.refine'_1
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
⊢ insert a' u ⊆ t
[PROOFSTEP]
rw [insert_subset_iff]
[GOAL]
case intro.intro.intro.intro.refine'_1
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
⊢ a' ∈ t ∧ u ⊆ t
[PROOFSTEP]
exact ⟨a'A.1, uT.1⟩
[GOAL]
case intro.intro.intro.intro.refine'_2
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
⊢ PairwiseDisjoint (insert a' u) B
[PROOFSTEP]
exact uT.2.1.insert fun b bu _ => a'A.2 b bu
[GOAL]
case intro.intro.intro.intro.refine'_3
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
⊢ ∀ (a : ι),
    a ∈ t →
      ∀ (b : ι),
        b ∈ insert a' u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ insert a' u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c
[PROOFSTEP]
intro c ct b ba'u hcb
[GOAL]
case intro.intro.intro.intro.refine'_3
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
by_cases H : ∃ d ∈ u, (B c ∩ B d).Nonempty
[GOAL]
case pos
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
H : ∃ d, d ∈ u ∧ Set.Nonempty (B c ∩ B d)
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
rcases H with ⟨d, du, hd⟩
[GOAL]
case pos.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
d : ι
du : d ∈ u
hd : Set.Nonempty (B c ∩ B d)
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
rcases uT.2.2 c ct d du hd with ⟨d', d'u, hd'⟩
[GOAL]
case pos.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
d : ι
du : d ∈ u
hd : Set.Nonempty (B c ∩ B d)
d' : ι
d'u : d' ∈ u
hd' : Set.Nonempty (B c ∩ B d') ∧ δ c ≤ τ * δ d'
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
exact ⟨d', mem_insert_of_mem _ d'u, hd'⟩
[GOAL]
case neg
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
H : ¬∃ d, d ∈ u ∧ Set.Nonempty (B c ∩ B d)
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
push_neg at H
[GOAL]
case neg
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → ¬Set.Nonempty (B c ∩ B d)
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
simp only [← not_disjoint_iff_nonempty_inter, Classical.not_not] at H
[GOAL]
case neg
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
rcases mem_insert_iff.1 ba'u with (rfl | H')
[GOAL]
case neg.inl
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
c : ι
ct : c ∈ t
b : ι
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
a'A : b ∈ A
ha' : m / τ ≤ δ b
a'_ne_u : ¬b ∈ u
ba'u : b ∈ insert b u
⊢ ∃ c_1, c_1 ∈ insert b u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
refine' ⟨b, mem_insert _ _, hcb, _⟩
[GOAL]
case neg.inl
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
c : ι
ct : c ∈ t
b : ι
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
a'A : b ∈ A
ha' : m / τ ≤ δ b
a'_ne_u : ¬b ∈ u
ba'u : b ∈ insert b u
⊢ δ c ≤ τ * δ b
[PROOFSTEP]
calc
  δ c ≤ m := le_csSup bddA (mem_image_of_mem _ ⟨ct, H⟩)
  _ = τ * (m / τ) := by
    field_simp [(zero_lt_one.trans hτ).ne']
    ring
  _ ≤ τ * δ b := mul_le_mul_of_nonneg_left ha' (zero_le_one.trans hτ.le)
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
c : ι
ct : c ∈ t
b : ι
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
a'A : b ∈ A
ha' : m / τ ≤ δ b
a'_ne_u : ¬b ∈ u
ba'u : b ∈ insert b u
⊢ m = τ * (m / τ)
[PROOFSTEP]
field_simp [(zero_lt_one.trans hτ).ne']
[GOAL]
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
c : ι
ct : c ∈ t
b : ι
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
a'A : b ∈ A
ha' : m / τ ≤ δ b
a'_ne_u : ¬b ∈ u
ba'u : b ∈ insert b u
⊢ sSup (δ '' {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}) * τ =
    τ * sSup (δ '' {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)})
[PROOFSTEP]
ring
[GOAL]
case neg.inr
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : Set.Nonempty (B c ∩ B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
H' : b ∈ u
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
rw [← not_disjoint_iff_nonempty_inter] at hcb
[GOAL]
case neg.inr
α : Type u_1
ι : Type u_2
B : ι → Set α
t : Set ι
δ : ι → ℝ
τ : ℝ
hτ : 1 < τ
δnonneg : ∀ (a : ι), a ∈ t → 0 ≤ δ a
R : ℝ
δle : ∀ (a : ι), a ∈ t → δ a ≤ R
hne : ∀ (a : ι), a ∈ t → Set.Nonempty (B a)
T : Set (Set ι) :=
  {u |
    u ⊆ t ∧
      PairwiseDisjoint u B ∧
        ∀ (a : ι),
          a ∈ t → ∀ (b : ι), b ∈ u → Set.Nonempty (B a ∩ B b) → ∃ c, c ∈ u ∧ Set.Nonempty (B a ∩ B c) ∧ δ a ≤ τ * δ c}
u : Set ι
uT : u ∈ T
A : Set ι := {a' | a' ∈ t ∧ ∀ (c : ι), c ∈ u → Disjoint (B a') (B c)}
Anonempty : Set.Nonempty A
m : ℝ := sSup (δ '' A)
bddA : BddAbove (δ '' A)
a' : ι
a'A : a' ∈ A
ha' : m / τ ≤ δ a'
a'_ne_u : ¬a' ∈ u
c : ι
ct : c ∈ t
b : ι
ba'u : b ∈ insert a' u
hcb : ¬Disjoint (B c) (B b)
H : ∀ (d : ι), d ∈ u → Disjoint (B c) (B d)
H' : b ∈ u
⊢ ∃ c_1, c_1 ∈ insert a' u ∧ Set.Nonempty (B c ∩ B c_1) ∧ δ c ≤ τ * δ c_1
[PROOFSTEP]
exact (hcb (H _ H')).elim
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
rcases eq_empty_or_nonempty t with (rfl | _)
[GOAL]
case inl
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ ∅ → r a ≤ R
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ ∅ → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
exact ⟨∅, Subset.refl _, pairwiseDisjoint_empty, by simp⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ ∅ → r a ≤ R
⊢ ∀ (a : ι), a ∈ ∅ → ∃ b, b ∈ ∅ ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
simp
[GOAL]
case inr
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
by_cases ht : ∀ a ∈ t, r a < 0
[GOAL]
case pos
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∀ (a : ι), a ∈ t → r a < 0
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
exact
  ⟨t, Subset.rfl, fun a ha b _ _ => by simp only [Function.onFun, closedBall_eq_empty.2 (ht a ha), empty_disjoint],
    fun a ha => ⟨a, ha, by simp only [closedBall_eq_empty.2 (ht a ha), empty_subset]⟩⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∀ (a : ι), a ∈ t → r a < 0
a : ι
ha : a ∈ t
b : ι
x✝¹ : b ∈ t
x✝ : a ≠ b
⊢ (Disjoint on fun a => closedBall (x a) (r a)) a b
[PROOFSTEP]
simp only [Function.onFun, closedBall_eq_empty.2 (ht a ha), empty_disjoint]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∀ (a : ι), a ∈ t → r a < 0
a : ι
ha : a ∈ t
⊢ closedBall (x a) (r a) ⊆ closedBall (x a) (5 * r a)
[PROOFSTEP]
simp only [closedBall_eq_empty.2 (ht a ha), empty_subset]
[GOAL]
case neg
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ¬∀ (a : ι), a ∈ t → r a < 0
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
push_neg at ht
[GOAL]
case neg
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
let t' := {a ∈ t | 0 ≤ r a}
[GOAL]
case neg
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
rcases exists_disjoint_subfamily_covering_enlargment (fun a => closedBall (x a) (r a)) t' r 2 one_lt_two
    (fun a ha => ha.2) R (fun a ha => hr a ha.1) fun a ha => ⟨x a, mem_closedBall_self ha.2⟩ with
  ⟨u, ut', u_disj, hu⟩
[GOAL]
case neg.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
have A : ∀ a ∈ t', ∃ b ∈ u, closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b) :=
  by
  intro a ha
  rcases hu a ha with ⟨b, bu, hb, rb⟩
  refine' ⟨b, bu, _⟩
  have : dist (x a) (x b) ≤ r a + r b := dist_le_add_of_nonempty_closedBall_inter_closedBall hb
  apply closedBall_subset_closedBall'
  linarith
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
⊢ ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
intro a ha
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
a : ι
ha : a ∈ t'
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
rcases hu a ha with ⟨b, bu, hb, rb⟩
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
a : ι
ha : a ∈ t'
b : ι
bu : b ∈ u
hb : Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b))
rb : r a ≤ 2 * r b
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
refine' ⟨b, bu, _⟩
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
a : ι
ha : a ∈ t'
b : ι
bu : b ∈ u
hb : Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b))
rb : r a ≤ 2 * r b
⊢ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
have : dist (x a) (x b) ≤ r a + r b := dist_le_add_of_nonempty_closedBall_inter_closedBall hb
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
a : ι
ha : a ∈ t'
b : ι
bu : b ∈ u
hb : Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b))
rb : r a ≤ 2 * r b
this : dist (x a) (x b) ≤ r a + r b
⊢ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
apply closedBall_subset_closedBall'
[GOAL]
case intro.intro.intro.h
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
a : ι
ha : a ∈ t'
b : ι
bu : b ∈ u
hb : Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b))
rb : r a ≤ 2 * r b
this : dist (x a) (x b) ≤ r a + r b
⊢ r a + dist (x a) (x b) ≤ 5 * r b
[PROOFSTEP]
linarith
[GOAL]
case neg.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
⊢ ∃ u x_1,
    (PairwiseDisjoint u fun a => closedBall (x a) (r a)) ∧
      ∀ (a : ι), a ∈ t → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
refine' ⟨u, ut'.trans fun a ha => ha.1, u_disj, fun a ha => _⟩
[GOAL]
case neg.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
a : ι
ha : a ∈ t
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
rcases le_or_lt 0 (r a) with (h'a | h'a)
[GOAL]
case neg.intro.intro.intro.inl
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
a : ι
ha : a ∈ t
h'a : 0 ≤ r a
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
exact A a ⟨ha, h'a⟩
[GOAL]
case neg.intro.intro.intro.inr
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
ht : ∃ a, a ∈ t ∧ 0 ≤ r a
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
a : ι
ha : a ∈ t
h'a : r a < 0
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
rcases ht with ⟨b, rb⟩
[GOAL]
case neg.intro.intro.intro.inr.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
a : ι
ha : a ∈ t
h'a : r a < 0
b : ι
rb : b ∈ t ∧ 0 ≤ r b
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
rcases A b ⟨rb.1, rb.2⟩ with ⟨c, cu, _⟩
[GOAL]
case neg.intro.intro.intro.inr.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
a : ι
ha : a ∈ t
h'a : r a < 0
b : ι
rb : b ∈ t ∧ 0 ≤ r b
c : ι
cu : c ∈ u
right✝ : closedBall (x b) (r b) ⊆ closedBall (x c) (5 * r c)
⊢ ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
[PROOFSTEP]
refine' ⟨c, cu, by simp only [closedBall_eq_empty.2 h'a, empty_subset]⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝ : MetricSpace α
t : Set ι
x : ι → α
r : ι → ℝ
R : ℝ
hr : ∀ (a : ι), a ∈ t → r a ≤ R
h✝ : Set.Nonempty t
t' : Set ι := {a | a ∈ t ∧ 0 ≤ r a}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u fun a => closedBall (x a) (r a)
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (closedBall (x a) (r a) ∩ closedBall (x b) (r b)) ∧ r a ≤ 2 * r b
A : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ closedBall (x a) (r a) ⊆ closedBall (x b) (5 * r b)
a : ι
ha : a ∈ t
h'a : r a < 0
b : ι
rb : b ∈ t ∧ 0 ≤ r b
c : ι
cu : c ∈ u
right✝ : closedBall (x b) (r b) ⊆ closedBall (x c) (5 * r c)
⊢ closedBall (x a) (r a) ⊆ closedBall (x c) (5 * r c)
[PROOFSTEP]
simp only [closedBall_eq_empty.2 h'a, empty_subset]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
have : ∀ x, ∃ R, 0 < R ∧ R ≤ 1 ∧ μ (closedBall x (20 * R)) < ∞ :=
  by
  intro x
  obtain ⟨R, Rpos, μR⟩ : ∃ R, 0 < R ∧ μ (closedBall x R) < ∞ :=
    (μ.finiteAt_nhds x).exists_mem_basis nhds_basis_closedBall
  refine' ⟨min 1 (R / 20), _, min_le_left _ _, _⟩
  · simp only [true_and_iff, lt_min_iff, zero_lt_one]
    linarith
  · apply lt_of_le_of_lt (measure_mono _) μR
    apply closedBall_subset_closedBall
    calc
      20 * min 1 (R / 20) ≤ 20 * (R / 20) := mul_le_mul_of_nonneg_left (min_le_right _ _) (by norm_num)
      _ = R := by ring
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
⊢ ∀ (x : α), ∃ R, 0 < R ∧ R ≤ 1 ∧ ↑↑μ (closedBall x (20 * R)) < ⊤
[PROOFSTEP]
intro x
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
⊢ ∃ R, 0 < R ∧ R ≤ 1 ∧ ↑↑μ (closedBall x (20 * R)) < ⊤
[PROOFSTEP]
obtain ⟨R, Rpos, μR⟩ : ∃ R, 0 < R ∧ μ (closedBall x R) < ∞ := (μ.finiteAt_nhds x).exists_mem_basis nhds_basis_closedBall
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ ∃ R, 0 < R ∧ R ≤ 1 ∧ ↑↑μ (closedBall x (20 * R)) < ⊤
[PROOFSTEP]
refine' ⟨min 1 (R / 20), _, min_le_left _ _, _⟩
[GOAL]
case intro.intro.refine'_1
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ 0 < min 1 (R / 20)
[PROOFSTEP]
simp only [true_and_iff, lt_min_iff, zero_lt_one]
[GOAL]
case intro.intro.refine'_1
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ 0 < R / 20
[PROOFSTEP]
linarith
[GOAL]
case intro.intro.refine'_2
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ ↑↑μ (closedBall x (20 * min 1 (R / 20))) < ⊤
[PROOFSTEP]
apply lt_of_le_of_lt (measure_mono _) μR
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ closedBall x (20 * min 1 (R / 20)) ⊆ closedBall x R
[PROOFSTEP]
apply closedBall_subset_closedBall
[GOAL]
case h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ 20 * min 1 (R / 20) ≤ R
[PROOFSTEP]
calc
  20 * min 1 (R / 20) ≤ 20 * (R / 20) := mul_le_mul_of_nonneg_left (min_le_right _ _) (by norm_num)
  _ = R := by ring
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ 0 ≤ 20
[PROOFSTEP]
norm_num
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
x : α
R : ℝ
Rpos : 0 < R
μR : ↑↑μ (closedBall x R) < ⊤
⊢ 20 * (R / 20) = R
[PROOFSTEP]
ring
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
this : ∀ (x : α), ∃ R, 0 < R ∧ R ≤ 1 ∧ ↑↑μ (closedBall x (20 * R)) < ⊤
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
choose R hR0 hR1 hRμ using this
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
let t' :=
  {a ∈ t | r a ≤ R (c a)}
    -- extract a disjoint subfamily `u` of `t'` thanks to the abstract Vitali covering theorem.
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
obtain ⟨u, ut', u_disj, hu⟩ :
  ∃ (u : _) (_ : u ⊆ t'), u.PairwiseDisjoint B ∧ ∀ a ∈ t', ∃ b ∈ u, (B a ∩ B b).Nonempty ∧ r a ≤ 2 * r b :=
  by
  have A : ∀ a ∈ t', r a ≤ 1 := by
    intro a ha
    apply ha.2.trans (hR1 (c a))
  have A' : ∀ a ∈ t', (B a).Nonempty := fun a hat' => Set.Nonempty.mono interior_subset (ht a hat'.1)
  refine' exists_disjoint_subfamily_covering_enlargment B t' r 2 one_lt_two (fun a ha => _) 1 A A'
  exact nonempty_closedBall.1 ((A' a ha).mono (hB a ha.1))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
⊢ ∃ u x, PairwiseDisjoint u B ∧ ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
[PROOFSTEP]
have A : ∀ a ∈ t', r a ≤ 1 := by
  intro a ha
  apply ha.2.trans (hR1 (c a))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
⊢ ∀ (a : ι), a ∈ t' → r a ≤ 1
[PROOFSTEP]
intro a ha
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
a : ι
ha : a ∈ t'
⊢ r a ≤ 1
[PROOFSTEP]
apply ha.2.trans (hR1 (c a))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
A : ∀ (a : ι), a ∈ t' → r a ≤ 1
⊢ ∃ u x, PairwiseDisjoint u B ∧ ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
[PROOFSTEP]
have A' : ∀ a ∈ t', (B a).Nonempty := fun a hat' => Set.Nonempty.mono interior_subset (ht a hat'.1)
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
A : ∀ (a : ι), a ∈ t' → r a ≤ 1
A' : ∀ (a : ι), a ∈ t' → Set.Nonempty (B a)
⊢ ∃ u x, PairwiseDisjoint u B ∧ ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
[PROOFSTEP]
refine' exists_disjoint_subfamily_covering_enlargment B t' r 2 one_lt_two (fun a ha => _) 1 A A'
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
A : ∀ (a : ι), a ∈ t' → r a ≤ 1
A' : ∀ (a : ι), a ∈ t' → Set.Nonempty (B a)
a : ι
ha : a ∈ t'
⊢ 0 ≤ r a
[PROOFSTEP]
exact nonempty_closedBall.1 ((A' a ha).mono (hB a ha.1))
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
have ut : u ⊆ t := fun a hau =>
  (ut' hau).1
    -- As the space is second countable, the family is countable since all its sets have nonempty
      -- interior.
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
have u_count : u.Countable :=
  u_disj.countable_of_nonempty_interior fun a ha =>
    ht a
      (ut ha)
        -- the family `u` will be the desired family
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
⊢ ∃ u x, Set.Countable u ∧ PairwiseDisjoint u B ∧ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
refine'
  ⟨u, fun a hat' => (ut' hat').1, u_count, u_disj, _⟩
    -- it suffices to show that it covers almost all `s` locally around each point `x`.
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
⊢ ↑↑μ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) = 0
[PROOFSTEP]
refine'
  null_of_locally_null _ fun x _ =>
    _
      -- let `v` be the subfamily of `u` made of those sets intersecting the small ball `ball x (r x)`
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
⊢ ∃ u_1, u_1 ∈ 𝓝[s \ ⋃ (a : ι) (_ : a ∈ u), B a] x ∧ ↑↑μ u_1 = 0
[PROOFSTEP]
let v := {a ∈ u | (B a ∩ ball x (R x)).Nonempty}
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
⊢ ∃ u_1, u_1 ∈ 𝓝[s \ ⋃ (a : ι) (_ : a ∈ u), B a] x ∧ ↑↑μ u_1 = 0
[PROOFSTEP]
have vu : v ⊆ u := fun a ha =>
  ha.1
    -- they are all contained in a fixed ball of finite measure, thanks to our choice of `t'`
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
⊢ ∃ u_1, u_1 ∈ 𝓝[s \ ⋃ (a : ι) (_ : a ∈ u), B a] x ∧ ↑↑μ u_1 = 0
[PROOFSTEP]
obtain ⟨K, μK, hK⟩ : ∃ K, μ (closedBall x K) < ∞ ∧ ∀ a ∈ u, (B a ∩ ball x (R x)).Nonempty → B a ⊆ closedBall x K :=
  by
  have Idist_v : ∀ a ∈ v, dist (c a) x ≤ r a + R x := by
    intro a hav
    apply dist_le_add_of_nonempty_closedBall_inter_closedBall
    refine' hav.2.mono _
    apply inter_subset_inter _ ball_subset_closedBall
    exact hB a (ut (vu hav))
  set R0 := sSup (r '' v) with R0_def
  have R0_bdd : BddAbove (r '' v) := by
    refine' ⟨1, fun r' hr' => _⟩
    rcases(mem_image _ _ _).1 hr' with ⟨b, hb, rfl⟩
    exact le_trans (ut' (vu hb)).2 (hR1 (c b))
  rcases le_total R0 (R x) with (H | H)
  · refine' ⟨20 * R x, hRμ x, fun a au hax => _⟩
    refine' (hB a (ut au)).trans _
    apply closedBall_subset_closedBall'
    have : r a ≤ R0 := le_csSup R0_bdd (mem_image_of_mem _ ⟨au, hax⟩)
    linarith [Idist_v a ⟨au, hax⟩, hR0 x]
  · have R0pos : 0 < R0 := (hR0 x).trans_le H
    have vnonempty : v.Nonempty := by
      by_contra h
      rw [nonempty_iff_ne_empty, Classical.not_not] at h
      rw [h, image_empty, Real.sSup_empty] at R0_def
      exact lt_irrefl _ (R0pos.trans_le (le_of_eq R0_def))
    obtain ⟨a, hav, R0a⟩ : ∃ a ∈ v, R0 / 2 < r a :=
      by
      obtain ⟨r', r'mem, hr'⟩ : ∃ r' ∈ r '' v, R0 / 2 < r' :=
        exists_lt_of_lt_csSup (nonempty_image_iff.2 vnonempty) (half_lt_self R0pos)
      rcases(mem_image _ _ _).1 r'mem with ⟨a, hav, rfl⟩
      exact ⟨a, hav, hr'⟩
    refine' ⟨8 * R0, _, _⟩
    · apply lt_of_le_of_lt (measure_mono _) (hRμ (c a))
      apply closedBall_subset_closedBall'
      rw [dist_comm]
      linarith [Idist_v a hav, (ut' (vu hav)).2]
    · intro b bu hbx
      refine' (hB b (ut bu)).trans _
      apply closedBall_subset_closedBall'
      have : r b ≤ R0 := le_csSup R0_bdd (mem_image_of_mem _ ⟨bu, hbx⟩)
      linarith [Idist_v b ⟨bu, hbx⟩]
        -- we will show that, in `ball x (R x)`, almost all `s` is covered by the family `u`.
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
have Idist_v : ∀ a ∈ v, dist (c a) x ≤ r a + R x := by
  intro a hav
  apply dist_le_add_of_nonempty_closedBall_inter_closedBall
  refine' hav.2.mono _
  apply inter_subset_inter _ ball_subset_closedBall
  exact hB a (ut (vu hav))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
⊢ ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
[PROOFSTEP]
intro a hav
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
a : ι
hav : a ∈ v
⊢ dist (c a) x ≤ r a + R x
[PROOFSTEP]
apply dist_le_add_of_nonempty_closedBall_inter_closedBall
[GOAL]
case h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
a : ι
hav : a ∈ v
⊢ Set.Nonempty (closedBall (c a) (r a) ∩ closedBall x (R x))
[PROOFSTEP]
refine' hav.2.mono _
[GOAL]
case h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
a : ι
hav : a ∈ v
⊢ B a ∩ ball x (R x) ⊆ closedBall (c a) (r a) ∩ closedBall x (R x)
[PROOFSTEP]
apply inter_subset_inter _ ball_subset_closedBall
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
a : ι
hav : a ∈ v
⊢ B a ⊆ closedBall (c a) (r a)
[PROOFSTEP]
exact hB a (ut (vu hav))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
set R0 := sSup (r '' v) with R0_def
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
have R0_bdd : BddAbove (r '' v) := by
  refine' ⟨1, fun r' hr' => _⟩
  rcases(mem_image _ _ _).1 hr' with ⟨b, hb, rfl⟩
  exact le_trans (ut' (vu hb)).2 (hR1 (c b))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
⊢ BddAbove (r '' v)
[PROOFSTEP]
refine' ⟨1, fun r' hr' => _⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
r' : ℝ
hr' : r' ∈ r '' v
⊢ r' ≤ 1
[PROOFSTEP]
rcases(mem_image _ _ _).1 hr' with ⟨b, hb, rfl⟩
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
b : ι
hb : b ∈ v
hr' : r b ∈ r '' v
⊢ r b ≤ 1
[PROOFSTEP]
exact le_trans (ut' (vu hb)).2 (hR1 (c b))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
rcases le_total R0 (R x) with (H | H)
[GOAL]
case inl
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R0 ≤ R x
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
refine' ⟨20 * R x, hRμ x, fun a au hax => _⟩
[GOAL]
case inl
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R0 ≤ R x
a : ι
au : a ∈ u
hax : Set.Nonempty (B a ∩ ball x (R x))
⊢ B a ⊆ closedBall x (20 * R x)
[PROOFSTEP]
refine' (hB a (ut au)).trans _
[GOAL]
case inl
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R0 ≤ R x
a : ι
au : a ∈ u
hax : Set.Nonempty (B a ∩ ball x (R x))
⊢ closedBall (c a) (r a) ⊆ closedBall x (20 * R x)
[PROOFSTEP]
apply closedBall_subset_closedBall'
[GOAL]
case inl.h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R0 ≤ R x
a : ι
au : a ∈ u
hax : Set.Nonempty (B a ∩ ball x (R x))
⊢ r a + dist (c a) x ≤ 20 * R x
[PROOFSTEP]
have : r a ≤ R0 := le_csSup R0_bdd (mem_image_of_mem _ ⟨au, hax⟩)
[GOAL]
case inl.h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R0 ≤ R x
a : ι
au : a ∈ u
hax : Set.Nonempty (B a ∩ ball x (R x))
this : r a ≤ R0
⊢ r a + dist (c a) x ≤ 20 * R x
[PROOFSTEP]
linarith [Idist_v a ⟨au, hax⟩, hR0 x]
[GOAL]
case inr
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
have R0pos : 0 < R0 := (hR0 x).trans_le H
[GOAL]
case inr
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
have vnonempty : v.Nonempty := by
  by_contra h
  rw [nonempty_iff_ne_empty, Classical.not_not] at h
  rw [h, image_empty, Real.sSup_empty] at R0_def
  exact lt_irrefl _ (R0pos.trans_le (le_of_eq R0_def))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
⊢ Set.Nonempty v
[PROOFSTEP]
by_contra h
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
h : ¬Set.Nonempty v
⊢ False
[PROOFSTEP]
rw [nonempty_iff_ne_empty, Classical.not_not] at h
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
h : v = ∅
⊢ False
[PROOFSTEP]
rw [h, image_empty, Real.sSup_empty] at R0_def
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = 0
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
h : v = ∅
⊢ False
[PROOFSTEP]
exact lt_irrefl _ (R0pos.trans_le (le_of_eq R0_def))
[GOAL]
case inr
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
obtain ⟨a, hav, R0a⟩ : ∃ a ∈ v, R0 / 2 < r a :=
  by
  obtain ⟨r', r'mem, hr'⟩ : ∃ r' ∈ r '' v, R0 / 2 < r' :=
    exists_lt_of_lt_csSup (nonempty_image_iff.2 vnonempty) (half_lt_self R0pos)
  rcases(mem_image _ _ _).1 r'mem with ⟨a, hav, rfl⟩
  exact ⟨a, hav, hr'⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
⊢ ∃ a, a ∈ v ∧ R0 / 2 < r a
[PROOFSTEP]
obtain ⟨r', r'mem, hr'⟩ : ∃ r' ∈ r '' v, R0 / 2 < r' :=
  exists_lt_of_lt_csSup (nonempty_image_iff.2 vnonempty) (half_lt_self R0pos)
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
r' : ℝ
r'mem : r' ∈ r '' v
hr' : R0 / 2 < r'
⊢ ∃ a, a ∈ v ∧ R0 / 2 < r a
[PROOFSTEP]
rcases(mem_image _ _ _).1 r'mem with ⟨a, hav, rfl⟩
[GOAL]
case intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
r'mem : r a ∈ r '' v
hr' : R0 / 2 < r a
⊢ ∃ a, a ∈ v ∧ R0 / 2 < r a
[PROOFSTEP]
exact ⟨a, hav, hr'⟩
[GOAL]
case inr.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
⊢ ∃ K, ↑↑μ (closedBall x K) < ⊤ ∧ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
[PROOFSTEP]
refine' ⟨8 * R0, _, _⟩
[GOAL]
case inr.intro.intro.refine'_1
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
⊢ ↑↑μ (closedBall x (8 * R0)) < ⊤
[PROOFSTEP]
apply lt_of_le_of_lt (measure_mono _) (hRμ (c a))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
⊢ closedBall x (8 * R0) ⊆ closedBall (c a) (20 * R (c a))
[PROOFSTEP]
apply closedBall_subset_closedBall'
[GOAL]
case h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
⊢ 8 * R0 + dist x (c a) ≤ 20 * R (c a)
[PROOFSTEP]
rw [dist_comm]
[GOAL]
case h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
⊢ 8 * R0 + dist (c a) x ≤ 20 * R (c a)
[PROOFSTEP]
linarith [Idist_v a hav, (ut' (vu hav)).2]
[GOAL]
case inr.intro.intro.refine'_2
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
⊢ ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x (8 * R0)
[PROOFSTEP]
intro b bu hbx
[GOAL]
case inr.intro.intro.refine'_2
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
b : ι
bu : b ∈ u
hbx : Set.Nonempty (B b ∩ ball x (R x))
⊢ B b ⊆ closedBall x (8 * R0)
[PROOFSTEP]
refine' (hB b (ut bu)).trans _
[GOAL]
case inr.intro.intro.refine'_2
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
b : ι
bu : b ∈ u
hbx : Set.Nonempty (B b ∩ ball x (R x))
⊢ closedBall (c b) (r b) ⊆ closedBall x (8 * R0)
[PROOFSTEP]
apply closedBall_subset_closedBall'
[GOAL]
case inr.intro.intro.refine'_2.h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
b : ι
bu : b ∈ u
hbx : Set.Nonempty (B b ∩ ball x (R x))
⊢ r b + dist (c b) x ≤ 8 * R0
[PROOFSTEP]
have : r b ≤ R0 := le_csSup R0_bdd (mem_image_of_mem _ ⟨bu, hbx⟩)
[GOAL]
case inr.intro.intro.refine'_2.h
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
Idist_v : ∀ (a : ι), a ∈ v → dist (c a) x ≤ r a + R x
R0 : ℝ := sSup (r '' v)
R0_def : R0 = sSup (r '' v)
R0_bdd : BddAbove (r '' v)
H : R x ≤ R0
R0pos : 0 < R0
vnonempty : Set.Nonempty v
a : ι
hav : a ∈ v
R0a : R0 / 2 < r a
b : ι
bu : b ∈ u
hbx : Set.Nonempty (B b ∩ ball x (R x))
this : r b ≤ R0
⊢ r b + dist (c b) x ≤ 8 * R0
[PROOFSTEP]
linarith [Idist_v b ⟨bu, hbx⟩]
  -- we will show that, in `ball x (R x)`, almost all `s` is covered by the family `u`.
[GOAL]
case intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
⊢ ∃ u_1, u_1 ∈ 𝓝[s \ ⋃ (a : ι) (_ : a ∈ u), B a] x ∧ ↑↑μ u_1 = 0
[PROOFSTEP]
refine'
  ⟨_ ∩ ball x (R x), inter_mem_nhdsWithin _ (ball_mem_nhds _ (hR0 _)),
    nonpos_iff_eq_zero.mp (le_of_forall_le_of_dense fun ε εpos => _)⟩
    -- the elements of `v` are disjoint and all contained in a finite volume ball, hence the sum
      -- of their measures is finite.
[GOAL]
case intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
⊢ ↑↑μ ((s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)) ≤ ε
[PROOFSTEP]
have I : (∑' a : v, μ (B a)) < ∞ := by
  calc
    (∑' a : v, μ (B a)) = μ (⋃ a ∈ v, B a) :=
      by
      rw [measure_biUnion (u_count.mono vu) _ fun a ha => (h't _ (vu.trans ut ha)).measurableSet]
      exact u_disj.subset vu
    _ ≤ μ (closedBall x K) := (measure_mono (iUnion₂_subset fun a ha => hK a (vu ha) ha.2))
    _ < ∞ := μK
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
⊢ ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
[PROOFSTEP]
calc
  (∑' a : v, μ (B a)) = μ (⋃ a ∈ v, B a) :=
    by
    rw [measure_biUnion (u_count.mono vu) _ fun a ha => (h't _ (vu.trans ut ha)).measurableSet]
    exact u_disj.subset vu
  _ ≤ μ (closedBall x K) := (measure_mono (iUnion₂_subset fun a ha => hK a (vu ha) ha.2))
  _ < ∞ := μK
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
⊢ ∑' (a : ↑v), ↑↑μ (B ↑a) = ↑↑μ (⋃ (a : ι) (_ : a ∈ v), B a)
[PROOFSTEP]
rw [measure_biUnion (u_count.mono vu) _ fun a ha => (h't _ (vu.trans ut ha)).measurableSet]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
⊢ PairwiseDisjoint v fun a => B a
[PROOFSTEP]
exact u_disj.subset vu
[GOAL]
case intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
⊢ ↑↑μ ((s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)) ≤ ε
[PROOFSTEP]
obtain ⟨w, hw⟩ : ∃ w : Finset v, (∑' a : { a // a ∉ w }, μ (B a)) < ε / C :=
  haveI : 0 < ε / C := by
    simp only [ENNReal.div_pos_iff, εpos.ne', ENNReal.coe_ne_top, Ne.def, not_false_iff, and_self_iff]
  ((tendsto_order.1 (ENNReal.tendsto_tsum_compl_atTop_zero I.ne)).2 _ this).exists
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
⊢ 0 < ε / ↑C
[PROOFSTEP]
simp only [ENNReal.div_pos_iff, εpos.ne', ENNReal.coe_ne_top, Ne.def, not_false_iff, and_self_iff]
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
⊢ ↑↑μ ((s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)) ≤ ε
[PROOFSTEP]
have M : (s \ ⋃ a ∈ u, B a) ∩ ball x (R x) ⊆ ⋃ a : { a // a ∉ w }, closedBall (c a) (3 * r a) :=
  by
  intro z hz
  set k := ⋃ (a : v) (_ : a ∈ w), B a
  have k_closed : IsClosed k := isClosed_biUnion w.finite_toSet fun i _ => h't _ (ut (vu i.2))
  have z_notmem_k : z ∉ k :=
    by
    simp only [not_exists, exists_prop, mem_iUnion, mem_sep_iff, forall_exists_index, SetCoe.exists, not_and,
      exists_and_right, Subtype.coe_mk]
    intro b hbv _ h'z
    have : z ∈ (s \ ⋃ a ∈ u, B a) ∩ ⋃ a ∈ u, B a := mem_inter (mem_of_mem_inter_left hz) (mem_biUnion (vu hbv) h'z)
    simpa only [diff_inter_self]
      -- since the elements of `w` are closed and finitely many, one can find a small ball around `z`
          -- not intersecting them
  have : ball x (R x) \ k ∈ 𝓝 z :=
    by
    apply IsOpen.mem_nhds (isOpen_ball.sdiff k_closed) _
    exact (mem_diff _).2 ⟨mem_of_mem_inter_right hz, z_notmem_k⟩
  obtain ⟨d, dpos, hd⟩ : ∃ d, 0 < d ∧ closedBall z d ⊆ ball x (R x) \ k := nhds_basis_closedBall.mem_iff.1 this
  obtain ⟨a, hat, ad, rfl⟩ : ∃ a ∈ t, r a ≤ min d (R z) ∧ c a = z
  exact hf z ((mem_diff _).1 (mem_of_mem_inter_left hz)).1 (min d (R z)) (lt_min dpos (hR0 z))
  have ax : B a ⊆ ball x (R x) := by
    refine' (hB a hat).trans _
    refine' Subset.trans _ (hd.trans (diff_subset (ball x (R x)) k))
    exact
      closedBall_subset_closedBall
        (ad.trans (min_le_left _ _))
          -- it intersects an element `b` of `u` with comparable diameter, by definition of `u`
  obtain ⟨b, bu, ab, bdiam⟩ : ∃ b ∈ u, (B a ∩ B b).Nonempty ∧ r a ≤ 2 * r b
  exact hu a ⟨hat, ad.trans (min_le_right _ _)⟩
  have bv : b ∈ v := by
    refine' ⟨bu, ab.mono _⟩
    rw [inter_comm]
    exact inter_subset_inter_right _ ax
  let b' : v :=
    ⟨b, bv⟩
      -- `b` cannot belong to `w`, as the elements of `w` do not intersect `closedBall z d`,
          -- contrary to `b`
  have b'_notmem_w : b' ∉ w := by
    intro b'w
    have b'k : B b' ⊆ k := @Finset.subset_set_biUnion_of_mem _ _ _ (fun y : v => B y) _ b'w
    have : (ball x (R x) \ k ∩ k).Nonempty :=
      by
      apply ab.mono (inter_subset_inter _ b'k)
      refine' ((hB _ hat).trans _).trans hd
      exact closedBall_subset_closedBall (ad.trans (min_le_left _ _))
    simpa only [diff_inter_self, Set.not_nonempty_empty]
  let b'' : { a // a ∉ w } :=
    ⟨b', b'_notmem_w⟩
      -- since `a` and `b` have comparable diameters, it follows that `z` belongs to the
          -- enlargement of `b`
  have zb : c a ∈ closedBall (c b) (3 * r b) :=
    by
    rcases ab with ⟨e, ⟨ea, eb⟩⟩
    have A : dist (c a) e ≤ r a := mem_closedBall'.1 (hB a hat ea)
    have B : dist e (c b) ≤ r b := mem_closedBall.1 (hB b (ut bu) eb)
    simp only [mem_closedBall]
    linarith only [dist_triangle (c a) e (c b), A, B, bdiam]
  suffices H : closedBall (c b'') (3 * r b'') ⊆ ⋃ a : { a // a ∉ w }, closedBall (c a) (3 * r a)
  exact H zb
  exact subset_iUnion (fun a : { a // a ∉ w } => closedBall (c a) (3 * r a)) b''
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
⊢ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x) ⊆ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
intro z hz
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
⊢ z ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
set k := ⋃ (a : v) (_ : a ∈ w), B a
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
⊢ z ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have k_closed : IsClosed k := isClosed_biUnion w.finite_toSet fun i _ => h't _ (ut (vu i.2))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
⊢ z ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have z_notmem_k : z ∉ k :=
  by
  simp only [not_exists, exists_prop, mem_iUnion, mem_sep_iff, forall_exists_index, SetCoe.exists, not_and,
    exists_and_right, Subtype.coe_mk]
  intro b hbv _ h'z
  have : z ∈ (s \ ⋃ a ∈ u, B a) ∩ ⋃ a ∈ u, B a := mem_inter (mem_of_mem_inter_left hz) (mem_biUnion (vu hbv) h'z)
  simpa only [diff_inter_self]
    -- since the elements of `w` are closed and finitely many, one can find a small ball around `z`
        -- not intersecting them
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
⊢ ¬z ∈ k
[PROOFSTEP]
simp only [not_exists, exists_prop, mem_iUnion, mem_sep_iff, forall_exists_index, SetCoe.exists, not_and,
  exists_and_right, Subtype.coe_mk]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
⊢ ∀ (x_1 : ι) (x_2 : x_1 ∈ u ∧ Set.Nonempty (B x_1 ∩ ball x (R x))),
    { val := x_1, property := (_ : x_1 ∈ {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}) } ∈ w → ¬z ∈ B x_1
[PROOFSTEP]
intro b hbv _ h'z
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
b : ι
hbv : b ∈ u ∧ Set.Nonempty (B b ∩ ball x (R x))
h✝ : { val := b, property := (_ : b ∈ {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}) } ∈ w
h'z : z ∈ B b
⊢ False
[PROOFSTEP]
have : z ∈ (s \ ⋃ a ∈ u, B a) ∩ ⋃ a ∈ u, B a := mem_inter (mem_of_mem_inter_left hz) (mem_biUnion (vu hbv) h'z)
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
b : ι
hbv : b ∈ u ∧ Set.Nonempty (B b ∩ ball x (R x))
h✝ : { val := b, property := (_ : b ∈ {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}) } ∈ w
h'z : z ∈ B b
this : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ⋃ (a : ι) (_ : a ∈ u), B a
⊢ False
[PROOFSTEP]
simpa only [diff_inter_self]
  -- since the elements of `w` are closed and finitely many, one can find a small ball around `z`
      -- not intersecting them
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
z_notmem_k : ¬z ∈ k
⊢ z ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have : ball x (R x) \ k ∈ 𝓝 z := by
  apply IsOpen.mem_nhds (isOpen_ball.sdiff k_closed) _
  exact (mem_diff _).2 ⟨mem_of_mem_inter_right hz, z_notmem_k⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
z_notmem_k : ¬z ∈ k
⊢ ball x (R x) \ k ∈ 𝓝 z
[PROOFSTEP]
apply IsOpen.mem_nhds (isOpen_ball.sdiff k_closed) _
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
z_notmem_k : ¬z ∈ k
⊢ z ∈ ball x (R x) \ k
[PROOFSTEP]
exact (mem_diff _).2 ⟨mem_of_mem_inter_right hz, z_notmem_k⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
z_notmem_k : ¬z ∈ k
this : ball x (R x) \ k ∈ 𝓝 z
⊢ z ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
obtain ⟨d, dpos, hd⟩ : ∃ d, 0 < d ∧ closedBall z d ⊆ ball x (R x) \ k := nhds_basis_closedBall.mem_iff.1 this
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
z_notmem_k : ¬z ∈ k
this : ball x (R x) \ k ∈ 𝓝 z
d : ℝ
dpos : 0 < d
hd : closedBall z d ⊆ ball x (R x) \ k
⊢ z ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
obtain ⟨a, hat, ad, rfl⟩ : ∃ a ∈ t, r a ≤ min d (R z) ∧ c a = z
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
z : α
hz : z ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
z_notmem_k : ¬z ∈ k
this : ball x (R x) \ k ∈ 𝓝 z
d : ℝ
dpos : 0 < d
hd : closedBall z d ⊆ ball x (R x) \ k
⊢ ∃ a, a ∈ t ∧ r a ≤ min d (R z) ∧ c a = z
case intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
exact hf z ((mem_diff _).1 (mem_of_mem_inter_left hz)).1 (min d (R z)) (lt_min dpos (hR0 z))
[GOAL]
case intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have ax : B a ⊆ ball x (R x) := by
  refine' (hB a hat).trans _
  refine' Subset.trans _ (hd.trans (diff_subset (ball x (R x)) k))
  exact
    closedBall_subset_closedBall
      (ad.trans (min_le_left _ _))
        -- it intersects an element `b` of `u` with comparable diameter, by definition of `u`
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
⊢ B a ⊆ ball x (R x)
[PROOFSTEP]
refine' (hB a hat).trans _
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
⊢ closedBall (c a) (r a) ⊆ ball x (R x)
[PROOFSTEP]
refine' Subset.trans _ (hd.trans (diff_subset (ball x (R x)) k))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
⊢ closedBall (c a) (r a) ⊆ closedBall (c a) d
[PROOFSTEP]
exact
  closedBall_subset_closedBall
    (ad.trans (min_le_left _ _))
      -- it intersects an element `b` of `u` with comparable diameter, by definition of `u`
[GOAL]
case intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
obtain ⟨b, bu, ab, bdiam⟩ : ∃ b ∈ u, (B a ∩ B b).Nonempty ∧ r a ≤ 2 * r b
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
⊢ ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
exact hu a ⟨hat, ad.trans (min_le_right _ _)⟩
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have bv : b ∈ v := by
  refine' ⟨bu, ab.mono _⟩
  rw [inter_comm]
  exact inter_subset_inter_right _ ax
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
⊢ b ∈ v
[PROOFSTEP]
refine' ⟨bu, ab.mono _⟩
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
⊢ B a ∩ B b ⊆ B b ∩ ball x (R x)
[PROOFSTEP]
rw [inter_comm]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
⊢ B b ∩ B a ⊆ B b ∩ ball x (R x)
[PROOFSTEP]
exact inter_subset_inter_right _ ax
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
let b' : v :=
  ⟨b, bv⟩
    -- `b` cannot belong to `w`, as the elements of `w` do not intersect `closedBall z d`,
        -- contrary to `b`
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have b'_notmem_w : b' ∉ w := by
  intro b'w
  have b'k : B b' ⊆ k := @Finset.subset_set_biUnion_of_mem _ _ _ (fun y : v => B y) _ b'w
  have : (ball x (R x) \ k ∩ k).Nonempty :=
    by
    apply ab.mono (inter_subset_inter _ b'k)
    refine' ((hB _ hat).trans _).trans hd
    exact closedBall_subset_closedBall (ad.trans (min_le_left _ _))
  simpa only [diff_inter_self, Set.not_nonempty_empty]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
⊢ ¬b' ∈ w
[PROOFSTEP]
intro b'w
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'w : b' ∈ w
⊢ False
[PROOFSTEP]
have b'k : B b' ⊆ k := @Finset.subset_set_biUnion_of_mem _ _ _ (fun y : v => B y) _ b'w
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'w : b' ∈ w
b'k : B ↑b' ⊆ k
⊢ False
[PROOFSTEP]
have : (ball x (R x) \ k ∩ k).Nonempty :=
  by
  apply ab.mono (inter_subset_inter _ b'k)
  refine' ((hB _ hat).trans _).trans hd
  exact closedBall_subset_closedBall (ad.trans (min_le_left _ _))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'w : b' ∈ w
b'k : B ↑b' ⊆ k
⊢ Set.Nonempty (ball x (R x) \ k ∩ k)
[PROOFSTEP]
apply ab.mono (inter_subset_inter _ b'k)
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'w : b' ∈ w
b'k : B ↑b' ⊆ k
⊢ B a ⊆ ball x (R x) \ k
[PROOFSTEP]
refine' ((hB _ hat).trans _).trans hd
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'w : b' ∈ w
b'k : B ↑b' ⊆ k
⊢ closedBall (c a) (r a) ⊆ closedBall (c a) d
[PROOFSTEP]
exact closedBall_subset_closedBall (ad.trans (min_le_left _ _))
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this✝ : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'w : b' ∈ w
b'k : B ↑b' ⊆ k
this : Set.Nonempty (ball x (R x) \ k ∩ k)
⊢ False
[PROOFSTEP]
simpa only [diff_inter_self, Set.not_nonempty_empty]
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
let b'' : { a // a ∉ w } :=
  ⟨b', b'_notmem_w⟩
    -- since `a` and `b` have comparable diameters, it follows that `z` belongs to the
        -- enlargement of `b`
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
have zb : c a ∈ closedBall (c b) (3 * r b) :=
  by
  rcases ab with ⟨e, ⟨ea, eb⟩⟩
  have A : dist (c a) e ≤ r a := mem_closedBall'.1 (hB a hat ea)
  have B : dist e (c b) ≤ r b := mem_closedBall.1 (hB b (ut bu) eb)
  simp only [mem_closedBall]
  linarith only [dist_triangle (c a) e (c b), A, B, bdiam]
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
⊢ c a ∈ closedBall (c b) (3 * r b)
[PROOFSTEP]
rcases ab with ⟨e, ⟨ea, eb⟩⟩
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
e : α
ea : e ∈ B a
eb : e ∈ B b
⊢ c a ∈ closedBall (c b) (3 * r b)
[PROOFSTEP]
have A : dist (c a) e ≤ r a := mem_closedBall'.1 (hB a hat ea)
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
e : α
ea : e ∈ B a
eb : e ∈ B b
A : dist (c a) e ≤ r a
⊢ c a ∈ closedBall (c b) (3 * r b)
[PROOFSTEP]
have B : dist e (c b) ≤ r b := mem_closedBall.1 (hB b (ut bu) eb)
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B✝ : ι → Set α
hB : ∀ (a : ι), a ∈ t → B✝ a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B✝ a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B✝ a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B✝ a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B✝
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B✝ a ∩ B✝ b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B✝ a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B✝ a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B✝ a ∩ ball x (R x)) → B✝ a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B✝ ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B✝ ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B✝ ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B✝ a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B✝ a ⊆ ball x (R x)
b : ι
bu : b ∈ u
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
e : α
ea : e ∈ B✝ a
eb : e ∈ B✝ b
A : dist (c a) e ≤ r a
B : dist e (c b) ≤ r b
⊢ c a ∈ closedBall (c b) (3 * r b)
[PROOFSTEP]
simp only [mem_closedBall]
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B✝ : ι → Set α
hB : ∀ (a : ι), a ∈ t → B✝ a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B✝ a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B✝ a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B✝ a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B✝
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B✝ a ∩ B✝ b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B✝ a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B✝ a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B✝ a ∩ ball x (R x)) → B✝ a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B✝ ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B✝ ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B✝ ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B✝ a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B✝ a ⊆ ball x (R x)
b : ι
bu : b ∈ u
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
e : α
ea : e ∈ B✝ a
eb : e ∈ B✝ b
A : dist (c a) e ≤ r a
B : dist e (c b) ≤ r b
⊢ dist (c a) (c b) ≤ 3 * r b
[PROOFSTEP]
linarith only [dist_triangle (c a) e (c b), A, B, bdiam]
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
zb : c a ∈ closedBall (c b) (3 * r b)
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
suffices H : closedBall (c b'') (3 * r b'') ⊆ ⋃ a : { a // a ∉ w }, closedBall (c a) (3 * r a)
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
zb : c a ∈ closedBall (c b) (3 * r b)
H : closedBall (c ↑↑b'') (3 * r ↑↑b'') ⊆ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
⊢ c a ∈ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
case H
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
zb : c a ∈ closedBall (c b) (3 * r b)
⊢ closedBall (c ↑↑b'') (3 * r ↑↑b'') ⊆ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
exact H zb
[GOAL]
case H
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
k : Set α := ⋃ (a : ↑v) (_ : a ∈ w), B ↑a
k_closed : IsClosed k
d : ℝ
dpos : 0 < d
a : ι
hat : a ∈ t
hz : c a ∈ (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)
z_notmem_k : ¬c a ∈ k
this : ball x (R x) \ k ∈ 𝓝 (c a)
hd : closedBall (c a) d ⊆ ball x (R x) \ k
ad : r a ≤ min d (R (c a))
ax : B a ⊆ ball x (R x)
b : ι
bu : b ∈ u
ab : Set.Nonempty (B a ∩ B b)
bdiam : r a ≤ 2 * r b
bv : b ∈ v
b' : ↑v := { val := b, property := bv }
b'_notmem_w : ¬b' ∈ w
b'' : { a // ¬a ∈ w } := { val := b', property := b'_notmem_w }
zb : c a ∈ closedBall (c b) (3 * r b)
⊢ closedBall (c ↑↑b'') (3 * r ↑↑b'') ⊆ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
[PROOFSTEP]
exact subset_iUnion (fun a : { a // a ∉ w } => closedBall (c a) (3 * r a)) b''
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
M : (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x) ⊆ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
⊢ ↑↑μ ((s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)) ≤ ε
[PROOFSTEP]
haveI : Encodable v := (u_count.mono vu).toEncodable
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
s : Set α
t : Set ι
C : ℝ≥0
r : ι → ℝ
c : ι → α
B : ι → Set α
hB : ∀ (a : ι), a ∈ t → B a ⊆ closedBall (c a) (r a)
μB : ∀ (a : ι), a ∈ t → ↑↑μ (closedBall (c a) (3 * r a)) ≤ ↑C * ↑↑μ (B a)
ht : ∀ (a : ι), a ∈ t → Set.Nonempty (interior (B a))
h't : ∀ (a : ι), a ∈ t → IsClosed (B a)
hf : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ t ∧ r a ≤ ε ∧ c a = x
R : α → ℝ
hR0 : ∀ (x : α), 0 < R x
hR1 : ∀ (x : α), R x ≤ 1
hRμ : ∀ (x : α), ↑↑μ (closedBall x (20 * R x)) < ⊤
t' : Set ι := {a | a ∈ t ∧ r a ≤ R (c a)}
u : Set ι
ut' : u ⊆ t'
u_disj : PairwiseDisjoint u B
hu : ∀ (a : ι), a ∈ t' → ∃ b, b ∈ u ∧ Set.Nonempty (B a ∩ B b) ∧ r a ≤ 2 * r b
ut : u ⊆ t
u_count : Set.Countable u
x : α
x✝ : x ∈ s \ ⋃ (a : ι) (_ : a ∈ u), B a
v : Set ι := {a | a ∈ u ∧ Set.Nonempty (B a ∩ ball x (R x))}
vu : v ⊆ u
K : ℝ
μK : ↑↑μ (closedBall x K) < ⊤
hK : ∀ (a : ι), a ∈ u → Set.Nonempty (B a ∩ ball x (R x)) → B a ⊆ closedBall x K
ε : ℝ≥0∞
εpos : 0 < ε
I : ∑' (a : ↑v), ↑↑μ (B ↑a) < ⊤
w : Finset ↑v
hw : ∑' (a : { a // ¬a ∈ w }), ↑↑μ (B ↑↑a) < ε / ↑C
M : (s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x) ⊆ ⋃ (a : { a // ¬a ∈ w }), closedBall (c ↑↑a) (3 * r ↑↑a)
this : Encodable ↑v
⊢ ↑↑μ ((s \ ⋃ (a : ι) (_ : a ∈ u), B a) ∩ ball x (R x)) ≤ ε
[PROOFSTEP]
calc
  μ ((s \ ⋃ a ∈ u, B a) ∩ ball x (R x)) ≤ μ (⋃ a : { a // a ∉ w }, closedBall (c a) (3 * r a)) := measure_mono M
  _ ≤ ∑' a : { a // a ∉ w }, μ (closedBall (c a) (3 * r a)) := (measure_iUnion_le _)
  _ ≤ ∑' a : { a // a ∉ w }, C * μ (B a) := (ENNReal.tsum_le_tsum fun a => μB a (ut (vu a.1.2)))
  _ = C * ∑' a : { a // a ∉ w }, μ (B a) := ENNReal.tsum_mul_left
  _ ≤ C * (ε / C) := (mul_le_mul_left' hw.le _)
  _ ≤ ε := ENNReal.mul_div_le
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
x : α
ε : ℝ
εpos : ε > 0
⊢ ∃ y,
    y ∈
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x ∧
      y ⊆ closedBall x ε
[PROOFSTEP]
obtain ⟨r, μr, rpos, rε⟩ : ∃ r, μ (closedBall x (3 * r)) ≤ C * μ (closedBall x r) ∧ r ∈ Ioc (0 : ℝ) ε :=
  ((h x).and_eventually (Ioc_mem_nhdsWithin_Ioi ⟨le_rfl, εpos⟩)).exists
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
x : α
ε : ℝ
εpos : ε > 0
r : ℝ
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
rpos : 0 < r
rε : r ≤ ε
⊢ ∃ y,
    y ∈
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x ∧
      y ⊆ closedBall x ε
[PROOFSTEP]
refine' ⟨closedBall x r, ⟨isClosed_ball, _, ⟨r, Subset.rfl, μr⟩⟩, closedBall_subset_closedBall rε⟩
[GOAL]
case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
x : α
ε : ℝ
εpos : ε > 0
r : ℝ
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
rpos : 0 < r
rε : r ≤ ε
⊢ Set.Nonempty (interior (closedBall x r))
[PROOFSTEP]
exact (nonempty_ball.2 rpos).mono ball_subset_interior_closedBall
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
⊢ ∀ (s : Set α) (f : α → Set (Set α)),
    (∀ (x : α),
        x ∈ s →
          f x ⊆
            (fun x =>
                {a |
                  IsClosed a ∧
                    Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
              x) →
      (∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε) →
        ∃ t,
          (∀ (p : α × Set α), p ∈ t → p.fst ∈ s) ∧
            (PairwiseDisjoint t fun p => p.snd) ∧
              (∀ (p : α × Set α), p ∈ t → p.snd ∈ f p.fst) ∧ ↑↑μ (s \ ⋃ (p : α × Set α) (_ : p ∈ t), p.snd) = 0
[PROOFSTEP]
intro s f fsubset ffine
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
⊢ ∃ t,
    (∀ (p : α × Set α), p ∈ t → p.fst ∈ s) ∧
      (PairwiseDisjoint t fun p => p.snd) ∧
        (∀ (p : α × Set α), p ∈ t → p.snd ∈ f p.fst) ∧ ↑↑μ (s \ ⋃ (p : α × Set α) (_ : p ∈ t), p.snd) = 0
[PROOFSTEP]
let t : Set (ℝ × α × Set α) :=
  {p |
    p.2.2 ⊆ closedBall p.2.1 p.1 ∧
      μ (closedBall p.2.1 (3 * p.1)) ≤ C * μ p.2.2 ∧
        (interior p.2.2).Nonempty ∧ IsClosed p.2.2 ∧ p.2.2 ∈ f p.2.1 ∧ p.2.1 ∈ s}
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
⊢ ∃ t,
    (∀ (p : α × Set α), p ∈ t → p.fst ∈ s) ∧
      (PairwiseDisjoint t fun p => p.snd) ∧
        (∀ (p : α × Set α), p ∈ t → p.snd ∈ f p.fst) ∧ ↑↑μ (s \ ⋃ (p : α × Set α) (_ : p ∈ t), p.snd) = 0
[PROOFSTEP]
have A : ∀ x ∈ s, ∀ ε : ℝ, ε > 0 → ∃ p, p ∈ t ∧ p.1 ≤ ε ∧ p.2.1 = x :=
  by
  intro x xs ε εpos
  rcases ffine x xs ε εpos with ⟨a, ha, h'a⟩
  rcases fsubset x xs ha with ⟨a_closed, a_int, ⟨r, ar, μr⟩⟩
  refine' ⟨⟨min r ε, x, a⟩, ⟨_, _, a_int, a_closed, ha, xs⟩, min_le_right _ _, rfl⟩
  · rcases min_cases r ε with (h' | h') <;> rwa [h'.1]
  · apply le_trans (measure_mono (closedBall_subset_closedBall _)) μr
    exact mul_le_mul_of_nonneg_left (min_le_left _ _) zero_le_three
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
⊢ ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
[PROOFSTEP]
intro x xs ε εpos
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
⊢ ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
[PROOFSTEP]
rcases ffine x xs ε εpos with ⟨a, ha, h'a⟩
[GOAL]
case intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
⊢ ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
[PROOFSTEP]
rcases fsubset x xs ha with ⟨a_closed, a_int, ⟨r, ar, μr⟩⟩
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
a_closed : IsClosed a
a_int : Set.Nonempty (interior a)
r : ℝ
ar : a ⊆ closedBall x r
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a
⊢ ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
[PROOFSTEP]
refine' ⟨⟨min r ε, x, a⟩, ⟨_, _, a_int, a_closed, ha, xs⟩, min_le_right _ _, rfl⟩
[GOAL]
case intro.intro.intro.intro.intro.intro.refine'_1
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
a_closed : IsClosed a
a_int : Set.Nonempty (interior a)
r : ℝ
ar : a ⊆ closedBall x r
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a
⊢ (min r ε, x, a).snd.snd ⊆ closedBall (min r ε, x, a).snd.fst (min r ε, x, a).fst
[PROOFSTEP]
rcases min_cases r ε with (h' | h')
[GOAL]
case intro.intro.intro.intro.intro.intro.refine'_1.inl
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
a_closed : IsClosed a
a_int : Set.Nonempty (interior a)
r : ℝ
ar : a ⊆ closedBall x r
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a
h' : min r ε = r ∧ r ≤ ε
⊢ (min r ε, x, a).snd.snd ⊆ closedBall (min r ε, x, a).snd.fst (min r ε, x, a).fst
[PROOFSTEP]
rwa [h'.1]
[GOAL]
case intro.intro.intro.intro.intro.intro.refine'_1.inr
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
a_closed : IsClosed a
a_int : Set.Nonempty (interior a)
r : ℝ
ar : a ⊆ closedBall x r
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a
h' : min r ε = ε ∧ ε < r
⊢ (min r ε, x, a).snd.snd ⊆ closedBall (min r ε, x, a).snd.fst (min r ε, x, a).fst
[PROOFSTEP]
rwa [h'.1]
[GOAL]
case intro.intro.intro.intro.intro.intro.refine'_2
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
a_closed : IsClosed a
a_int : Set.Nonempty (interior a)
r : ℝ
ar : a ⊆ closedBall x r
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a
⊢ ↑↑μ (closedBall (min r ε, x, a).snd.fst (3 * (min r ε, x, a).fst)) ≤ ↑C * ↑↑μ (min r ε, x, a).snd.snd
[PROOFSTEP]
apply le_trans (measure_mono (closedBall_subset_closedBall _)) μr
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
x : α
xs : x ∈ s
ε : ℝ
εpos : ε > 0
a : Set α
ha : a ∈ f x
h'a : a ⊆ closedBall x ε
a_closed : IsClosed a
a_int : Set.Nonempty (interior a)
r : ℝ
ar : a ⊆ closedBall x r
μr : ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a
⊢ 3 * (min r ε, x, a).fst ≤ 3 * r
[PROOFSTEP]
exact mul_le_mul_of_nonneg_left (min_le_left _ _) zero_le_three
[GOAL]
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
⊢ ∃ t,
    (∀ (p : α × Set α), p ∈ t → p.fst ∈ s) ∧
      (PairwiseDisjoint t fun p => p.snd) ∧
        (∀ (p : α × Set α), p ∈ t → p.snd ∈ f p.fst) ∧ ↑↑μ (s \ ⋃ (p : α × Set α) (_ : p ∈ t), p.snd) = 0
[PROOFSTEP]
rcases exists_disjoint_covering_ae μ s t C (fun p => p.1) (fun p => p.2.1) (fun p => p.2.2) (fun p hp => hp.1)
    (fun p hp => hp.2.1) (fun p hp => hp.2.2.1) (fun p hp => hp.2.2.2.1) A with
  ⟨t', t't, _, t'_disj, μt'⟩
[GOAL]
case intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
⊢ ∃ t,
    (∀ (p : α × Set α), p ∈ t → p.fst ∈ s) ∧
      (PairwiseDisjoint t fun p => p.snd) ∧
        (∀ (p : α × Set α), p ∈ t → p.snd ∈ f p.fst) ∧ ↑↑μ (s \ ⋃ (p : α × Set α) (_ : p ∈ t), p.snd) = 0
[PROOFSTEP]
refine' ⟨(fun p : ℝ × α × Set α => p.2) '' t', _, _, _, _⟩
[GOAL]
case intro.intro.intro.intro.refine'_1
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
⊢ ∀ (p : α × Set α), p ∈ (fun p => p.snd) '' t' → p.fst ∈ s
[PROOFSTEP]
rintro - ⟨q, hq, rfl⟩
[GOAL]
case intro.intro.intro.intro.refine'_1.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
q : ℝ × α × Set α
hq : q ∈ t'
⊢ ((fun p => p.snd) q).fst ∈ s
[PROOFSTEP]
exact (t't hq).2.2.2.2.2
[GOAL]
case intro.intro.intro.intro.refine'_2
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
⊢ PairwiseDisjoint ((fun p => p.snd) '' t') fun p => p.snd
[PROOFSTEP]
rintro p ⟨q, hq, rfl⟩ p' ⟨q', hq', rfl⟩ hqq'
[GOAL]
case intro.intro.intro.intro.refine'_2.intro.intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
q : ℝ × α × Set α
hq : q ∈ t'
q' : ℝ × α × Set α
hq' : q' ∈ t'
hqq' : (fun p => p.snd) q ≠ (fun p => p.snd) q'
⊢ (Disjoint on fun p => p.snd) ((fun p => p.snd) q) ((fun p => p.snd) q')
[PROOFSTEP]
exact t'_disj hq hq' (ne_of_apply_ne _ hqq')
[GOAL]
case intro.intro.intro.intro.refine'_3
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
⊢ ∀ (p : α × Set α), p ∈ (fun p => p.snd) '' t' → p.snd ∈ f p.fst
[PROOFSTEP]
rintro - ⟨q, hq, rfl⟩
[GOAL]
case intro.intro.intro.intro.refine'_3.intro.intro
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
q : ℝ × α × Set α
hq : q ∈ t'
⊢ ((fun p => p.snd) q).snd ∈ f ((fun p => p.snd) q).fst
[PROOFSTEP]
exact (t't hq).2.2.2.2.1
[GOAL]
case intro.intro.intro.intro.refine'_4
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
⊢ ↑↑μ (s \ ⋃ (p : α × Set α) (_ : p ∈ (fun p => p.snd) '' t'), p.snd) = 0
[PROOFSTEP]
convert μt' using 3
[GOAL]
case h.e'_2.h.e'_3.h.e'_4
α : Type u_1
ι : Type u_2
inst✝⁴ : MetricSpace α
inst✝³ : MeasurableSpace α
inst✝² : OpensMeasurableSpace α
inst✝¹ : SecondCountableTopology α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
C : ℝ≥0
h : ∀ (x : α), ∃ᶠ (r : ℝ) in 𝓝[Ioi 0] 0, ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ (closedBall x r)
s : Set α
f : α → Set (Set α)
fsubset :
  ∀ (x : α),
    x ∈ s →
      f x ⊆
        (fun x =>
            {a |
              IsClosed a ∧
                Set.Nonempty (interior a) ∧ ∃ r, a ⊆ closedBall x r ∧ ↑↑μ (closedBall x (3 * r)) ≤ ↑C * ↑↑μ a})
          x
ffine : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ f x ∧ a ⊆ closedBall x ε
t : Set (ℝ × α × Set α) :=
  {p |
    p.snd.snd ⊆ closedBall p.snd.fst p.fst ∧
      ↑↑μ (closedBall p.snd.fst (3 * p.fst)) ≤ ↑C * ↑↑μ p.snd.snd ∧
        Set.Nonempty (interior p.snd.snd) ∧ IsClosed p.snd.snd ∧ p.snd.snd ∈ f p.snd.fst ∧ p.snd.fst ∈ s}
A : ∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → ∃ p, p ∈ t ∧ p.fst ≤ ε ∧ p.snd.fst = x
t' : Set (ℝ × α × Set α)
t't : t' ⊆ t
left✝ : Set.Countable t'
t'_disj : PairwiseDisjoint t' fun p => p.snd.snd
μt' : ↑↑μ (s \ ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd) = 0
⊢ ⋃ (p : α × Set α) (_ : p ∈ (fun p => p.snd) '' t'), p.snd = ⋃ (a : ℝ × α × Set α) (_ : a ∈ t'), a.snd.snd
[PROOFSTEP]
rw [biUnion_image]