-- Mathlib.CategoryTheory.GradedObject.Associator
/-- Associator isomorphism for the action of bifunctors on graded objects.  -/
CategoryTheory.GradedObject.mapBifunctorAssociator : {C₁ : Type u_1} →
  {C₂ : Type u_2} →
    {C₁₂ : Type u_3} →
      {C₂₃ : Type u_4} →
        {C₃ : Type u_5} →
          {C₄ : Type u_6} →
            [inst : CategoryTheory.Category.{v_1, u_1} C₁] →
              [inst_1 : CategoryTheory.Category.{v_2, u_2} C₂] →
                [inst_2 : CategoryTheory.Category.{v_3, u_5} C₃] →
                  [inst_3 : CategoryTheory.Category.{v_4, u_6} C₄] →
                    [inst_4 : CategoryTheory.Category.{v_5, u_3} C₁₂] →
                      [inst_5 : CategoryTheory.Category.{v_6, u_4} C₂₃] →
                        {F₁₂ : CategoryTheory.Functor C₁ (CategoryTheory.Functor C₂ C₁₂)} →
                          {G : CategoryTheory.Functor C₁₂ (CategoryTheory.Functor C₃ C₄)} →
                            {F : CategoryTheory.Functor C₁ (CategoryTheory.Functor C₂₃ C₄)} →
                              {G₂₃ : CategoryTheory.Functor C₂ (CategoryTheory.Functor C₃ C₂₃)} →
                                (CategoryTheory.bifunctorComp₁₂ F₁₂ G ≅ CategoryTheory.bifunctorComp₂₃ F G₂₃) →
                                  {I₁ : Type u_7} →
                                    {I₂ : Type u_8} →
                                      {I₃ : Type u_9} →
                                        {J : Type u_10} →
                                          {r : I₁ × I₂ × I₃ → J} →
                                            (ρ₁₂ : CategoryTheory.GradedObject.BifunctorComp₁₂IndexData r) →
                                              (ρ₂₃ : CategoryTheory.GradedObject.BifunctorComp₂₃IndexData r) →
                                                (X₁ : CategoryTheory.GradedObject I₁ C₁) →
                                                  (X₂ : CategoryTheory.GradedObject I₂ C₂) →
                                                    (X₃ : CategoryTheory.GradedObject I₃ C₃) →
                                                      [inst_6 :
                                                          (((CategoryTheory.GradedObject.mapBifunctor F₁₂ I₁ I₂).obj
                                                                    X₁).obj
                                                                X₂).HasMap
                                                            ρ₁₂.p] →
                                                        [inst_7 :
                                                            (((CategoryTheory.GradedObject.mapBifunctor G ρ₁₂.I₁₂
                                                                          I₃).obj
                                                                      (CategoryTheory.GradedObject.mapBifunctorMapObj
                                                                        F₁₂ ρ₁₂.p X₁ X₂)).obj
                                                                  X₃).HasMap
                                                              ρ₁₂.q] →
                                                          [inst_8 :
                                                              (((CategoryTheory.GradedObject.mapBifunctor G₂₃ I₂ I₃).obj
                                                                        X₂).obj
                                                                    X₃).HasMap
                                                                ρ₂₃.p] →
                                                            [inst_9 :
                                                                (((CategoryTheory.GradedObject.mapBifunctor F I₁
                                                                              ρ₂₃.I₂₃).obj
                                                                          X₁).obj
                                                                      (CategoryTheory.GradedObject.mapBifunctorMapObj
                                                                        G₂₃ ρ₂₃.p X₂ X₃)).HasMap
                                                                  ρ₂₃.q] →
                                                              [H₁₂ :
                                                                  CategoryTheory.GradedObject.HasGoodTrifunctor₁₂Obj F₁₂
                                                                    G ρ₁₂ X₁ X₂ X₃] →
                                                                [H₂₃ :
                                                                    CategoryTheory.GradedObject.HasGoodTrifunctor₂₃Obj F
                                                                      G₂₃ ρ₂₃ X₁ X₂ X₃] →
                                                                  CategoryTheory.GradedObject.mapBifunctorMapObj G ρ₁₂.q
                                                                      (CategoryTheory.GradedObject.mapBifunctorMapObj
                                                                        F₁₂ ρ₁₂.p X₁ X₂)
                                                                      X₃ ≅
                                                                    CategoryTheory.GradedObject.mapBifunctorMapObj F
                                                                      ρ₂₃.q X₁
                                                                      (CategoryTheory.GradedObject.mapBifunctorMapObj
                                                                        G₂₃ ρ₂₃.p X₂ X₃)