Theorem: MeasureTheory.Measure.isHaarMeasure_eq_smul_isHaarMeasure
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: have K : PositiveCompacts G := Classical.arbitrary _
state_before: G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
⊢ ∃ c, c ≠ 0 ∧ c ≠ ⊤ ∧ μ = c • ν

tactic: have νpos : 0 < ν K := measure_pos_of_nonempty_interior _ K.interior_nonempty
state_before: G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
⊢ ∃ c, c ≠ 0 ∧ c ≠ ⊤ ∧ μ = c • ν

tactic: have νne : ν K ≠ ∞ := K.isCompact.measure_lt_top.ne
state_before: G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
⊢ ∃ c, c ≠ 0 ∧ c ≠ ⊤ ∧ μ = c • ν

tactic: refine' ⟨μ K / ν K, _, _, _⟩
state_before: G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
νne : ↑↑ν ↑K ≠ ⊤
⊢ ∃ c, c ≠ 0 ∧ c ≠ ⊤ ∧ μ = c • ν

tactic: simp only [νne, (μ.measure_pos_of_nonempty_interior K.interior_nonempty).ne', Ne.def,
  ENNReal.div_eq_zero_iff, not_false_iff, or_self_iff]
state_before: case refine'_1
G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
νne : ↑↑ν ↑K ≠ ⊤
⊢ ↑↑μ ↑K / ↑↑ν ↑K ≠ 0

tactic: simp only [div_eq_mul_inv, νpos.ne', (K.isCompact.measure_lt_top (μ := μ)).ne, or_self_iff,
  ENNReal.inv_eq_top, ENNReal.mul_eq_top, Ne.def, not_false_iff, and_false_iff,
  false_and_iff]
state_before: case refine'_2
G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
νne : ↑↑ν ↑K ≠ ⊤
⊢ ↑↑μ ↑K / ↑↑ν ↑K ≠ ⊤

tactic: calc
  μ = μ K • haarMeasure K := haarMeasure_unique μ K
  _ = (μ K / ν K) • ν K • haarMeasure K := by
    rw [smul_smul, div_eq_mul_inv, mul_assoc, ENNReal.inv_mul_cancel νpos.ne' νne, mul_one]
  _ = (μ K / ν K) • ν := by rw [← haarMeasure_unique ν K]
state_before: case refine'_3
G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
νne : ↑↑ν ↑K ≠ ⊤
⊢ μ = (↑↑μ ↑K / ↑↑ν ↑K) • ν

tactic: rw [smul_smul, div_eq_mul_inv, mul_assoc, ENNReal.inv_mul_cancel νpos.ne' νne, mul_one]
state_before: G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
νne : ↑↑ν ↑K ≠ ⊤
⊢ ↑↑μ ↑K • haarMeasure K = (↑↑μ ↑K / ↑↑ν ↑K) • ↑↑ν ↑K • haarMeasure K

tactic: rw [← haarMeasure_unique ν K]
state_before: G : Type u_1
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
inst✝⁷ : T2Space G
inst✝⁶ : TopologicalGroup G
inst✝⁵ : MeasurableSpace G
inst✝⁴ : BorelSpace G
inst✝³ : SecondCountableTopology G
inst✝² : LocallyCompactSpace G
μ ν : Measure G
inst✝¹ : IsHaarMeasure μ
inst✝ : IsHaarMeasure ν
K : PositiveCompacts G
νpos : 0 < ↑↑ν ↑K
νne : ↑↑ν ↑K ≠ ⊤
⊢ (↑↑μ ↑K / ↑↑ν ↑K) • ↑↑ν ↑K • haarMeasure K = (↑↑μ ↑K / ↑↑ν ↑K) • ν