Theorem: MeasureTheory.hausdorffMeasure_smul_right_image
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: obtain rfl | hv := eq_or_ne v 0
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
⊢ μH[1] ((fun r => r • v) '' s) = ‖v‖₊ • μH[1] s
state_after: case inl
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
s : Set ℝ
⊢ μH[1] ((fun r => r • 0) '' s) = ‖0‖₊ • μH[1] s

case inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
⊢ μH[1] ((fun r => r • v) '' s) = ‖v‖₊ • μH[1] s

tactic: have hn : ‖v‖ ≠ 0 := norm_ne_zero_iff.mpr hv
state_before: case inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
⊢ μH[1] ((fun r => r • v) '' s) = ‖v‖₊ • μH[1] s
state_after: case inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
⊢ μH[1] ((fun r => r • v) '' s) = ‖v‖₊ • μH[1] s

tactic: have iso_smul : Isometry (LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) := by
  refine AddMonoidHomClass.isometry_of_norm _ fun x => (norm_smul _ _).trans ?_
  rw [norm_smul, norm_inv, norm_norm, inv_mul_cancel hn, mul_one, LinearMap.id_apply]
state_before: case inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
⊢ μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
state_after: case inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
iso_smul : Isometry ⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v))
⊢ μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s

tactic: rw [Set.image_smul, Measure.hausdorffMeasure_smul₀ zero_le_one hn, nnnorm_norm,
    NNReal.rpow_one, iso_smul.hausdorffMeasure_image (Or.inl <| zero_le_one' ℝ)]
state_before: case inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
iso_smul : Isometry ⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v))
⊢ μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
state_after: no goals

tactic: haveI := noAtoms_hausdorff E one_pos
state_before: case inl
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
s : Set ℝ
⊢ μH[1] ((fun r => r • 0) '' s) = ‖0‖₊ • μH[1] s
state_after: case inl
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
s : Set ℝ
this : NoAtoms μH[1]
⊢ μH[1] ((fun r => r • 0) '' s) = ‖0‖₊ • μH[1] s

tactic: obtain rfl | hs := s.eq_empty_or_nonempty
state_before: case inl
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
s : Set ℝ
this : NoAtoms μH[1]
⊢ μH[1] ((fun r => r • 0) '' s) = ‖0‖₊ • μH[1] s
state_after: case inl.inl
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
this : NoAtoms μH[1]
⊢ μH[1] ((fun r => r • 0) '' ∅) = ‖0‖₊ • μH[1] ∅

case inl.inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
s : Set ℝ
this : NoAtoms μH[1]
hs : s.Nonempty
⊢ μH[1] ((fun r => r • 0) '' s) = ‖0‖₊ • μH[1] s

tactic: simp [hs]
state_before: case inl.inr
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
s : Set ℝ
this : NoAtoms μH[1]
hs : s.Nonempty
⊢ μH[1] ((fun r => r • 0) '' s) = ‖0‖₊ • μH[1] s
state_after: no goals

tactic: simp
state_before: case inl.inl
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
this : NoAtoms μH[1]
⊢ μH[1] ((fun r => r • 0) '' ∅) = ‖0‖₊ • μH[1] ∅
state_after: no goals

tactic: simp only [hausdorffMeasure_real, nnreal_smul_coe_apply]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ μH[1] ((fun r => r • v) '' s) = ‖v‖₊ • μH[1] s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ μH[1] ((fun r => r • v) '' s) = ↑‖v‖₊ * volume s

tactic: convert this
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ μH[1] ((fun r => r • v) '' s) = ↑‖v‖₊ * volume s
state_after: case h.e'_2.h.e'_6
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ (fun r => r • v) '' s = (fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)

case h.e'_3.h.e'_1.h.e'_5
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ volume = μH[1]

tactic: simp only [image_smul, LinearMap.toSpanSingleton_apply, Set.image_image]
state_before: case h.e'_2.h.e'_6
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ (fun r => r • v) '' s = (fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)
state_after: case h.e'_2.h.e'_6
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ (fun r => r • v) '' s = (fun x => ‖v‖ • x • ‖v‖⁻¹ • v) '' s

tactic: ext e
state_before: case h.e'_2.h.e'_6
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ (fun r => r • v) '' s = (fun x => ‖v‖ • x • ‖v‖⁻¹ • v) '' s
state_after: case h.e'_2.h.e'_6.h
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
⊢ e ∈ (fun r => r • v) '' s ↔ e ∈ (fun x => ‖v‖ • x • ‖v‖⁻¹ • v) '' s

