Theorem: TopologicalGroup.t2Space_of_one_sep
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: rw [TopologicalGroup.t2Space_iff_one_closed, ← isOpen_compl_iff, isOpen_iff_mem_nhds]
state_before: G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
⊢ T2Space G

tactic: intro x x_not
state_before: G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
⊢ ∀ (a : G), a ∈ {1}ᶜ → {1}ᶜ ∈ 𝓝 a

tactic: have : x ≠ 1 := mem_compl_singleton_iff.mp x_not
state_before: G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
⊢ {1}ᶜ ∈ 𝓝 x

tactic: rcases H x this with ⟨U, U_in, xU⟩
state_before: G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
⊢ {1}ᶜ ∈ 𝓝 x

tactic: rw [← nhds_one_symm G] at U_in
state_before: case intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
U_in : U ∈ 𝓝 1
xU : ¬x ∈ U
⊢ {1}ᶜ ∈ 𝓝 x

tactic: rcases U_in with ⟨W, W_in, UW⟩
state_before: case intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
U_in : U ∈ comap Inv.inv (𝓝 1)
xU : ¬x ∈ U
⊢ {1}ᶜ ∈ 𝓝 x

tactic: rw [← nhds_translation_mul_inv]
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
xU : ¬x ∈ U
W : Set G
W_in : W ∈ 𝓝 1
UW : Inv.inv ⁻¹' W ⊆ U
⊢ {1}ᶜ ∈ 𝓝 x

tactic: use W, W_in
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
xU : ¬x ∈ U
W : Set G
W_in : W ∈ 𝓝 1
UW : Inv.inv ⁻¹' W ⊆ U
⊢ {1}ᶜ ∈ comap (fun y => y * x⁻¹) (𝓝 1)

tactic: rw [subset_compl_comm]
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
xU : ¬x ∈ U
W : Set G
W_in : W ∈ 𝓝 1
UW : Inv.inv ⁻¹' W ⊆ U
⊢ (fun y => y * x⁻¹) ⁻¹' W ⊆ {1}ᶜ

tactic: suffices x⁻¹ ∉ W by simpa
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
xU : ¬x ∈ U
W : Set G
W_in : W ∈ 𝓝 1
UW : Inv.inv ⁻¹' W ⊆ U
⊢ {1} ⊆ ((fun y => y * x⁻¹) ⁻¹' W)ᶜ

tactic: exact fun h => xU (UW h)
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this : x ≠ 1
U : Set G
xU : ¬x ∈ U
W : Set G
W_in : W ∈ 𝓝 1
UW : Inv.inv ⁻¹' W ⊆ U
⊢ ¬x⁻¹ ∈ W

tactic: simpa
state_before: G : Type u_1
inst✝² : CommGroup G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
H : ∀ (x : G), x ≠ 1 → ∃ U, U ∈ 𝓝 1 ∧ ¬x ∈ U
x : G
x_not : x ∈ {1}ᶜ
this✝ : x ≠ 1
U : Set G
xU : ¬x ∈ U
W : Set G
W_in : W ∈ 𝓝 1
UW : Inv.inv ⁻¹' W ⊆ U
this : ¬x⁻¹ ∈ W
⊢ {1} ⊆ ((fun y => y * x⁻¹) ⁻¹' W)ᶜ