Theorem: compl_mul_closure_one_eq
File: Mathlib/Topology/Algebra/Group/Basic.lean

Proof steps:
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
⊢ tᶜ * closure {1} = tᶜ
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
⊢ tᶜ * closure {1} ⊆ tᶜ
tactic: refine Subset.antisymm ?_ (subset_mul_closure_one tᶜ)
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
⊢ tᶜ * closure {1} ⊆ tᶜ
state_after: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
⊢ (fun x x_1 => x * x_1) x g ∈ tᶜ
tactic: rintro - ⟨x, hx, g, hg, rfl⟩
state_before: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
⊢ (fun x x_1 => x * x_1) x g ∈ tᶜ
state_after: case intro.intro.intro.intro
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
H : (fun x x_1 => x * x_1) x g ∉ tᶜ
⊢ False
tactic: by_contra H
state_before: case intro.intro.intro.intro
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
H : (fun x x_1 => x * x_1) x g ∉ tᶜ
⊢ False
state_after: case intro.intro.intro.intro
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
H : (fun x x_1 => x * x_1) x g ∉ tᶜ
this : x ∈ t * closure {1}
⊢ False
tactic: have : x ∈ t * (closure {1} : Set G) := by
    rw [← Subgroup.coe_topologicalClosure_bot G] at hg ⊢
    simp only [smul_eq_mul, mem_compl_iff, not_not] at H
    exact ⟨x * g, H, g⁻¹, Subgroup.inv_mem _ hg, by simp⟩
state_before: case intro.intro.intro.intro
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
H : (fun x x_1 => x * x_1) x g ∉ tᶜ
this : x ∈ t * closure {1}
⊢ False
state_after: case intro.intro.intro.intro
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
H : (fun x x_1 => x * x_1) x g ∉ tᶜ
this : x ∈ t
⊢ False
tactic: rw [ht] at this
state_before: case intro.intro.intro.intro
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ t : Set G
ht : t * closure {1} = t
x : G
hx : x ∈ tᶜ
g : G
hg : g ∈ closure {1}
H : (fun x x_1 => x * x_1) x g ∉ tᶜ
this : x ∈ t
⊢ False
state_after: no goals
tactic: exact hx this