Theorem: Set.add_mem_addCenter
File: Mathlib/Algebra/Group/Center.lean

Proof steps:
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ z₁ * z₂ * a = z₂ * z₁ * a
state_after: no goals
tactic: rw [hz₁.comm]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ z₂ * z₁ * a = z₂ * (z₁ * a)
state_after: no goals
tactic: rw [hz₁.mid_assoc z₂]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ z₂ * (z₁ * a) = a * z₁ * z₂
state_after: no goals
tactic: rw [hz₁.comm, hz₂.comm]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ a * z₁ * z₂ = a * (z₁ * z₂)
state_after: no goals
tactic: rw [hz₂.right_assoc a z₁]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * z₂ * (b * c) = z₁ * (z₂ * (b * c))
state_after: no goals
tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * (z₂ * (b * c)) = z₁ * (z₂ * b * c)
state_after: no goals
tactic: rw [hz₂.left_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * (z₂ * b * c) = z₁ * (z₂ * b) * c
state_after: no goals
tactic: rw [hz₁.left_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * (z₂ * b) * c = z₁ * z₂ * b * c
state_after: no goals
tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * (z₁ * z₂) * c = a * z₁ * z₂ * c
state_after: no goals
tactic: rw [hz₁.mid_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * z₁ * z₂ * c = a * z₁ * (z₂ * c)
state_after: no goals
tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * z₁ * (z₂ * c) = a * (z₁ * (z₂ * c))
state_after: no goals
tactic: rw [hz₁.mid_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * (z₁ * (z₂ * c)) = a * (z₁ * z₂ * c)
state_after: no goals
tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * b * (z₁ * z₂) = a * b * z₁ * z₂
state_after: no goals
tactic: rw [hz₂.right_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * b * z₁ * z₂ = a * (b * z₁) * z₂
state_after: no goals
tactic: rw [hz₁.right_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * (b * z₁) * z₂ = a * (b * z₁ * z₂)
state_after: no goals
tactic: rw [hz₂.right_assoc]
state_before: M : Type u_1
S T : Set M
inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * (b * z₁ * z₂) = a * (b * (z₁ * z₂))
state_after: no goals
tactic: rw [hz₁.mid_assoc]