Theorem: MeasureTheory.AddQuotientMeasureEqMeasurePreimage.addInvariantMeasure_quotient
File: Mathlib/MeasureTheory/Measure/Haar/Quotient.lean

Proof steps:
state_before: G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
⊢ map (fun x_1 => x * x_1) μ = μ
state_after: case h
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
⊢ (map (fun x_1 => x * x_1) μ) A = μ A
tactic: ext A hA
state_before: case h
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
⊢ (map (fun x_1 => x * x_1) μ) A = μ A
state_after: case h.intro
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
x₁ : G
h : ⟦x₁⟧ = x
⊢ (map (fun x_1 => x * x_1) μ) A = μ A
tactic: obtain ⟨x₁, h⟩ := @Quotient.exists_rep _ (QuotientGroup.leftRel Γ) x
state_before: case h.intro
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
x₁ : G
h : ⟦x₁⟧ = x
⊢ (map (fun x_1 => x * x_1) μ) A = μ A
state_after: case h.e'_2
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
x₁ : G
h : ⟦x₁⟧ = x
⊢ (map (fun x_1 => x * x_1) μ) A = μ ((fun x => x₁ • x) ⁻¹' A)

case h.intro
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
x₁ : G
h : ⟦x₁⟧ = x
⊢ SMulInvariantMeasure G (G ⧸ Γ) μ
tactic: convert measure_preimage_smul μ x₁ A using 1
state_before: case h.intro
G : Type u_1
inst✝¹³ : Group G
inst✝¹² : MeasurableSpace G
inst✝¹¹ : TopologicalSpace G
inst✝¹⁰ : TopologicalGroup G
inst✝⁹ : BorelSpace G
inst✝⁸ : PolishSpace G
Γ : Subgroup G
inst✝⁷ : Countable ↥Γ
inst✝⁶ : Γ.Normal
inst✝⁵ : T2Space (G ⧸ Γ)
inst✝⁴ : SecondCountableTopology (G ⧸ Γ)
μ : Measure (G ⧸ Γ)
ν : Measure G
inst✝³ : ν.IsMulLeftInvariant
inst✝² : ν.IsMulRightInvariant
inst✝¹ : SigmaFinite ν
hasFun : HasFundamentalDomain (↥Γ.op) G ν
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
x : G ⧸ Γ
A : Set (G ⧸ Γ)
hA : MeasurableSet A
x₁ : G
h : ⟦x₁⟧ = x
⊢ SMulInvariantMeasure G (G ⧸ Γ) μ
state_after: no goals
tactic: exact smulInvariantMeasure_quotient ν