-- Module: Mathlib.CategoryTheory.GradedObject.Monoidal
Goal:
I : Type u
inst : AddMonoid I
C : Type u_1
inst_1 : Category.{v_1, u_1} C
inst_2 : MonoidalCategory.{v_1, u_1} C
X₁ X₂ X₃ X₄ : GradedObject I C
inst_3 : HasTensor.{u, v_1, u_1} X₁ X₂
inst_4 : HasTensor.{u, v_1, u_1} X₂ X₃
inst_5 : HasTensor.{u, v_1, u_1} X₃ X₄
inst_6 : HasTensor.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ X₂) X₃
inst_7 : HasTensor.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ X₃)
inst_8 : HasTensor.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₂ X₃) X₄
inst_9 : HasTensor.{u, v_1, u_1} X₂ (tensorObj.{u, v_1, u_1} X₃ X₄)
inst_10 : HasTensor.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ X₂) X₃) X₄
inst_11 : HasTensor.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ X₃)) X₄
inst_12 : HasTensor.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₂ X₃) X₄)
inst_13 : HasTensor.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ (tensorObj.{u, v_1, u_1} X₃ X₄))
inst_14 : HasTensor.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ X₂) (tensorObj.{u, v_1, u_1} X₃ X₄)
inst_15 : HasGoodTensor₁₂Tensor.{u, v_1, u_1} X₁ X₂ X₃
inst_16 : HasGoodTensorTensor₂₃.{u, v_1, u_1} X₁ X₂ X₃
inst_17 : HasGoodTensor₁₂Tensor.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ X₃) X₄
inst_18 : HasGoodTensorTensor₂₃.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ X₃) X₄
inst_19 : HasGoodTensor₁₂Tensor.{u, v_1, u_1} X₂ X₃ X₄
inst_20 : HasGoodTensorTensor₂₃.{u, v_1, u_1} X₂ X₃ X₄
inst_21 : HasGoodTensor₁₂Tensor.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ X₂) X₃ X₄
inst_22 : HasGoodTensorTensor₂₃.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ X₂) X₃ X₄
inst_23 : HasGoodTensor₁₂Tensor.{u, v_1, u_1} X₁ X₂ (tensorObj.{u, v_1, u_1} X₃ X₄)
inst_24 : HasGoodTensorTensor₂₃.{u, v_1, u_1} X₁ X₂ (tensorObj.{u, v_1, u_1} X₃ X₄)
inst_25 : HasTensor₄ObjExt.{u, v_1, u_1} X₁ X₂ X₃ X₄
j i₁ i₂ i₃ i₄ : I
h : i₁ + i₂ + i₃ + i₄ = j
rw :
  X₁ i₁ ◁ Iso.inv (α_ (X₂ i₂) (X₃ i₃) (X₄ i₄)) ≫
    CategoryStruct.comp (Y :=
      MonoidalCategoryStruct.tensorObj.{v_1, u_1} (𝒞 := inst_1) (X₁ i₁)
        (MonoidalCategoryStruct.tensorObj.{v_1, u_1} (𝒞 := inst_1) (tensorObj.{u, v_1, u_1} X₂ X₃ (i₂ + i₃)) (X₄ i₄)))
      (X₁ i₁ ◁ ιTensorObj X₂ X₃ i₂ i₃ (i₂ + i₃) ⋯ ▷ X₄ i₄)
      (Iso.inv (α_ (X₁ i₁) (tensorObj.{u, v_1, u_1} X₂ X₃ (i₂ + i₃)) (X₄ i₄)) ≫
        CategoryStruct.comp (Y :=
          MonoidalCategoryStruct.tensorObj.{v_1, u_1} (𝒞 := inst_1)
            (tensorObj.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ X₃) (i₁ + i₂ + i₃)) (X₄ i₄))
          (ιTensorObj X₁ (tensorObj.{u, v_1, u_1} X₂ X₃) i₁ (i₂ + i₃) (i₁ + i₂ + i₃) ⋯ ▷ X₄ i₄)
          ((Iso.inv (associator X₁ X₂ X₃) (i₁ + i₂ + i₃) ⊗ₘ 𝟙 X₄ i₄) ≫
            ιTensorObj (tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ X₂) X₃) X₄ (i₁ + i₂ + i₃) i₄ j ⋯))
| CategoryStruct.comp (Y :=
    MonoidalCategoryStruct.tensorObj.{v_1, u_1} (𝒞 := inst_1) (X₁ i₁)
      (tensorObj.{u, v_1, u_1} X₂ (tensorObj.{u, v_1, u_1} X₃ X₄) (i₂ + i₃ + i₄)))
    (X₁ i₁ ◁ ιTensorObj₃ X₂ X₃ X₄ i₂ i₃ i₄ (i₂ + i₃ + i₄) ⋯)
    (CategoryStruct.comp (Y :=
      MonoidalCategoryStruct.tensorObj.{v_1, u_1} (𝒞 := inst_1) (X₁ i₁)
        (tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₂ X₃) X₄ (i₂ + i₃ + i₄)))
      (𝟙 (X₁ i₁) ⊗ₘ Iso.inv (associator X₂ X₃ X₄) (i₂ + i₃ + i₄))
      (CategoryStruct.comp (Y :=
        tensorObj.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₂ X₃) X₄) j)
        (ιTensorObj X₁ (tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₂ X₃) X₄) i₁ (i₂ + i₃ + i₄) j ⋯)
        (CategoryStruct.comp (Y :=
          tensorObj.{u, v_1, u_1} (tensorObj.{u, v_1, u_1} X₁ (tensorObj.{u, v_1, u_1} X₂ X₃)) X₄ j)
          (Iso.inv (associator X₁ (tensorObj.{u, v_1, u_1} X₂ X₃) X₄) j)
          (tensorHom (Iso.inv (associator X₁ X₂ X₃)) (𝟙 X₄) j))))

Tactic:
rw [id_tensorHom, ← MonoidalCategory.whiskerLeft_comp_assoc, ιTensorObj₃_associator_inv,
      ιTensorObj₃'_eq X₂ X₃ X₄ i₂ i₃ i₄ _ rfl _ rfl, MonoidalCategory.whiskerLeft_comp_assoc,
      MonoidalCategory.whiskerLeft_comp_assoc,
      ← ιTensorObj₃_eq_assoc X₁ (tensorObj X₂ X₃) X₄ i₁ (i₂ + i₃) i₄ j
        (by simp only [← add_assoc, h]) _ rfl, ιTensorObj₃_associator_inv_assoc,
      ιTensorObj₃'_eq_assoc X₁ (tensorObj X₂ X₃) X₄ i₁ (i₂ + i₃) i₄ j
        (by simp only [← add_assoc, h]) (i₁ + i₂ + i₃) (by rw [add_assoc]), ι_tensorHom]

Premises used: CategoryTheory.MonoidalCategory.id_tensorHom, CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_associator_inv, CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_associator_inv_assoc, CategoryTheory.GradedObject.Monoidal.tensorObj, HAdd.hAdd, CategoryTheory.MonoidalCategory.whiskerLeft_comp_assoc, CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_eq_assoc, CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_eq, CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_eq_assoc, CategoryTheory.GradedObject.Monoidal.ι_tensorHom, rfl