Theorem: Group.normalClosure.is_normal
File: Mathlib/Deprecated/Subgroup.lean

tactic: induction' h with x hx x hx ihx x y hx hy ihx ihy
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n : G
h : n ∈ normalClosure s
g : G
⊢ g * n * g⁻¹ ∈ normalClosure s
state_after: case basic
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x : G
hx : x ∈ conjugatesOfSet s
⊢ g * x * g⁻¹ ∈ normalClosure s

case one
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g : G
⊢ g * 1 * g⁻¹ ∈ normalClosure s

case inv
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x : G
hx : InClosure (conjugatesOfSet s) x
ihx : g * x * g⁻¹ ∈ normalClosure s
⊢ g * x⁻¹ * g⁻¹ ∈ normalClosure s

case mul
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x y : G
hx : InClosure (conjugatesOfSet s) x
hy : InClosure (conjugatesOfSet s) y
ihx : g * x * g⁻¹ ∈ normalClosure s
ihy : g * y * g⁻¹ ∈ normalClosure s
⊢ g * (x * y) * g⁻¹ ∈ normalClosure s

tactic: exact conjugatesOfSet_subset_normalClosure (conj_mem_conjugatesOfSet hx)
state_before: case basic
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x : G
hx : x ∈ conjugatesOfSet s
⊢ g * x * g⁻¹ ∈ normalClosure s
state_after: no goals

tactic: simpa using (normalClosure.isSubgroup s).one_mem
state_before: case one
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g : G
⊢ g * 1 * g⁻¹ ∈ normalClosure s
state_after: no goals

tactic: rw [← conj_inv]
state_before: case inv
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x : G
hx : InClosure (conjugatesOfSet s) x
ihx : g * x * g⁻¹ ∈ normalClosure s
⊢ g * x⁻¹ * g⁻¹ ∈ normalClosure s
state_after: case inv
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x : G
hx : InClosure (conjugatesOfSet s) x
ihx : g * x * g⁻¹ ∈ normalClosure s
⊢ (g * x * g⁻¹)⁻¹ ∈ normalClosure s

tactic: exact (normalClosure.isSubgroup _).inv_mem ihx
state_before: case inv
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x : G
hx : InClosure (conjugatesOfSet s) x
ihx : g * x * g⁻¹ ∈ normalClosure s
⊢ (g * x * g⁻¹)⁻¹ ∈ normalClosure s
state_after: no goals

tactic: rw [← conj_mul]
state_before: case mul
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x y : G
hx : InClosure (conjugatesOfSet s) x
hy : InClosure (conjugatesOfSet s) y
ihx : g * x * g⁻¹ ∈ normalClosure s
ihy : g * y * g⁻¹ ∈ normalClosure s
⊢ g * (x * y) * g⁻¹ ∈ normalClosure s
state_after: case mul
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x y : G
hx : InClosure (conjugatesOfSet s) x
hy : InClosure (conjugatesOfSet s) y
ihx : g * x * g⁻¹ ∈ normalClosure s
ihy : g * y * g⁻¹ ∈ normalClosure s
⊢ g * x * g⁻¹ * (g * y * g⁻¹) ∈ normalClosure s

tactic: exact (normalClosure.isSubgroup _).toIsSubmonoid.mul_mem ihx ihy
state_before: case mul
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
s : Set G
inst✝ : Group G
n g x y : G
hx : InClosure (conjugatesOfSet s) x
hy : InClosure (conjugatesOfSet s) y
ihx : g * x * g⁻¹ ∈ normalClosure s
ihy : g * y * g⁻¹ ∈ normalClosure s
⊢ g * x * g⁻¹ * (g * y * g⁻¹) ∈ normalClosure s
state_after: no goals