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

tactic: have :
  Tendsto (fun ε : ℝ≥0 => μ (f '' s) + 2 * ε * μ s) (𝓝[>] 0)
    (𝓝 (μ (f '' s) + 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.830976
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
hf : InjOn f s
⊢ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) ≤ ↑↑μ (f '' s)

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.830976
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
hf : InjOn f s
this : Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (f '' s) + 2 * ↑0 * ↑↑μ s))
⊢ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) ≤ ↑↑μ (f '' s)

tactic: apply ge_of_tendsto this
state_before: E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
this : Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (f '' s)))
⊢ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) ≤ ↑↑μ (f '' s)

tactic: filter_upwards [self_mem_nhdsWithin]
state_before: E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
this : Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (f '' s)))
⊢ ∀ᶠ (c : ℝ≥0) in 𝓝[Ioi 0] 0,
    (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) ≤ ↑↑μ (f '' s) + 2 * ↑c * ↑↑μ s

tactic: rintro ε (εpos : 0 < ε)
state_before: case h
E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
this : Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (f '' s)))
⊢ ∀ (a : ℝ≥0),
    a ∈ Ioi 0 →
      (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) ≤ ↑↑μ (f '' s) + 2 * ↑a * ↑↑μ s

tactic: exact lintegral_abs_det_fderiv_le_addHaar_image_aux1 μ hs hf' hf εpos
state_before: case h
E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
this : Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (f '' s)))
ε : ℝ≥0
εpos : 0 < ε
⊢ (∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) ∂μ) ≤ ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s

tactic: apply Tendsto.mono_left _ nhdsWithin_le_nhds
state_before: E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
⊢ Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝[Ioi 0] 0) (𝓝 (↑↑μ (f '' s) + 2 * ↑0 * ↑↑μ s))

tactic: refine' tendsto_const_nhds.add _
state_before: E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
⊢ Tendsto (fun ε => ↑↑μ (f '' s) + 2 * ↑ε * ↑↑μ s) (𝓝 0) (𝓝 (↑↑μ (f '' s) + 2 * ↑0 * ↑↑μ s))

tactic: refine' ENNReal.Tendsto.mul_const _ (Or.inr h's)
state_before: E : Type u_1
F : Type ?u.830976
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
hf : InjOn f s
⊢ 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.830976
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
hf : InjOn f s
⊢ Tendsto (fun ε => 2 * ↑ε) (𝓝 0) (𝓝 (2 * ↑0))