Theorem: MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero_aux1
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: have A : Tendsto (fun r : ℝ => μ (s ∩ ({x} + r • t)) / μ (closedBall x r)) (𝓝[>] 0) (𝓝 0) := by
  apply
    tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds h
      (eventually_of_forall fun b => zero_le _)
  filter_upwards [self_mem_nhdsWithin]
  rintro r (rpos : 0 < r)
  apply mul_le_mul_right' (measure_mono (inter_subset_inter_right _ _)) _
  intro y hy
  have : y - x ∈ r • closedBall (0 : E) 1 := by
    apply smul_set_mono t_bound
    simpa [neg_add_eq_sub] using hy
  simpa only [smul_closedBall _ _ zero_le_one, Real.norm_of_nonneg rpos.le,
    mem_closedBall_iff_norm, mul_one, sub_zero, smul_zero]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 0)

tactic: have B :
  Tendsto (fun r : ℝ => μ (closedBall x r) / μ ({x} + r • u)) (𝓝[>] 0)
    (𝓝 (μ (closedBall x 1) / μ ({x} + u))) := by
  apply tendsto_const_nhds.congr' _
  filter_upwards [self_mem_nhdsWithin]
  rintro r (rpos : 0 < r)
  have : closedBall x r = {x} + r • closedBall (0 : E) 1 := by
    simp only [_root_.smul_closedBall, Real.norm_of_nonneg rpos.le, zero_le_one, add_zero,
      mul_one, singleton_add_closedBall, smul_zero]
  simp only [this, add_haar_singleton_add_smul_div_singleton_add_smul μ rpos.ne']
  simp only [add_haar_closedBall_center, image_add_left, measure_preimage_add, singleton_add]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 0)

tactic: have C : Tendsto (fun r : ℝ =>
      μ (s ∩ ({x} + r • t)) / μ (closedBall x r) * (μ (closedBall x r) / μ ({x} + r • u)))
    (𝓝[>] 0) (𝓝 (0 * (μ (closedBall x 1) / μ ({x} + u)))) := by
  apply ENNReal.Tendsto.mul A _ B (Or.inr ENNReal.zero_ne_top)
  simp only [ne_eq, not_true, singleton_add, image_add_left, measure_preimage_add, false_or,
    ENNReal.div_eq_top, h'u, false_or_iff, not_and, and_false_iff]
  intro aux
  exact (measure_closedBall_lt_top.ne aux).elim
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 0)

tactic: simp only [zero_mul] at C
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 (0 * (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u))))
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 0)

tactic: apply C.congr' _
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 0)

tactic: filter_upwards [self_mem_nhdsWithin]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
⊢ (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u))) =ᶠ[𝓝[Ioi 0] 0]
    fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)

tactic: rintro r (rpos : 0 < r)
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
⊢ ∀ (a : ℝ),
    a ∈ Ioi 0 →
      ↑↑μ (s ∩ ({x} + a • t)) / ↑↑μ (closedBall x a) * (↑↑μ (closedBall x a) / ↑↑μ ({x} + a • u)) =
        ↑↑μ (s ∩ ({x} + a • t)) / ↑↑μ ({x} + a • u)

tactic: calc
  μ (s ∩ ({x} + r • t)) / μ (closedBall x r) * (μ (closedBall x r) / μ ({x} + r • u)) =
      μ (closedBall x r) * (μ (closedBall x r))⁻¹ * (μ (s ∩ ({x} + r • t)) / μ ({x} + r • u)) :=
    by simp only [div_eq_mul_inv]; ring
  _ = μ (s ∩ ({x} + r • t)) / μ ({x} + r • u) := by
    rw [ENNReal.mul_inv_cancel (measure_closedBall_pos μ x rpos).ne'
        measure_closedBall_lt_top.ne,
      one_mul]
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
⊢ ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) =
    ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)

tactic: apply
  tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds h
    (eventually_of_forall fun b => zero_le _)
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)

tactic: filter_upwards [self_mem_nhdsWithin]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
⊢ ∀ᶠ (b : ℝ) in 𝓝[Ioi 0] 0,
    ↑↑μ (s ∩ ({x} + b • t)) / ↑↑μ (closedBall x b) ≤ ↑↑μ (s ∩ closedBall x b) / ↑↑μ (closedBall x b)

tactic: rintro r (rpos : 0 < r)
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
⊢ ∀ (a : ℝ),
    a ∈ Ioi 0 → ↑↑μ (s ∩ ({x} + a • t)) / ↑↑μ (closedBall x a) ≤ ↑↑μ (s ∩ closedBall x a) / ↑↑μ (closedBall x a)

tactic: apply mul_le_mul_right' (measure_mono (inter_subset_inter_right _ _)) _
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
r : ℝ
rpos : 0 < r
⊢ ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) ≤ ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)

tactic: intro y hy
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
r : ℝ
rpos : 0 < r
⊢ {x} + r • t ⊆ closedBall x r

tactic: have : y - x ∈ r • closedBall (0 : E) 1 := by
  apply smul_set_mono t_bound
  simpa [neg_add_eq_sub] using hy
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
r : ℝ
rpos : 0 < r
y : E
hy : y ∈ {x} + r • t
⊢ y ∈ closedBall x r

