-- Module: Mathlib.CategoryTheory.Monoidal.Bimod
Goal:
C : Type u₁
inst : Category.{v₁, u₁} C
inst_1 : MonoidalCategory.{v₁, u₁} C
inst_2 : HasCoequalizers.{v₁, u₁} C
inst_3 : ∀ (X : C), PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorLeft X)
inst_4 : ∀ (X : C), PreservesColimitsOfSize.{0, 0, v₁, v₁, u₁, u₁} (tensorRight X)
W X Y Z : Mon.{v₁, u₁} C
M M' : Bimod W X
f : M ⟶ M'
N : Bimod X Y
P : Bimod Y Z
h :
  Eq (α :=
    tensorObj.{v₁, u₁} (𝒞 := inst) M.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
      coequalizer (X :=
        tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
          (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
        (Y :=
        tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
          (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
        (M'.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
          tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
            tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
        (Iso.hom (α_ M'.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
            M'.X ◁ TensorBimod.actLeft N P :
          tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
            tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))))
    (f.hom ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) ≫
        colimit.ι
          (parallelPair (X :=
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
            (Y :=
            tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
            (M'.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
            (Iso.hom (α_ M'.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
                M'.X ◁ TensorBimod.actLeft N P :
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))))
          WalkingParallelPair.one :
      tensorObj.{v₁, u₁} (𝒞 := inst) M.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
        colimit
          (parallelPair (X :=
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
            (Y :=
            tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
            (M'.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
            (Iso.hom (α_ M'.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
                M'.X ◁ TensorBimod.actLeft N P :
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                  (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))))
    (CategoryStruct.comp (Y :=
        coequalizer (X :=
          tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
            (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
          (Y :=
          tensorObj.{v₁, u₁} (𝒞 := inst) M.X
            (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
          (M.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
              tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
          (Iso.hom (α_ M.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
              M.X ◁ TensorBimod.actLeft N P :
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
              tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))))
        (coequalizer.π (M.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))
            (Iso.hom (α_ M.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
              M.X ◁ TensorBimod.actLeft N P) :
          tensorObj.{v₁, u₁} (𝒞 := inst) M.X
              (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
            coequalizer (X :=
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (Y :=
              tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (M.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
                tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                  tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (Iso.hom (α_ M.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
                  M.X ◁ TensorBimod.actLeft N P :
                tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                  tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))))
        (coequalizer.desc (AssociatorBimod.invAux M N P) ⋯ ≫
            CategoryStruct.comp (Y :=
              coequalizer (TensorBimod.actRight M' N ▷ P.X)
                (Iso.hom (α_ (coequalizer (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft)) Y.X P.X) ≫
                  coequalizer (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) ◁ P.actLeft))
              (colimMap
                  (parallelPairHom (TensorBimod.actRight M N ▷ P.X)
                    (Iso.hom
                        (α_ (coequalizer (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft)) Y.X P.X) ≫
                      coequalizer (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft) ◁ P.actLeft)
                    (TensorBimod.actRight M' N ▷ P.X)
                    (Iso.hom
                        (α_ (coequalizer (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft)) Y.X P.X) ≫
                      coequalizer (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) ◁ P.actLeft)
                    (colimMap
                          (parallelPairHom (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft)
                            (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) (f.hom ▷ X.X ▷ N.X)
                            (f.hom ▷ N.X) ⋯ ⋯) ▷
                        Y.X ▷
                      P.X)
                    (colimMap
                        (parallelPairHom (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft)
                          (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) (f.hom ▷ X.X ▷ N.X)
                          (f.hom ▷ N.X) ⋯ ⋯) ▷
                      P.X)
                    ⋯ ⋯) :
                colimit
                    (parallelPair (TensorBimod.actRight M N ▷ P.X)
                      (Iso.hom
                          (α_ (coequalizer (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft)) Y.X P.X) ≫
                        coequalizer (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft) ◁ P.actLeft)) ⟶
                  colimit
                    (parallelPair (TensorBimod.actRight M' N ▷ P.X)
                      (Iso.hom
                          (α_ (coequalizer (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft)) Y.X
                            P.X) ≫
                        coequalizer (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) ◁ P.actLeft)))
              (AssociatorBimod.hom M' N P :
                ((M'.tensorBimod N).tensorBimod P).X ⟶ (M'.tensorBimod (N.tensorBimod P)).X) :
          coequalizer (X :=
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (Y :=
              tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (M.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
                tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                  tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (Iso.hom (α_ M.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
                  M.X ◁ TensorBimod.actLeft N P :
                tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X)
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                  tensorObj.{v₁, u₁} (𝒞 := inst) M.X
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ⟶
            coequalizer (X :=
              tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (Y :=
              tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (M'.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
                tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                  tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
              (Iso.hom (α_ M'.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
                  M'.X ◁ TensorBimod.actLeft N P :
                tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
                  tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                    (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))) :
      tensorObj.{v₁, u₁} (𝒞 := inst) M.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
        coequalizer (X :=
          tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
            (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
          (Y :=
          tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
            (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
          (M'.actRight ▷ coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft) :
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
              tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)))
          (Iso.hom (α_ M'.X X.X (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))) ≫
              M'.X ◁ TensorBimod.actLeft N P :
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X)
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft)) ⟶
              tensorObj.{v₁, u₁} (𝒞 := inst) M'.X
                (coequalizer (N.actRight ▷ P.X) (Iso.hom (α_ N.X Y.X P.X) ≫ N.X ◁ P.actLeft))))
⊢ Eq (α :=
    tensorObj.{v₁, u₁} (𝒞 := inst) M.X (TensorBimod.X N P) ⟶
      TensorBimod.X M'
        { X := TensorBimod.X N P, actLeft := TensorBimod.actLeft N P, one_actLeft := ⋯, left_assoc := ⋯,
          actRight := TensorBimod.actRight N P, actRight_one := ⋯, right_assoc := ⋯, middle_assoc := ⋯ : Bimod X Z })
    (f.hom ▷ TensorBimod.X N P ≫
        colimit.ι
          (parallelPair (X :=
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X) (TensorBimod.X N P))
            (M'.actRight ▷ TensorBimod.X N P)
            (Iso.hom (α_ M'.X X.X (TensorBimod.X N P)) ≫ M'.X ◁ TensorBimod.actLeft N P))
          WalkingParallelPair.one :
      (parallelPair (X := tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M.X X.X) (TensorBimod.X N P))
              (M.actRight ▷ TensorBimod.X N P)
              (Iso.hom (α_ M.X X.X (TensorBimod.X N P)) ≫ M.X ◁ TensorBimod.actLeft N P)).obj
          WalkingParallelPair.one ⟶
        colimit
          (parallelPair (X :=
            tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) M'.X X.X) (TensorBimod.X N P))
            (M'.actRight ▷ TensorBimod.X N P)
            (Iso.hom (α_ M'.X X.X (TensorBimod.X N P)) ≫ M'.X ◁ TensorBimod.actLeft N P)))
    (coequalizer.π (M.actRight ▷ TensorBimod.X N P)
          (Iso.hom (α_ M.X X.X (TensorBimod.X N P)) ≫ M.X ◁ TensorBimod.actLeft N P) ≫
        AssociatorBimod.inv M N P ≫
          colimMap
              (parallelPairHom (TensorBimod.actRight M N ▷ P.X)
                (Iso.hom (α_ (TensorBimod.X M N) Y.X P.X) ≫ TensorBimod.X M N ◁ P.actLeft)
                (TensorBimod.actRight M' N ▷ P.X)
                (Iso.hom (α_ (TensorBimod.X M' N) Y.X P.X) ≫ TensorBimod.X M' N ◁ P.actLeft)
                (colimMap
                      (parallelPairHom (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft)
                        (M'.actRight ▷ N.X) (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) (f.hom ▷ X.X ▷ N.X)
                        (f.hom ▷ N.X) ⋯ ⋯) ▷
                    Y.X ▷
                  P.X)
                (colimMap
                    (parallelPairHom (M.actRight ▷ N.X) (Iso.hom (α_ M.X X.X N.X) ≫ M.X ◁ N.actLeft) (M'.actRight ▷ N.X)
                      (Iso.hom (α_ M'.X X.X N.X) ≫ M'.X ◁ N.actLeft) (f.hom ▷ X.X ▷ N.X) (f.hom ▷ N.X) ⋯ ⋯) ▷
                  P.X)
                ⋯ ⋯) ≫
            AssociatorBimod.hom M' N P :
      tensorObj.{v₁, u₁} (𝒞 := inst) M.X (TensorBimod.X N P) ⟶
        TensorBimod.X M'
          { X := TensorBimod.X N P, actLeft := TensorBimod.actLeft N P, one_actLeft := ⋯, left_assoc := ⋯,
            actRight := TensorBimod.actRight N P, actRight_one := ⋯, right_assoc := ⋯, middle_assoc := ⋯ : Bimod X Z })

Tactic:
dsimp [TensorBimod.X, AssociatorBimod.inv]

Premises used: Bimod.AssociatorBimod.inv, Bimod.TensorBimod.X