Theorem: HNNExtension.NormalWord.prod_smul
File: Mathlib/GroupTheory/HNNExtension.lean

tactic: induction g using induction_on generalizing w with
| of => simp [of_smul_eq_smul]
| t => simp [t_smul_eq_unitsSMul, prod_unitsSMul, mul_assoc]
| mul => simp_all [mul_smul, mul_assoc]
| inv x ih =>
  rw [← mul_right_inj x, ← ih]
  simp
state_before: G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
g : HNNExtension G A B φ
w : NormalWord d
⊢ ReducedWord.prod φ (g • w).toReducedWord = g * ReducedWord.prod φ w.toReducedWord
state_after: no goals

tactic: simp [of_smul_eq_smul]
state_before: case of
G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
g✝ : G
w : NormalWord d
⊢ ReducedWord.prod φ (of g✝ • w).toReducedWord = of g✝ * ReducedWord.prod φ w.toReducedWord
state_after: no goals

tactic: simp [t_smul_eq_unitsSMul, prod_unitsSMul, mul_assoc]
state_before: case t
G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
w : NormalWord d
⊢ ReducedWord.prod φ (t • w).toReducedWord = t * ReducedWord.prod φ w.toReducedWord
state_after: no goals

tactic: simp_all [mul_smul, mul_assoc]
state_before: case mul
G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
x✝ y✝ : HNNExtension G A B φ
a✝¹ : ∀ (w : NormalWord d), ReducedWord.prod φ (x✝ • w).toReducedWord = x✝ * ReducedWord.prod φ w.toReducedWord
a✝ : ∀ (w : NormalWord d), ReducedWord.prod φ (y✝ • w).toReducedWord = y✝ * ReducedWord.prod φ w.toReducedWord
w : NormalWord d
⊢ ReducedWord.prod φ ((x✝ * y✝) • w).toReducedWord = x✝ * y✝ * ReducedWord.prod φ w.toReducedWord
state_after: no goals

tactic: rw [← mul_right_inj x, ← ih]
state_before: case inv
G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
x : HNNExtension G A B φ
ih : ∀ (w : NormalWord d), ReducedWord.prod φ (x • w).toReducedWord = x * ReducedWord.prod φ w.toReducedWord
w : NormalWord d
⊢ ReducedWord.prod φ (x⁻¹ • w).toReducedWord = x⁻¹ * ReducedWord.prod φ w.toReducedWord
state_after: case inv
G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
x : HNNExtension G A B φ
ih : ∀ (w : NormalWord d), ReducedWord.prod φ (x • w).toReducedWord = x * ReducedWord.prod φ w.toReducedWord
w : NormalWord d
⊢ ReducedWord.prod φ (x • x⁻¹ • w).toReducedWord = x * (x⁻¹ * ReducedWord.prod φ w.toReducedWord)

tactic: simp
state_before: case inv
G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
x : HNNExtension G A B φ
ih : ∀ (w : NormalWord d), ReducedWord.prod φ (x • w).toReducedWord = x * ReducedWord.prod φ w.toReducedWord
w : NormalWord d
⊢ ReducedWord.prod φ (x • x⁻¹ • w).toReducedWord = x * (x⁻¹ * ReducedWord.prod φ w.toReducedWord)
state_after: no goals