Theorem: MeasureTheory.addHaar_image_le_lintegral_abs_det_fderiv_aux2
File: Mathlib/MeasureTheory/Function/Jacobian.lean

tactic: have :
  Tendsto (fun ε : ℝ≥0 => (∫⁻ x in s, ENNReal.ofReal (|(f' x).det|) ∂μ) + 2 * ε * μ s) (𝓝[>] 0)
    (𝓝 ((∫⁻ x in s, ENNReal.ofReal (|(f' x).det|) ∂μ) + 2 * (0 : ℝ≥0) * μ s)) := by
  apply Tendsto.mono_left _ nhdsWithin_le_nhds
  refine' tendsto_const_nhds.add _
  refine' ENNReal.Tendsto.mul_const _ (Or.inr h's)
  exact ENNReal.Tendsto.const_mul (ENNReal.tendsto_coe.2 tendsto_id) (Or.inr ENNReal.coe_ne_top)
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
⊢ ↑↑μ (f '' s) ≤ ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ

tactic: simp only [add_zero, MulZeroClass.zero_mul, MulZeroClass.mul_zero, ENNReal.coe_zero] at this
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
this :
  Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s)
    (𝓝[Ioi 0] 0) (𝓝 ((∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑0 * ↑↑μ s))
⊢ ↑↑μ (f '' s) ≤ ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ

tactic: apply ge_of_tendsto this
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
this :
  Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s)
    (𝓝[Ioi 0] 0) (𝓝 (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ))
⊢ ↑↑μ (f '' s) ≤ ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ

tactic: filter_upwards [self_mem_nhdsWithin]
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
this :
  Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s)
    (𝓝[Ioi 0] 0) (𝓝 (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ))
⊢ ∀ᶠ (c : ℝ≥0) in 𝓝[Ioi 0] 0,
    ↑↑μ (f '' s) ≤ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑c * ↑↑μ s

tactic: rintro ε (εpos : 0 < ε)
state_before: case h
E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
this :
  Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s)
    (𝓝[Ioi 0] 0) (𝓝 (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ))
⊢ ∀ (a : ℝ≥0),
    a ∈ Ioi 0 →
      ↑↑μ (f '' s) ≤ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑a * ↑↑μ s

tactic: exact addHaar_image_le_lintegral_abs_det_fderiv_aux1 μ hs hf' εpos
state_before: case h
E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
this :
  Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s)
    (𝓝[Ioi 0] 0) (𝓝 (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ))
ε : ℝ≥0
εpos : 0 < ε
⊢ ↑↑μ (f '' s) ≤ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s

tactic: apply Tendsto.mono_left _ nhdsWithin_le_nhds
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
⊢ Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s)
    (𝓝[Ioi 0] 0) (𝓝 ((∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑0 * ↑↑μ s))

tactic: refine' tendsto_const_nhds.add _
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
⊢ Tendsto (fun ε => (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑ε * ↑↑μ s) (𝓝 0)
    (𝓝 ((∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) + 2 * ↑0 * ↑↑μ s))

tactic: refine' ENNReal.Tendsto.mul_const _ (Or.inr h's)
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
⊢ Tendsto (fun ε => 2 * ↑ε * ↑↑μ s) (𝓝 0) (𝓝 (2 * ↑0 * ↑↑μ s))

tactic: exact ENNReal.Tendsto.const_mul (ENNReal.tendsto_coe.2 tendsto_id) (Or.inr ENNReal.coe_ne_top)
state_before: E : Type u_1
F : Type ?u.785438
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
h's : ↑↑μ s ≠ ⊤
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
⊢ Tendsto (fun ε => 2 * ↑ε) (𝓝 0) (𝓝 (2 * ↑0))