Theorem: MeasureTheory.QuotientMeasureEqMeasurePreimage.mulInvariantMeasure_quotient
File: Mathlib/MeasureTheory/Measure/Haar/Quotient.lean

tactic: ext A hA
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: obtain ⟨x₁, h⟩ := @Quotient.exists_rep _ (QuotientGroup.leftRel Γ) x
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: 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
⊢ (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: exact smulInvariantMeasure_quotient ν
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: rw [← h, Measure.map_apply (measurable_const_mul _) hA]
state_before: 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)
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
⊢ μ ((fun x => ⟦x₁⟧ * x) ⁻¹' A) = μ ((fun x => x₁ • x) ⁻¹' A)

tactic: simp [← MulAction.Quotient.coe_smul_out', ← Quotient.mk''_eq_mk]
state_before: 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
⊢ μ ((fun x => ⟦x₁⟧ * x) ⁻¹' A) = μ ((fun x => x₁ • x) ⁻¹' A)
state_after: no goals