Theorem: MulEquiv.isHaarMeasure_map
File: Mathlib/MeasureTheory/Group/Measure.lean

Proof steps:
state_before: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
⊢ ∀ ⦃K : Set H⦄, IsCompact K → (map (⇑e) μ) K < ⊤
state_after: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
⊢ (map (⇑e) μ) K < ⊤
tactic: intro K hK
state_before: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
⊢ (map (⇑e) μ) K < ⊤
state_after: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
F : G ≃ₜ H :=
  let __src := e.toEquiv;
  { toEquiv := __src, continuous_toFun := he, continuous_invFun := hesymm }
⊢ (map (⇑e) μ) K < ⊤
tactic: let F : G ≃ₜ H := {
        e.toEquiv with
        continuous_toFun := he
        continuous_invFun := hesymm }
state_before: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
F : G ≃ₜ H :=
  let __src := e.toEquiv;
  { toEquiv := __src, continuous_toFun := he, continuous_invFun := hesymm }
⊢ (map (⇑e) μ) K < ⊤
state_after: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
F : G ≃ₜ H :=
  let __src := e.toEquiv;
  { toEquiv := __src, continuous_toFun := he, continuous_invFun := hesymm }
⊢ (map (⇑F.toMeasurableEquiv) μ) K < ⊤
tactic: change map F.toMeasurableEquiv μ K < ∞
state_before: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
F : G ≃ₜ H :=
  let __src := e.toEquiv;
  { toEquiv := __src, continuous_toFun := he, continuous_invFun := hesymm }
⊢ (map (⇑F.toMeasurableEquiv) μ) K < ⊤
state_after: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
F : G ≃ₜ H :=
  let __src := e.toEquiv;
  { toEquiv := __src, continuous_toFun := he, continuous_invFun := hesymm }
⊢ μ (⇑F.toMeasurableEquiv ⁻¹' K) < ⊤
tactic: rw [F.toMeasurableEquiv.map_apply K]
state_before: 𝕜 : Type u_1
G : Type u_2
H✝ : Type u_3
inst✝¹¹ : MeasurableSpace G
inst✝¹⁰ : MeasurableSpace H✝
inst✝⁹ : Group G
inst✝⁸ : TopologicalSpace G
μ : Measure G
inst✝⁷ : μ.IsHaarMeasure
inst✝⁶ : BorelSpace G
inst✝⁵ : TopologicalGroup G
H : Type u_4
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : MeasurableSpace H
inst✝¹ : BorelSpace H
inst✝ : TopologicalGroup H
e : G ≃* H
he : Continuous ⇑e
hesymm : Continuous ⇑e.symm
K : Set H
hK : IsCompact K
F : G ≃ₜ H :=
  let __src := e.toEquiv;
  { toEquiv := __src, continuous_toFun := he, continuous_invFun := hesymm }
⊢ μ (⇑F.toMeasurableEquiv ⁻¹' K) < ⊤
state_after: no goals
tactic: exact (F.isCompact_preimage.mpr hK).measure_lt_top