tactic: simp only [mem_image]
state_before: case h.e'_2.h.e'_6.h
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
⊢ e ∈ (fun r => r • v) '' s ↔ e ∈ (fun x => ‖v‖ • x • ‖v‖⁻¹ • v) '' s
state_after: case h.e'_2.h.e'_6.h
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
⊢ (∃ x ∈ s, x • v = e) ↔ ∃ x ∈ s, ‖v‖ • x • ‖v‖⁻¹ • v = e

tactic: refine ⟨fun ⟨x, h⟩ => ⟨x, ?_⟩, fun ⟨x, h⟩ => ⟨x, ?_⟩⟩
state_before: case h.e'_2.h.e'_6.h
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
⊢ (∃ x ∈ s, x • v = e) ↔ ∃ x ∈ s, ‖v‖ • x • ‖v‖⁻¹ • v = e
state_after: case h.e'_2.h.e'_6.h.refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, x • v = e
x : ℝ
h : x ∈ s ∧ x • v = e
⊢ x ∈ s ∧ ‖v‖ • x • ‖v‖⁻¹ • v = e

case h.e'_2.h.e'_6.h.refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, ‖v‖ • x • ‖v‖⁻¹ • v = e
x : ℝ
h : x ∈ s ∧ ‖v‖ • x • ‖v‖⁻¹ • v = e
⊢ x ∈ s ∧ x • v = e

tactic: rw [smul_comm (norm _), smul_comm (norm _), inv_smul_smul₀ hn]
state_before: case h.e'_2.h.e'_6.h.refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, x • v = e
x : ℝ
h : x ∈ s ∧ x • v = e
⊢ x ∈ s ∧ ‖v‖ • x • ‖v‖⁻¹ • v = e
state_after: case h.e'_2.h.e'_6.h.refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, x • v = e
x : ℝ
h : x ∈ s ∧ x • v = e
⊢ x ∈ s ∧ x • v = e

tactic: exact h
state_before: case h.e'_2.h.e'_6.h.refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, x • v = e
x : ℝ
h : x ∈ s ∧ x • v = e
⊢ x ∈ s ∧ x • v = e
state_after: no goals

tactic: rw [smul_comm (norm _), smul_comm (norm _), inv_smul_smul₀ hn] at h
state_before: case h.e'_2.h.e'_6.h.refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, ‖v‖ • x • ‖v‖⁻¹ • v = e
x : ℝ
h : x ∈ s ∧ ‖v‖ • x • ‖v‖⁻¹ • v = e
⊢ x ∈ s ∧ x • v = e
state_after: case h.e'_2.h.e'_6.h.refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, ‖v‖ • x • ‖v‖⁻¹ • v = e
x : ℝ
h : x ∈ s ∧ x • v = e
⊢ x ∈ s ∧ x • v = e

tactic: exact h
state_before: case h.e'_2.h.e'_6.h.refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
e : E
x✝ : ∃ x ∈ s, ‖v‖ • x • ‖v‖⁻¹ • v = e
x : ℝ
h : x ∈ s ∧ x • v = e
⊢ x ∈ s ∧ x • v = e
state_after: no goals

tactic: exact hausdorffMeasure_real.symm
state_before: case h.e'_3.h.e'_1.h.e'_5
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
this : μH[1] ((fun x => ‖v‖ • x) '' (⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v)) '' s)) = ‖v‖₊ • μH[1] s
⊢ volume = μH[1]
state_after: no goals

tactic: refine AddMonoidHomClass.isometry_of_norm _ fun x => (norm_smul _ _).trans ?_
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
⊢ Isometry ⇑(LinearMap.toSpanSingleton ℝ E (‖v‖⁻¹ • v))
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
x : ℝ
⊢ ‖LinearMap.id x‖ * ‖‖v‖⁻¹ • v‖ = ‖x‖

tactic: rw [norm_smul, norm_inv, norm_norm, inv_mul_cancel hn, mul_one, LinearMap.id_apply]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁹ : EMetricSpace X
inst✝⁸ : EMetricSpace Y
inst✝⁷ : MeasurableSpace X
inst✝⁶ : BorelSpace X
inst✝⁵ : MeasurableSpace Y
inst✝⁴ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
v : E
s : Set ℝ
hv : v ≠ 0
hn : ‖v‖ ≠ 0
x : ℝ
⊢ ‖LinearMap.id x‖ * ‖‖v‖⁻¹ • v‖ = ‖x‖
state_after: no goals