tactic: simpa only [smul_closedBall _ _ zero_le_one, Real.norm_of_nonneg rpos.le,
  mem_closedBall_iff_norm, mul_one, sub_zero, smul_zero]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
r : ℝ
rpos : 0 < r
y : E
hy : y ∈ {x} + r • t
this : y - x ∈ r • closedBall 0 1
⊢ y ∈ closedBall x r

tactic: apply smul_set_mono t_bound
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
r : ℝ
rpos : 0 < r
y : E
hy : y ∈ {x} + r • t
⊢ y - x ∈ r • closedBall 0 1

tactic: simpa [neg_add_eq_sub] using hy
state_before: case a
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
r : ℝ
rpos : 0 < r
y : E
hy : y ∈ {x} + r • t
⊢ y - x ∈ r • t

tactic: apply tendsto_const_nhds.congr' _
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
⊢ Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))

tactic: filter_upwards [self_mem_nhdsWithin]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
⊢ (fun x_1 => ↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)) =ᶠ[𝓝[Ioi 0] 0] fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)

tactic: rintro r (rpos : 0 < r)
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
⊢ ∀ (a : ℝ), a ∈ Ioi 0 → ↑↑μ (closedBall x 1) / ↑↑μ ({x} + u) = ↑↑μ (closedBall x a) / ↑↑μ ({x} + a • u)

tactic: have : closedBall x r = {x} + r • closedBall (0 : E) 1 := by
  simp only [_root_.smul_closedBall, Real.norm_of_nonneg rpos.le, zero_le_one, add_zero,
    mul_one, singleton_add_closedBall, smul_zero]
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
⊢ ↑↑μ (closedBall x 1) / ↑↑μ ({x} + u) = ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)

tactic: simp only [this, add_haar_singleton_add_smul_div_singleton_add_smul μ rpos.ne']
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
this : closedBall x r = {x} + r • closedBall 0 1
⊢ ↑↑μ (closedBall x 1) / ↑↑μ ({x} + u) = ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)

tactic: simp only [add_haar_closedBall_center, image_add_left, measure_preimage_add, singleton_add]
state_before: case h
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
this : closedBall x r = {x} + r • closedBall 0 1
⊢ ↑↑μ (closedBall x 1) / ↑↑μ ({x} + u) = ↑↑μ (closedBall 0 1) / ↑↑μ u

tactic: simp only [_root_.smul_closedBall, Real.norm_of_nonneg rpos.le, zero_le_one, add_zero,
  mul_one, singleton_add_closedBall, smul_zero]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
⊢ closedBall x r = {x} + r • closedBall 0 1

tactic: apply ENNReal.Tendsto.mul A _ B (Or.inr ENNReal.zero_ne_top)
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
⊢ Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 (0 * (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u))))

tactic: simp only [ne_eq, not_true, singleton_add, image_add_left, measure_preimage_add, false_or,
  ENNReal.div_eq_top, h'u, false_or_iff, not_and, and_false_iff]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
⊢ 0 ≠ 0 ∨ ↑↑μ (closedBall x 1) / ↑↑μ ({x} + u) ≠ ⊤

tactic: intro aux
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
⊢ ↑↑μ (closedBall x 1) = ⊤ → ¬¬↑↑μ u = ⊤

tactic: exact (measure_closedBall_lt_top.ne aux).elim
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
aux : ↑↑μ (closedBall x 1) = ⊤
⊢ ¬¬↑↑μ u = ⊤

tactic: simp only [div_eq_mul_inv]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
⊢ ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) =
    ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r))⁻¹ * (↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u))

tactic: ring
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
⊢ ↑↑μ (s ∩ ({x} + r • t)) * (↑↑μ (closedBall x r))⁻¹ * (↑↑μ (closedBall x r) * (↑↑μ ({x} + r • u))⁻¹) =
    ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r))⁻¹ * (↑↑μ (s ∩ ({x} + r • t)) * (↑↑μ ({x} + r • u))⁻¹)

tactic: rw [ENNReal.mul_inv_cancel (measure_closedBall_pos μ x rpos).ne'
    measure_closedBall_lt_top.ne,
  one_mul]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.2104866
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ s : Set E
x : E
h : Tendsto (fun r => ↑↑μ (s ∩ closedBall x r) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
t u : Set E
h'u : ↑↑μ u ≠ 0
t_bound : t ⊆ closedBall 0 1
A : Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r)) (𝓝[Ioi 0] 0) (𝓝 0)
B : Tendsto (fun r => ↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (closedBall x 1) / ↑↑μ ({x} + u)))
C :
  Tendsto (fun r => ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r) / ↑↑μ ({x} + r • u)))
    (𝓝[Ioi 0] 0) (𝓝 0)
r : ℝ
rpos : 0 < r
⊢ ↑↑μ (closedBall x r) * (↑↑μ (closedBall x r))⁻¹ * (↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)) =
    ↑↑μ (s ∩ ({x} + r • t)) / ↑↑μ ({x} + r • u)