-- Lean 4 proof step from Mathlib.CategoryTheory.Monoidal.Center (goal)
Goal:
C : Type u₁
inst : Category.{v₁, u₁} C
inst_1 : MonoidalCategory.{v₁, u₁} C
X₁ X₂ : Center.{v₁, u₁} C
f : X₁ ⟶ X₂
Y : Center.{v₁, u₁} C
U : C
⊢ monoidalComp (Y :=
      MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U))
      (𝟙
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
            (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
          U))
      (monoidalComp (Y :=
        MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
            U)
          (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
        (f.f ▷
            MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
              U ≫
          X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ◁
            (Y.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom)
        ((X₂.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom ▷
            Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ⊗≫
          𝟙
            (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
              (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
                (X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))))) =
    monoidalComp (Y :=
      MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U))
      (𝟙
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
            (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
          U))
      (monoidalComp (Y :=
        MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
            U)
          (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
        (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ◁
          (Y.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom)
        ((f.f ▷ U ≫ (X₂.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom) ▷
            Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ⊗≫
          𝟙
            (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
              (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
                (X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))))))
have rw : monoidalComp (Y :=
    MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
      (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U))
    (𝟙
      (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
          (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
        U))
    (monoidalComp (Y :=
      MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U)
        (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
      (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ◁
          (Y.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom ≫
        f.f ▷
          MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
      ((X₂.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom ▷
          Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ⊗≫
        𝟙
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
            (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
              (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))))) =
  monoidalComp (Y :=
    MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
      (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U))
    (𝟙
      (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
          (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
        U))
    (monoidalComp (Y :=
      MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U)
        (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
      (X₁.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ◁
        (Y.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom)
      ((f.f ▷ U ≫ (X₂.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom) ▷
          Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X) ⊗≫
        𝟙
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
            (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X₂.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
              (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))))))
Tactic: rw [← whisker_exchange]