-- Module: Mathlib.CategoryTheory.Monoidal.Center
Goal:
C : Type u₁
inst : Category.{v₁, u₁} C
inst_1 : MonoidalCategory.{v₁, u₁} C
X Y : Center.{v₁, u₁} C
U U' : C
rw :
  monoidalComp (Y :=
      MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
        (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U)
          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)))
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U U')))
      (monoidalComp (Y :=
        MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U)
          (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 ▷ U')
        (monoidalComp (Y :=
          MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
            (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.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom ▷
              MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                U' ≫
            MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
                (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) ◁
              (Y.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U').hom)
          (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)
                (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U U')
                (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
                  (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                  (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))))))) =
    Iso.inv
        (α_
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
            (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
          U U') ≫
      (Iso.hom
              (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                (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 ≫
              Iso.inv
                  (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) 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) ≫
                  Iso.hom
                    (α_ U (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                      (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))) ▷
          U' ≫
        Iso.hom
            (α_ U
              (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
                (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
              U') ≫
          U ◁
              (Iso.hom
                  (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                    (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 ≫
                  Iso.inv
                      (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) 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) ≫
                      Iso.hom
                        (α_ U' (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                          (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))) ≫
            Iso.inv
              (α_ U 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)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U)
          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)))
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U U')))
      (monoidalComp (Y :=
        MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) U)
          (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 ▷ U')
        (monoidalComp (Y :=
          MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U
            (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))))
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                U ◁
              (Y.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U').hom ≫
            (X.snd (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X).β U).hom ▷
              MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U'
                (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
          (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)
                (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) U U')
                (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
                  (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                  (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))))))) =
    Iso.inv
        (α_
          (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst) (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
            (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
          U U') ≫
      (Iso.hom
              (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                (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 ≫
              Iso.inv
                  (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) 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) ≫
                  Iso.hom
                    (α_ U (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                      (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))) ▷
          U' ≫
        Iso.hom
            (α_ U
              (MonoidalCategoryStruct.tensorObj.{v₁, u₁} (𝒞 := inst)
                (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))
              U') ≫
          U ◁
              (Iso.hom
                  (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                    (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 ≫
                  Iso.inv
                      (α_ (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)) 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) ≫
                      Iso.hom
                        (α_ U' (X.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X))
                          (Y.fst (β := fun (X : C) ↦ HalfBraiding.{v₁, u₁} X)))) ≫
            Iso.inv
              (α_ U 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]

Premises used: CategoryTheory.MonoidalCategory.whisker_exchange