noncomputable instance summandAction (i : ι) : MulAction (G i) (NormalWord d) :=
  { smul := fun g w => (equivPair i).symm
      { equivPair i w with
        head := g * (equivPair i w).head }
    one_smul := fun _ => by
      dsimp [instHSMul]
      rw [one_mul]
      exact (equivPair i).symm_apply_apply _
    mul_smul := fun _ _ _ => by
      dsimp [instHSMul]
      

Proof state:
ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
i : ι
x✝² x✝¹ : G i
x✝ : NormalWord d
⊢ (equivPair i).symm
      {
        toPair :=
          { head := x✝² * x✝¹ * ((equivPair i) x✝).head, tail := ((equivPair i) x✝).tail,
            fstIdx_ne := (_ : Word.fstIdx ((equivPair i) x✝).tail ≠ some i) },
        normalized :=
          (_ :
            ∀ (i_1 : ι) (g : G i_1),
              { fst := i_1, snd := g } ∈ ((equivPair i) x✝).tail.toList → g ∈ Transversal.set d i_1) } =
    (equivPair i).symm
      {
        toPair :=
          {
            head :=
              x✝² *
                ((equivPair i)
                    ((equivPair i).symm
                      {
                        toPair :=
                          { head := x✝¹ * ((equivPair i) x✝).head, tail := ((equivPair i) x✝).tail,
                            fstIdx_ne := (_ : Word.fstIdx ((equivPair i) x✝).tail ≠ some i) },
                        normalized :=
                          (_ :
                            ∀ (i_1 : ι) (g : G i_1),
                              { fst := i_1, snd := g } ∈ ((equivPair i) x✝).tail.toList →
                                g ∈ Transversal.set d i_1) })).head,
            tail :=
              ((equivPair i)
                  ((equivPair i).symm
                    {
                      toPair :=
                        { head := x✝¹ * ((equivPair i) x✝).head, tail := ((equivPair i) x✝).tail,
                          fstIdx_ne := (_ : Word.fstIdx ((equivPair i) x✝).tail ≠ some i) },
                      normalized :=
                        (_ :
                          ∀ (i_1 : ι) (g : G i_1),
                            { fst := i_1, snd := g } ∈ ((equivPair i) x✝).tail.toList →
                              g ∈ Transversal.set d i_1) })).tail,
            fstIdx_ne :=
              (_ :
                Word.fstIdx
                    ((equivPair i)
                        ((equivPair i).symm
                          {
                            toPair :=
                              { head := x✝¹ * ((equivPair i) x✝).head, tail := ((equivPair i) x✝).tail,
                                fstIdx_ne := (_ : Word.fstIdx ((equivPair i) x✝).tail ≠ some i) },
                            normalized :=
                              (_ :
                                ∀ (i_1 : ι) (g : G i_1),
                                  { fst := i_1, snd := g } ∈ ((equivPair i) x✝).tail.toList →
                                    g ∈ Transversal.set d i_1) })).tail ≠
                  some i) },
        normalized :=
          (_ :
            ∀ (i_1 : ι) (g : G i_1),
              { fst := i_1, snd := g } ∈
                  ((equivPair i)
                        ((equivPair i).symm
                          {
                            toPair :=
                              { head := x✝¹ * ((equivPair i) x✝).head, tail := ((equivPair i) x✝).tail,
                                fstIdx_ne := (_ : Word.fstIdx ((equivPair i) x✝).tail ≠ some i) },
                            normalized :=
                              (_ :
                                ∀ (i_2 : ι) (g : G i_2),
                                  { fst := i_2, snd := g } ∈ ((equivPair i) x✝).tail.toList →
                                    g ∈ Transversal.set d i_2) })).tail.toList →
                g ∈ Transversal.set d i_1) }

Next tactic:
simp [mul_assoc, Equiv.apply_symm_apply, Function.End.mul_def]