-- Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean
theorem MeasureTheory.measure_le_eq_lt [Nontrivial E] (r : ℝ) :
    μ {x : E | g x ≤ r} = μ {x : E | g x < r}

Proof state:
case h.e'_2
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
⊢ μ {x | g x ≤ r} = μ (⇑φ ⁻¹' Metric.closedBall 0 r)

Tactic:
congr!

Result:
case h.e'_2.h.e'_6.h.e'_1.h.a
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
x✝ : E
⊢ g x✝ ≤ r ↔ Metric.closedBall 0 r x✝

Proof state:
case h.e'_3
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
⊢ μ {x | g x < r} = μ (⇑φ ⁻¹' Metric.ball 0 r)

Tactic:
congr!

Result:
case h.e'_3.h.e'_6.h.e'_1.h.a
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
x✝ : E
⊢ g x✝ < r ↔ Metric.ball 0 r x✝

Proof state:
case h.e'_2
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
⊢ μ {x | g x ≤ r} = ν (Metric.closedBall 0 r)

Tactic:
rw [@Measure.map_apply E F mE _ μ φ _ _ measurableSet_closedBall]

Result:
case h.e'_2
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
⊢ μ {x | g x ≤ r} = μ (⇑φ ⁻¹' Metric.closedBall 0 r)

E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module ℝ E
inst✝⁶ : FiniteDimensional ℝ E
mE : MeasurableSpace E
tE : TopologicalSpace E
inst✝⁵ : IsTopologicalAddGroup E
inst✝⁴ : BorelSpace E
inst✝³ : T2Space E
inst✝² : ContinuousSMul ℝ E
μ : Measure E
inst✝¹ : μ.IsAddHaarMeasure
g : E → ℝ
h1 : g 0 = 0
h2 : ∀ (x : E), g (-x) = g x
h3 : ∀ (x y : E), g (x + y) ≤ g x + g y
h4 : ∀ {x : E}, g x = 0 → x = 0
h5 : ∀ (r : ℝ) (x : E), g (r • x) ≤ |r| * g x
inst✝ : Nontrivial E
r : ℝ
F : Type u_1 := E
this✝⁴ : NormedAddCommGroup F := NormedAddCommGroup.mk ⋯
this✝³ : NormedSpace ℝ F := NormedSpace.mk ⋯
this✝² : TopologicalSpace F := UniformSpace.toTopologicalSpace
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
φ : E ≃L[ℝ] F := (LinearEquiv.refl ℝ E).toContinuousLinearEquiv
ν : Measure F := map (⇑φ) μ
this : ν.IsAddHaarMeasure
⊢ Measurable ⇑φ