Theorem: MulAction.isClosedMap_quotient
File: Mathlib/Topology/Algebra/Group/Basic.lean

Proof steps:
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t : Set β
inst✝ : CompactSpace α
⊢ IsClosedMap Quotient.mk'
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ IsClosed (Quotient.mk' '' t)
tactic: intro t ht
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ IsClosed (Quotient.mk' '' t)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ IsClosed (⋃ g, (fun x => g • x) '' t)
tactic: rw [← quotientMap_quotient_mk'.isClosed_preimage, MulAction.quotient_preimage_image_eq_union_mul]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ IsClosed (⋃ g, (fun x => g • x) '' t)
state_after: case h.e'_3
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ ⋃ g, (fun x => g • x) '' t = univ • t
tactic: convert ht.smul_left_of_isCompact (isCompact_univ (X := α))
state_before: case h.e'_3
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ ⋃ g, (fun x => g • x) '' t = univ • t
state_after: case h.e'_3
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ ⋃ x ∈ univ, (fun x_1 => x • x_1) '' t = ⋃ a ∈ univ, a • t
tactic: rw [← biUnion_univ, ← iUnion_smul_left_image]
state_before: case h.e'_3
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : ContinuousInv α
inst✝¹ : ContinuousSMul α β
s : Set α
t✝ : Set β
inst✝ : CompactSpace α
t : Set β
ht : IsClosed t
⊢ ⋃ x ∈ univ, (fun x_1 => x • x_1) '' t = ⋃ a ∈ univ, a • t
state_after: no goals
tactic: rfl