-- Mathlib/CategoryTheory/Monoidal/Mon_.lean
theorem mul_braiding {X Y : Mon_ C} :
    (X ⊗ Y).mul ≫ (β_ X.X Y.X).hom = ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫ (Y ⊗ X).mul

Proof state:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (α_ X.X Y.X (X.X ⊗ Y.X)).hom ≫
      X.X ◁ (α_ Y.X X.X Y.X).inv ≫
        X.X ◁ (β_ Y.X X.X).hom ▷ Y.X ≫
          X.X ◁ (β_ X.X Y.X).hom ▷ Y.X ≫
            (α_ X.X (Y.X ⊗ X.X) Y.X).inv ≫
              (α_ X.X Y.X X.X).inv ▷ Y.X ≫
                (β_ X.X Y.X).hom ▷ X.X ▷ Y.X ≫
                  (α_ (Y.X ⊗ X.X) X.X Y.X).hom ≫
                    (α_ Y.X X.X (X.X ⊗ Y.X)).hom ≫
                      Y.X ◁ X.X ◁ (β_ X.X Y.X).hom ≫
                        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
                          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫
                            Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)

Tactic:
slice_lhs 3 4 =>
  rw [← MonoidalCategory.whiskerLeft_comp, ← comp_whiskerRight, SymmetricCategory.symmetry]

Result:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (α_ X.X Y.X (X.X ⊗ Y.X)).hom ≫
      X.X ◁ (α_ Y.X X.X Y.X).inv ≫
        ((((((((((X.X ◁ 𝟙 (Y.X ⊗ X.X) ▷ Y.X ≫ (α_ X.X (Y.X ⊗ X.X) Y.X).inv) ≫ (α_ X.X Y.X X.X).inv ▷ Y.X) ≫
                          (β_ X.X Y.X).hom ▷ X.X ▷ Y.X) ≫
                        (α_ (Y.X ⊗ X.X) X.X Y.X).hom) ≫
                      (α_ Y.X X.X (X.X ⊗ Y.X)).hom) ≫
                    Y.X ◁ X.X ◁ (β_ X.X Y.X).hom) ≫
                  Y.X ◁ (α_ X.X Y.X X.X).inv) ≫
                Y.X ◁ (β_ X.X Y.X).hom ▷ X.X) ≫
              Y.X ◁ (α_ Y.X X.X X.X).hom) ≫
            (α_ Y.X Y.X (X.X ⊗ X.X)).inv) ≫
          (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)

Proof state:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (tensorμ X.X Y.X X.X Y.X ≫ (X.mul ⊗ Y.mul)) ≫ (β_ X.X Y.X).hom =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫ tensorμ Y.X X.X Y.X X.X ≫ (Y.mul ⊗ X.mul)

Tactic:
simp only [tensorμ, Category.assoc, BraidedCategory.braiding_naturality,
  BraidedCategory.braiding_tensor_right, BraidedCategory.braiding_tensor_left,
  comp_whiskerRight, whisker_assoc, MonoidalCategory.whiskerLeft_comp, pentagon_assoc,
  pentagon_inv_hom_hom_hom_inv_assoc, Iso.inv_hom_id_assoc, whiskerLeft_hom_inv_assoc]

Result:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (α_ X.X Y.X (X.X ⊗ Y.X)).hom ≫
      X.X ◁ (α_ Y.X X.X Y.X).inv ≫
        X.X ◁ (β_ Y.X X.X).hom ▷ Y.X ≫
          X.X ◁ (β_ X.X Y.X).hom ▷ Y.X ≫
            (α_ X.X (Y.X ⊗ X.X) Y.X).inv ≫
              (α_ X.X Y.X X.X).inv ▷ Y.X ≫
                (β_ X.X Y.X).hom ▷ X.X ▷ Y.X ≫
                  (α_ (Y.X ⊗ X.X) X.X Y.X).hom ≫
                    (α_ Y.X X.X (X.X ⊗ Y.X)).hom ≫
                      Y.X ◁ X.X ◁ (β_ X.X Y.X).hom ≫
                        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
                          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫
                            Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)

Proof state:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (((((((((β_ X.X Y.X).hom ▷ (X.X ⊗ Y.X) ≫ (α_ (Y.X ⊗ X.X) X.X Y.X).inv) ≫ (α_ (Y.X ⊗ X.X) X.X Y.X).hom) ≫
                  (α_ Y.X X.X (X.X ⊗ Y.X)).hom) ≫
                Y.X ◁ X.X ◁ (β_ X.X Y.X).hom) ≫
              Y.X ◁ (α_ X.X Y.X X.X).inv) ≫
            Y.X ◁ (β_ X.X Y.X).hom ▷ X.X) ≫
          Y.X ◁ (α_ Y.X X.X X.X).hom) ≫
        (α_ Y.X Y.X (X.X ⊗ X.X)).inv) ≫
      (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)

Tactic:
slice_lhs 2 3 =>
  rw [Iso.inv_hom_id]

Result:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (β_ X.X Y.X).hom ▷ (X.X ⊗ Y.X) ≫
      ((((((𝟙 ((Y.X ⊗ X.X) ⊗ X.X ⊗ Y.X) ≫ (α_ Y.X X.X (X.X ⊗ Y.X)).hom) ≫ Y.X ◁ X.X ◁ (β_ X.X Y.X).hom) ≫
                Y.X ◁ (α_ X.X Y.X X.X).inv) ≫
              Y.X ◁ (β_ X.X Y.X).hom ▷ X.X) ≫
            Y.X ◁ (α_ Y.X X.X X.X).hom) ≫
          (α_ Y.X Y.X (X.X ⊗ X.X)).inv) ≫
        (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)

Proof state:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (β_ X.X Y.X).hom ▷ (X.X ⊗ Y.X) ≫
      ((((((Y.X ⊗ X.X) ◁ (β_ X.X Y.X).hom ≫ (α_ Y.X X.X (Y.X ⊗ X.X)).hom) ≫ Y.X ◁ (α_ X.X Y.X X.X).inv) ≫
              Y.X ◁ (β_ X.X Y.X).hom ▷ X.X) ≫
            Y.X ◁ (α_ Y.X X.X X.X).hom) ≫
          (α_ Y.X Y.X (X.X ⊗ X.X)).inv) ≫
        (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)

Tactic:
slice_lhs 1 2 =>
  rw [← tensorHom_def]

Result:
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : SymmetricCategory C
X Y : Mon_ C
⊢ (((((((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫ (α_ Y.X X.X (Y.X ⊗ X.X)).hom) ≫ Y.X ◁ (α_ X.X Y.X X.X).inv) ≫
            Y.X ◁ (β_ X.X Y.X).hom ▷ X.X) ≫
          Y.X ◁ (α_ Y.X X.X X.X).hom) ≫
        (α_ Y.X Y.X (X.X ⊗ X.X)).inv) ≫
      (Y.mul ⊗ X.mul) =
    ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫
      (α_ Y.X X.X (Y.X ⊗ X.X)).hom ≫
        Y.X ◁ (α_ X.X Y.X X.X).inv ≫
          Y.X ◁ (β_ X.X Y.X).hom ▷ X.X ≫ Y.X ◁ (α_ Y.X X.X X.X).hom ≫ (α_ Y.X Y.X (X.X ⊗ X.X)).inv ≫ (Y.mul ⊗ X.mul)