Theorem: AddMonoidHom.isOpenMap_of_sigmaCompact
File: Mathlib/Topology/Algebra/Group/OpenMapping.lean

Proof steps:
state_before: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
⊢ IsOpenMap ⇑f
state_after: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
⊢ IsOpenMap ⇑f
tactic: let A : MulAction G H := MulAction.compHom _ f
state_before: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
⊢ IsOpenMap ⇑f
state_after: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this : ContinuousSMul G H
⊢ IsOpenMap ⇑f
tactic: have : ContinuousSMul G H := continuousSMul_compHom h'f
state_before: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this : ContinuousSMul G H
⊢ IsOpenMap ⇑f
state_after: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this✝ : ContinuousSMul G H
this : IsPretransitive G H
⊢ IsOpenMap ⇑f
tactic: have : IsPretransitive G H := isPretransitive_compHom hf
state_before: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this✝ : ContinuousSMul G H
this : IsPretransitive G H
⊢ IsOpenMap ⇑f
state_after: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this✝¹ : ContinuousSMul G H
this✝ : IsPretransitive G H
this : ⇑f = fun g => g • 1
⊢ IsOpenMap ⇑f
tactic: have : f = (fun (g : G) ↦ g • (1 : H)) := by simp [MulAction.compHom_smul_def]
state_before: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this✝¹ : ContinuousSMul G H
this✝ : IsPretransitive G H
this : ⇑f = fun g => g • 1
⊢ IsOpenMap ⇑f
state_after: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this✝¹ : ContinuousSMul G H
this✝ : IsPretransitive G H
this : ⇑f = fun g => g • 1
⊢ IsOpenMap fun g => g • 1
tactic: rw [this]
state_before: G : Type u_1
X : Type u_2
inst✝¹⁴ : TopologicalSpace G
inst✝¹³ : TopologicalSpace X
inst✝¹² : Group G
inst✝¹¹ : TopologicalGroup G
inst✝¹⁰ : MulAction G X
inst✝⁹ : SigmaCompactSpace G
inst✝⁸ : BaireSpace X
inst✝⁷ : T2Space X
inst✝⁶ : ContinuousSMul G X
inst✝⁵ : IsPretransitive G X
H : Type u_3
inst✝⁴ : Group H
inst✝³ : TopologicalSpace H
inst✝² : BaireSpace H
inst✝¹ : T2Space H
inst✝ : ContinuousMul H
f : G →* H
hf : Surjective ⇑f
h'f : Continuous ⇑f
A : MulAction G H := MulAction.compHom H f
this✝¹ : ContinuousSMul G H
this✝ : IsPretransitive G H
this : ⇑f = fun g => g • 1
⊢ IsOpenMap fun g => g • 1
state_after: no goals
tactic: exact isOpenMap_smul_of_sigmaCompact _