Documentation

Mathlib.CategoryTheory.GradedObject.Monoidal

The monoidal category structures on graded objects #

Assuming that C is a monoidal category and that I is an additive monoid, we introduce a partially defined tensor product on the category GradedObject I C: given X₁ and X₂ two objects in GradedObject I C, we define GradedObject.Monoidal.tensorObj X₁ X₂ under the assumption HasTensor X₁ X₂ that the coproduct of X₁ i ⊗ X₂ j for i + j = n exists for any n : I.

Under suitable assumptions about the existence of coproducts and the preservation of certain coproducts by the tensor products in C, we obtain a monoidal category structure on GradedObject I C. In particular, if C has finite coproducts to which the tensor product commutes, we obtain a monoidal category structure on GradedObject ℕ C.

@[reducible, inline]

The tensor product of two graded objects X₁ and X₂ exists if for any n, the coproduct of the objects X₁ i ⊗ X₂ j for i + j = n exists.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem CategoryTheory.GradedObject.hasTensor_of_iso {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (e₁ : X₁ Y₁) (e₂ : X₂ Y₂) [X₁.HasTensor X₂] :
    Y₁.HasTensor Y₂
    @[reducible, inline]
    noncomputable abbrev CategoryTheory.GradedObject.Monoidal.tensorObj {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ : GradedObject I C) [X₁.HasTensor X₂] :

    The tensor product of two graded objects.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def CategoryTheory.GradedObject.Monoidal.ιTensorObj {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ : GradedObject I C) [X₁.HasTensor X₂] (i₁ i₂ i₁₂ : I) (h : i₁ + i₂ = i₁₂) :
      MonoidalCategoryStruct.tensorObj (X₁ i₁) (X₂ i₂) tensorObj X₁ X₂ i₁₂

      The inclusion of a summand in a tensor product of two graded objects.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.GradedObject.Monoidal.tensorObj_ext {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ : GradedObject I C} [X₁.HasTensor X₂] {A : C} {j : I} (f g : tensorObj X₁ X₂ j A) (h : ∀ (i₁ i₂ : I) (hi : i₁ + i₂ = j), CategoryStruct.comp (ιTensorObj X₁ X₂ i₁ i₂ j hi) f = CategoryStruct.comp (ιTensorObj X₁ X₂ i₁ i₂ j hi) g) :
        f = g
        noncomputable def CategoryTheory.GradedObject.Monoidal.tensorObjDesc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ : GradedObject I C} [X₁.HasTensor X₂] {A : C} {k : I} (f : (i₁ i₂ : I) → i₁ + i₂ = k(MonoidalCategoryStruct.tensorObj (X₁ i₁) (X₂ i₂) A)) :
        tensorObj X₁ X₂ k A

        Constructor for morphisms from a tensor product of two graded objects.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.GradedObject.Monoidal.ι_tensorObjDesc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ : GradedObject I C} [X₁.HasTensor X₂] {A : C} {k : I} (f : (i₁ i₂ : I) → i₁ + i₂ = k(MonoidalCategoryStruct.tensorObj (X₁ i₁) (X₂ i₂) A)) (i₁ i₂ : I) (hi : i₁ + i₂ = k) :
          CategoryStruct.comp (ιTensorObj X₁ X₂ i₁ i₂ k hi) (tensorObjDesc f) = f i₁ i₂ hi
          @[simp]
          theorem CategoryTheory.GradedObject.Monoidal.ι_tensorObjDesc_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ : GradedObject I C} [X₁.HasTensor X₂] {A : C} {k : I} (f : (i₁ i₂ : I) → i₁ + i₂ = k(MonoidalCategoryStruct.tensorObj (X₁ i₁) (X₂ i₂) A)) (i₁ i₂ : I) (hi : i₁ + i₂ = k) {Z : C} (h : A Z) :
          CategoryStruct.comp (ιTensorObj X₁ X₂ i₁ i₂ k hi) (CategoryStruct.comp (tensorObjDesc f) h) = CategoryStruct.comp (f i₁ i₂ hi) h
          noncomputable def CategoryTheory.GradedObject.Monoidal.tensorHom {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (f : X₁ X₂) (g : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] :
          tensorObj X₁ Y₁ tensorObj X₂ Y₂

          The morphism tensorObj X₁ Y₁ ⟶ tensorObj X₂ Y₂ induced by morphisms of graded objects f : X₁ ⟶ X₂ and g : Y₁ ⟶ Y₂.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem CategoryTheory.GradedObject.Monoidal.ι_tensorHom {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (f : X₁ X₂) (g : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] (i₁ i₂ i₁₂ : I) (h : i₁ + i₂ = i₁₂) :
            CategoryStruct.comp (ιTensorObj X₁ Y₁ i₁ i₂ i₁₂ h) (tensorHom f g i₁₂) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (f i₁) (g i₂)) (ιTensorObj X₂ Y₂ i₁ i₂ i₁₂ h)
            @[simp]
            theorem CategoryTheory.GradedObject.Monoidal.ι_tensorHom_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (f : X₁ X₂) (g : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] (i₁ i₂ i₁₂ : I) (h : i₁ + i₂ = i₁₂) {Z : C} (h✝ : tensorObj X₂ Y₂ i₁₂ Z) :
            CategoryStruct.comp (ιTensorObj X₁ Y₁ i₁ i₂ i₁₂ h) (CategoryStruct.comp (tensorHom f g i₁₂) h✝) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (f i₁) (g i₂)) (CategoryStruct.comp (ιTensorObj X₂ Y₂ i₁ i₂ i₁₂ h) h✝)
            @[reducible, inline]
            noncomputable abbrev CategoryTheory.GradedObject.Monoidal.whiskerLeft {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X : GradedObject I C) {Y₁ Y₂ : GradedObject I C} (φ : Y₁ Y₂) [X.HasTensor Y₁] [X.HasTensor Y₂] :
            tensorObj X Y₁ tensorObj X Y₂

            The morphism tensorObj X Y₁ ⟶ tensorObj X Y₂ induced by a morphism of graded objects φ : Y₁ ⟶ Y₂.

            Equations
            Instances For
              @[reducible, inline]
              noncomputable abbrev CategoryTheory.GradedObject.Monoidal.whiskerRight {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ : GradedObject I C} (φ : X₁ X₂) (Y : GradedObject I C) [X₁.HasTensor Y] [X₂.HasTensor Y] :
              tensorObj X₁ Y tensorObj X₂ Y

              The morphism tensorObj X₁ Y ⟶ tensorObj X₂ Y induced by a morphism of graded objects φ : X₁ ⟶ X₂.

              Equations
              Instances For
                theorem CategoryTheory.GradedObject.Monoidal.tensor_comp {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} (f₁ : X₁ X₂) (f₂ : X₂ X₃) (g₁ : Y₁ Y₂) (g₂ : Y₂ Y₃) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] [X₃.HasTensor Y₃] :
                theorem CategoryTheory.GradedObject.Monoidal.tensor_comp_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} (f₁ : X₁ X₂) (f₂ : X₂ X₃) (g₁ : Y₁ Y₂) (g₂ : Y₂ Y₃) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] [X₃.HasTensor Y₃] {Z : GradedObject I C} (h : tensorObj X₃ Y₃ Z) :
                noncomputable def CategoryTheory.GradedObject.Monoidal.tensorIso {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (e : X₁ X₂) (e' : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] :
                tensorObj X₁ Y₁ tensorObj X₂ Y₂

                The isomorphism tensorObj X₁ Y₁ ≅ tensorObj X₂ Y₂ induced by isomorphisms of graded objects e : X₁ ≅ X₂ and e' : Y₁ ≅ Y₂.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem CategoryTheory.GradedObject.Monoidal.tensorIso_inv {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (e : X₁ X₂) (e' : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] (i : I) :
                  (tensorIso e e').inv i = tensorHom e.inv e'.inv i
                  @[simp]
                  theorem CategoryTheory.GradedObject.Monoidal.tensorIso_hom {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (e : X₁ X₂) (e' : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] (i : I) :
                  (tensorIso e e').hom i = tensorHom e.hom e'.hom i
                  theorem CategoryTheory.GradedObject.Monoidal.tensorHom_def {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ Y₁ Y₂ : GradedObject I C} (f : X₁ X₂) (g : Y₁ Y₂) [X₁.HasTensor Y₁] [X₂.HasTensor Y₂] [X₂.HasTensor Y₁] :

                  This is the addition map I × I × I → I for an additive monoid I.

                  Equations
                  Instances For
                    @[reducible]

                    Auxiliary definition for associator.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[reducible]

                      Auxiliary definition for associator.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[reducible]
                        def CategoryTheory.GradedObject.Monoidal.triangleIndexData (I : Type u) [AddMonoid I] :
                        TriangleIndexData r₁₂₃ fun (x : I × I) => match x with | (i₁, i₃) => i₁ + i₃

                        Auxiliary definition for associator.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]

                          Given three graded objects X₁, X₂, X₃ in GradedObject I C, this is the assumption that for all i₁₂ : I and i₃ : I, the tensor product functor - ⊗ X₃ i₃ commutes with the coproduct of the objects X₁ i₁ ⊗ X₂ i₂ such that i₁ + i₂ = i₁₂.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[reducible, inline]

                            Given three graded objects X₁, X₂, X₃ in GradedObject I C, this is the assumption that for all i₁ : I and i₂₃ : I, the tensor product functor X₁ i₁ ⊗ - commutes with the coproduct of the objects X₂ i₂ ⊗ X₃ i₃ such that i₂ + i₃ = i₂₃.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              noncomputable def CategoryTheory.GradedObject.Monoidal.ιTensorObj₃ {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) :
                              MonoidalCategoryStruct.tensorObj (X₁ i₁) (MonoidalCategoryStruct.tensorObj (X₂ i₂) (X₃ i₃)) tensorObj X₁ (tensorObj X₂ X₃) j

                              The inclusion X₁ i₁ ⊗ X₂ i₂ ⊗ X₃ i₃ ⟶ tensorObj X₁ (tensorObj X₂ X₃) j when i₁ + i₂ + i₃ = j.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_eq {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) (i₂₃ : I) (h' : i₂ + i₃ = i₂₃) :
                                ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h = CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft (X₁ i₁) (ιTensorObj X₂ X₃ i₂ i₃ i₂₃ h')) (ιTensorObj X₁ (tensorObj X₂ X₃) i₁ i₂₃ j )
                                theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_eq_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) (i₂₃ : I) (h' : i₂ + i₃ = i₂₃) {Z : C} (h✝ : tensorObj X₁ (tensorObj X₂ X₃) j Z) :
                                CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) h✝ = CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft (X₁ i₁) (ιTensorObj X₂ X₃ i₂ i₃ i₂₃ h')) (CategoryStruct.comp (ιTensorObj X₁ (tensorObj X₂ X₃) i₁ i₂₃ j ) h✝)
                                @[simp]
                                theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_tensorHom {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [Y₂.HasTensor Y₃] [Y₁.HasTensor (tensorObj Y₂ Y₃)] (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (f₃ : X₃ Y₃) (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) :
                                CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) (tensorHom f₁ (tensorHom f₂ f₃) j) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (f₁ i₁) (MonoidalCategoryStruct.tensorHom (f₂ i₂) (f₃ i₃))) (ιTensorObj₃ Y₁ Y₂ Y₃ i₁ i₂ i₃ j h)
                                @[simp]
                                theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_tensorHom_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [Y₂.HasTensor Y₃] [Y₁.HasTensor (tensorObj Y₂ Y₃)] (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (f₃ : X₃ Y₃) (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) {Z : C} (h✝ : tensorObj Y₁ (tensorObj Y₂ Y₃) j Z) :
                                CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) (CategoryStruct.comp (tensorHom f₁ (tensorHom f₂ f₃) j) h✝) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (f₁ i₁) (MonoidalCategoryStruct.tensorHom (f₂ i₂) (f₃ i₃))) (CategoryStruct.comp (ιTensorObj₃ Y₁ Y₂ Y₃ i₁ i₂ i₃ j h) h✝)
                                theorem CategoryTheory.GradedObject.Monoidal.tensorObj₃_ext {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ : GradedObject I C} [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] {j : I} {A : C} (f g : tensorObj X₁ (tensorObj X₂ X₃) j A) [H : X₁.HasGoodTensorTensor₂₃ X₂ X₃] (h : ∀ (i₁ i₂ i₃ : I) (hi : i₁ + i₂ + i₃ = j), CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j hi) f = CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j hi) g) :
                                f = g
                                noncomputable def CategoryTheory.GradedObject.Monoidal.ιTensorObj₃' {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) :
                                MonoidalCategoryStruct.tensorObj (MonoidalCategoryStruct.tensorObj (X₁ i₁) (X₂ i₂)) (X₃ i₃) tensorObj (tensorObj X₁ X₂) X₃ j

                                The inclusion X₁ i₁ ⊗ X₂ i₂ ⊗ X₃ i₃ ⟶ tensorObj (tensorObj X₁ X₂) X₃ j when i₁ + i₂ + i₃ = j.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_eq {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) (i₁₂ : I) (h' : i₁ + i₂ = i₁₂) :
                                  ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h = CategoryStruct.comp (MonoidalCategoryStruct.whiskerRight (ιTensorObj X₁ X₂ i₁ i₂ i₁₂ h') (X₃ i₃)) (ιTensorObj (tensorObj X₁ X₂) X₃ i₁₂ i₃ j )
                                  theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_eq_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) (i₁₂ : I) (h' : i₁ + i₂ = i₁₂) {Z : C} (h✝ : tensorObj (tensorObj X₁ X₂) X₃ j Z) :
                                  CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) h✝ = CategoryStruct.comp (MonoidalCategoryStruct.whiskerRight (ιTensorObj X₁ X₂ i₁ i₂ i₁₂ h') (X₃ i₃)) (CategoryStruct.comp (ιTensorObj (tensorObj X₁ X₂) X₃ i₁₂ i₃ j ) h✝)
                                  @[simp]
                                  theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_tensorHom {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [Y₁.HasTensor Y₂] [(tensorObj Y₁ Y₂).HasTensor Y₃] (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (f₃ : X₃ Y₃) (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) :
                                  CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) (tensorHom (tensorHom f₁ f₂) f₃ j) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (MonoidalCategoryStruct.tensorHom (f₁ i₁) (f₂ i₂)) (f₃ i₃)) (ιTensorObj₃' Y₁ Y₂ Y₃ i₁ i₂ i₃ j h)
                                  @[simp]
                                  theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_tensorHom_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [Y₁.HasTensor Y₂] [(tensorObj Y₁ Y₂).HasTensor Y₃] (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (f₃ : X₃ Y₃) (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) {Z : C} (h✝ : tensorObj (tensorObj Y₁ Y₂) Y₃ j Z) :
                                  CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) (CategoryStruct.comp (tensorHom (tensorHom f₁ f₂) f₃ j) h✝) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (MonoidalCategoryStruct.tensorHom (f₁ i₁) (f₂ i₂)) (f₃ i₃)) (CategoryStruct.comp (ιTensorObj₃' Y₁ Y₂ Y₃ i₁ i₂ i₃ j h) h✝)
                                  theorem CategoryTheory.GradedObject.Monoidal.tensorObj₃'_ext {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ : GradedObject I C} [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] {j : I} {A : C} (f g : tensorObj (tensorObj X₁ X₂) X₃ j A) [H : X₁.HasGoodTensor₁₂Tensor X₂ X₃] (h : ∀ (i₁ i₂ i₃ : I) (h : i₁ + i₂ + i₃ = j), CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) f = CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) g) :
                                  f = g
                                  noncomputable def CategoryTheory.GradedObject.Monoidal.associator {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] :
                                  tensorObj (tensorObj X₁ X₂) X₃ tensorObj X₁ (tensorObj X₂ X₃)

                                  The associator isomorphism for graded objects.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_associator_hom {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) :
                                    CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) ((associator X₁ X₂ X₃).hom j) = CategoryStruct.comp (MonoidalCategoryStruct.associator (X₁ i₁) (X₂ i₂) (X₃ i₃)).hom (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h)
                                    @[simp]
                                    theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_associator_hom_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) {Z : C} (h✝ : tensorObj X₁ (tensorObj X₂ X₃) j Z) :
                                    CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) (CategoryStruct.comp ((associator X₁ X₂ X₃).hom j) h✝) = CategoryStruct.comp (MonoidalCategoryStruct.associator (X₁ i₁) (X₂ i₂) (X₃ i₃)).hom (CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) h✝)
                                    @[simp]
                                    theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_associator_inv {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) :
                                    CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) ((associator X₁ X₂ X₃).inv j) = CategoryStruct.comp (MonoidalCategoryStruct.associator (X₁ i₁) (X₂ i₂) (X₃ i₃)).inv (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h)
                                    @[simp]
                                    theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_associator_inv_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ : GradedObject I C) [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] (i₁ i₂ i₃ j : I) (h : i₁ + i₂ + i₃ = j) {Z : C} (h✝ : tensorObj (tensorObj X₁ X₂) X₃ j Z) :
                                    CategoryStruct.comp (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) (CategoryStruct.comp ((associator X₁ X₂ X₃).inv j) h✝) = CategoryStruct.comp (MonoidalCategoryStruct.associator (X₁ i₁) (X₂ i₂) (X₃ i₃)).inv (CategoryStruct.comp (ιTensorObj₃' X₁ X₂ X₃ i₁ i₂ i₃ j h) h✝)
                                    theorem CategoryTheory.GradedObject.Monoidal.associator_naturality {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ Y₁ Y₂ Y₃ : GradedObject I C} [X₁.HasTensor X₂] [(tensorObj X₁ X₂).HasTensor X₃] [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [Y₁.HasTensor Y₂] [(tensorObj Y₁ Y₂).HasTensor Y₃] [Y₂.HasTensor Y₃] [Y₁.HasTensor (tensorObj Y₂ Y₃)] (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (f₃ : X₃ Y₃) [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] [Y₁.HasGoodTensor₁₂Tensor Y₂ Y₃] [Y₁.HasGoodTensorTensor₂₃ Y₂ Y₃] :
                                    CategoryStruct.comp (tensorHom (tensorHom f₁ f₂) f₃) (associator Y₁ Y₂ Y₃).hom = CategoryStruct.comp (associator X₁ X₂ X₃).hom (tensorHom f₁ (tensorHom f₂ f₃))
                                    @[reducible, inline]
                                    abbrev CategoryTheory.GradedObject.HasLeftTensor₃ObjExt {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (Z : C) (X₁ X₂ X₃ : GradedObject I C) (j : I) :

                                    Given Z : C and three graded objects X₁, X₂ and X₃ in GradedObject I C, this typeclass expresses that functor Z ⊗ _ commutes with the coproduct of the objects X₁ i₁ ⊗ (X₂ i₂ ⊗ X₃ i₃) such that i₁ + i₂ + i₃ = j for a certain j. See lemma left_tensor_tensorObj₃_ext.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem CategoryTheory.GradedObject.Monoidal.left_tensor_tensorObj₃_ext {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ : GradedObject I C} [X₂.HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] {j : I} {A : C} (Z : C) (f g : MonoidalCategoryStruct.tensorObj Z (tensorObj X₁ (tensorObj X₂ X₃) j) A) [H : X₁.HasGoodTensorTensor₂₃ X₂ X₃] [hZ : HasLeftTensor₃ObjExt Z X₁ X₂ X₃ j] (h : ∀ (i₁ i₂ i₃ : I) (h : i₁ + i₂ + i₃ = j), CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft Z (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h)) f = CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft Z (ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h)) g) :
                                      f = g
                                      noncomputable def CategoryTheory.GradedObject.Monoidal.ιTensorObj₄ {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ X₄ : GradedObject I C) [X₃.HasTensor X₄] [X₂.HasTensor (tensorObj X₃ X₄)] [X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))] (i₁ i₂ i₃ i₄ j : I) (h : i₁ + i₂ + i₃ + i₄ = j) :
                                      MonoidalCategoryStruct.tensorObj (X₁ i₁) (MonoidalCategoryStruct.tensorObj (X₂ i₂) (MonoidalCategoryStruct.tensorObj (X₃ i₃) (X₄ i₄))) tensorObj X₁ (tensorObj X₂ (tensorObj X₃ X₄)) j

                                      The inclusion X₁ i₁ ⊗ X₂ i₂ ⊗ X₃ i₃ ⊗ X₄ i₄ ⟶ tensorObj X₁ (tensorObj X₂ (tensorObj X₃ X₄)) j when i₁ + i₂ + i₃ + i₄ = j.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₄_eq {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ X₄ : GradedObject I C) [X₃.HasTensor X₄] [X₂.HasTensor (tensorObj X₃ X₄)] [X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))] (i₁ i₂ i₃ i₄ j : I) (h : i₁ + i₂ + i₃ + i₄ = j) (i₂₃₄ : I) (hi : i₂ + i₃ + i₄ = i₂₃₄) :
                                        ιTensorObj₄ X₁ X₂ X₃ X₄ i₁ i₂ i₃ i₄ j h = CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft (X₁ i₁) (ιTensorObj₃ X₂ X₃ X₄ i₂ i₃ i₄ i₂₃₄ hi)) (ιTensorObj X₁ (tensorObj X₂ (tensorObj X₃ X₄)) i₁ i₂₃₄ j )
                                        @[reducible, inline]

                                        Given four graded objects, this is the condition HasLeftTensor₃ObjExt (X₁ i₁) X₂ X₃ X₄ i₂₃₄ for all indices i₁ and i₂₃₄, see the lemma tensorObj₄_ext.

                                        Equations
                                        Instances For
                                          theorem CategoryTheory.GradedObject.Monoidal.tensorObj₄_ext {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] {X₁ X₂ X₃ X₄ : GradedObject I C} [X₃.HasTensor X₄] [X₂.HasTensor (tensorObj X₃ X₄)] [X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))] {j : I} {A : C} (f g : tensorObj X₁ (tensorObj X₂ (tensorObj X₃ X₄)) j A) [X₂.HasGoodTensorTensor₂₃ X₃ X₄] [H : X₁.HasTensor₄ObjExt X₂ X₃ X₄] (h : ∀ (i₁ i₂ i₃ i₄ : I) (h : i₁ + i₂ + i₃ + i₄ = j), CategoryStruct.comp (ιTensorObj₄ X₁ X₂ X₃ X₄ i₁ i₂ i₃ i₄ j h) f = CategoryStruct.comp (ιTensorObj₄ X₁ X₂ X₃ X₄ i₁ i₂ i₃ i₄ j h) g) :
                                          f = g
                                          theorem CategoryTheory.GradedObject.Monoidal.pentagon_inv {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ X₄ : GradedObject I C) [X₁.HasTensor X₂] [X₂.HasTensor X₃] [X₃.HasTensor X₄] [(tensorObj X₁ X₂).HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [(tensorObj X₂ X₃).HasTensor X₄] [X₂.HasTensor (tensorObj X₃ X₄)] [(tensorObj (tensorObj X₁ X₂) X₃).HasTensor X₄] [(tensorObj X₁ (tensorObj X₂ X₃)).HasTensor X₄] [X₁.HasTensor (tensorObj (tensorObj X₂ X₃) X₄)] [X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))] [(tensorObj X₁ X₂).HasTensor (tensorObj X₃ X₄)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] [X₁.HasGoodTensor₁₂Tensor (tensorObj X₂ X₃) X₄] [X₁.HasGoodTensorTensor₂₃ (tensorObj X₂ X₃) X₄] [X₂.HasGoodTensor₁₂Tensor X₃ X₄] [X₂.HasGoodTensorTensor₂₃ X₃ X₄] [(tensorObj X₁ X₂).HasGoodTensor₁₂Tensor X₃ X₄] [(tensorObj X₁ X₂).HasGoodTensorTensor₂₃ X₃ X₄] [X₁.HasGoodTensor₁₂Tensor X₂ (tensorObj X₃ X₄)] [X₁.HasGoodTensorTensor₂₃ X₂ (tensorObj X₃ X₄)] [X₁.HasTensor₄ObjExt X₂ X₃ X₄] :
                                          CategoryStruct.comp (tensorHom (CategoryStruct.id X₁) (associator X₂ X₃ X₄).inv) (CategoryStruct.comp (associator X₁ (tensorObj X₂ X₃) X₄).inv (tensorHom (associator X₁ X₂ X₃).inv (CategoryStruct.id X₄))) = CategoryStruct.comp (associator X₁ X₂ (tensorObj X₃ X₄)).inv (associator (tensorObj X₁ X₂) X₃ X₄).inv
                                          theorem CategoryTheory.GradedObject.Monoidal.pentagon_inv_assoc {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ X₄ : GradedObject I C) [X₁.HasTensor X₂] [X₂.HasTensor X₃] [X₃.HasTensor X₄] [(tensorObj X₁ X₂).HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [(tensorObj X₂ X₃).HasTensor X₄] [X₂.HasTensor (tensorObj X₃ X₄)] [(tensorObj (tensorObj X₁ X₂) X₃).HasTensor X₄] [(tensorObj X₁ (tensorObj X₂ X₃)).HasTensor X₄] [X₁.HasTensor (tensorObj (tensorObj X₂ X₃) X₄)] [X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))] [(tensorObj X₁ X₂).HasTensor (tensorObj X₃ X₄)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] [X₁.HasGoodTensor₁₂Tensor (tensorObj X₂ X₃) X₄] [X₁.HasGoodTensorTensor₂₃ (tensorObj X₂ X₃) X₄] [X₂.HasGoodTensor₁₂Tensor X₃ X₄] [X₂.HasGoodTensorTensor₂₃ X₃ X₄] [(tensorObj X₁ X₂).HasGoodTensor₁₂Tensor X₃ X₄] [(tensorObj X₁ X₂).HasGoodTensorTensor₂₃ X₃ X₄] [X₁.HasGoodTensor₁₂Tensor X₂ (tensorObj X₃ X₄)] [X₁.HasGoodTensorTensor₂₃ X₂ (tensorObj X₃ X₄)] [X₁.HasTensor₄ObjExt X₂ X₃ X₄] {Z : GradedObject I C} (h : tensorObj (tensorObj (tensorObj X₁ X₂) X₃) X₄ Z) :
                                          CategoryStruct.comp (tensorHom (CategoryStruct.id X₁) (associator X₂ X₃ X₄).inv) (CategoryStruct.comp (associator X₁ (tensorObj X₂ X₃) X₄).inv (CategoryStruct.comp (tensorHom (associator X₁ X₂ X₃).inv (CategoryStruct.id X₄)) h)) = CategoryStruct.comp (associator X₁ X₂ (tensorObj X₃ X₄)).inv (CategoryStruct.comp (associator (tensorObj X₁ X₂) X₃ X₄).inv h)
                                          theorem CategoryTheory.GradedObject.Monoidal.pentagon {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] (X₁ X₂ X₃ X₄ : GradedObject I C) [X₁.HasTensor X₂] [X₂.HasTensor X₃] [X₃.HasTensor X₄] [(tensorObj X₁ X₂).HasTensor X₃] [X₁.HasTensor (tensorObj X₂ X₃)] [(tensorObj X₂ X₃).HasTensor X₄] [X₂.HasTensor (tensorObj X₃ X₄)] [(tensorObj (tensorObj X₁ X₂) X₃).HasTensor X₄] [(tensorObj X₁ (tensorObj X₂ X₃)).HasTensor X₄] [X₁.HasTensor (tensorObj (tensorObj X₂ X₃) X₄)] [X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))] [(tensorObj X₁ X₂).HasTensor (tensorObj X₃ X₄)] [X₁.HasGoodTensor₁₂Tensor X₂ X₃] [X₁.HasGoodTensorTensor₂₃ X₂ X₃] [X₁.HasGoodTensor₁₂Tensor (tensorObj X₂ X₃) X₄] [X₁.HasGoodTensorTensor₂₃ (tensorObj X₂ X₃) X₄] [X₂.HasGoodTensor₁₂Tensor X₃ X₄] [X₂.HasGoodTensorTensor₂₃ X₃ X₄] [(tensorObj X₁ X₂).HasGoodTensor₁₂Tensor X₃ X₄] [(tensorObj X₁ X₂).HasGoodTensorTensor₂₃ X₃ X₄] [X₁.HasGoodTensor₁₂Tensor X₂ (tensorObj X₃ X₄)] [X₁.HasGoodTensorTensor₂₃ X₂ (tensorObj X₃ X₄)] [X₁.HasTensor₄ObjExt X₂ X₃ X₄] :
                                          CategoryStruct.comp (tensorHom (associator X₁ X₂ X₃).hom (CategoryStruct.id X₄)) (CategoryStruct.comp (associator X₁ (tensorObj X₂ X₃) X₄).hom (tensorHom (CategoryStruct.id X₁) (associator X₂ X₃ X₄).hom)) = CategoryStruct.comp (associator (tensorObj X₁ X₂) X₃ X₄).hom (associator X₁ X₂ (tensorObj X₃ X₄)).hom

                                          The unit of the tensor product on graded objects is (single₀ I).obj (𝟙_ C).

                                          Equations
                                          Instances For
                                            instance CategoryTheory.GradedObject.Monoidal.instHasMapProdObjFunctorMapBifunctorCurriedTensorSingle₀TensorUnit {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] [DecidableEq I] [Limits.HasInitial C] [∀ (X₂ : C), Limits.PreservesColimit (Functor.empty C) ((MonoidalCategory.curriedTensor C).flip.obj X₂)] (X : GradedObject I C) :
                                            (((mapBifunctor (MonoidalCategory.curriedTensor C) I I).obj ((single₀ I).obj (𝟙_ C))).obj X).HasMap fun (x : I × I) => match x with | (i₁, i₂) => i₁ + i₂

                                            The left unitor isomorphism for graded objects.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              instance CategoryTheory.GradedObject.Monoidal.instHasMapProdObjFunctorMapBifunctorCurriedTensorSingle₀TensorUnit_1 {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] [DecidableEq I] [Limits.HasInitial C] [∀ (X₁ : C), Limits.PreservesColimit (Functor.empty C) ((MonoidalCategory.curriedTensor C).obj X₁)] (X : GradedObject I C) :
                                              (((mapBifunctor (MonoidalCategory.curriedTensor C) I I).obj X).obj ((single₀ I).obj (𝟙_ C))).HasMap fun (x : I × I) => match x with | (i₁, i₂) => i₁ + i₂

                                              The right unitor isomorphism for graded objects.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                theorem CategoryTheory.GradedObject.Monoidal.triangle {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] [DecidableEq I] [Limits.HasInitial C] [∀ (X₁ : C), Limits.PreservesColimit (Functor.empty C) ((MonoidalCategory.curriedTensor C).obj X₁)] [∀ (X₂ : C), Limits.PreservesColimit (Functor.empty C) ((MonoidalCategory.curriedTensor C).flip.obj X₂)] (X₁ X₃ : GradedObject I C) [X₁.HasTensor X₃] [(tensorObj X₁ tensorUnit).HasTensor X₃] [X₁.HasTensor (tensorObj tensorUnit X₃)] [X₁.HasGoodTensor₁₂Tensor tensorUnit X₃] [X₁.HasGoodTensorTensor₂₃ tensorUnit X₃] :
                                                noncomputable instance CategoryTheory.GradedObject.monoidalCategory {I : Type u} [AddMonoid I] {C : Type u_1} [Category.{u_2, u_1} C] [MonoidalCategory C] [∀ (X₁ X₂ : GradedObject I C), X₁.HasTensor X₂] [∀ (X₁ X₂ X₃ : GradedObject I C), X₁.HasGoodTensor₁₂Tensor X₂ X₃] [∀ (X₁ X₂ X₃ : GradedObject I C), X₁.HasGoodTensorTensor₂₃ X₂ X₃] [DecidableEq I] [Limits.HasInitial C] [∀ (X₁ : C), Limits.PreservesColimit (Functor.empty C) ((MonoidalCategory.curriedTensor C).obj X₁)] [∀ (X₂ : C), Limits.PreservesColimit (Functor.empty C) ((MonoidalCategory.curriedTensor C).flip.obj X₂)] [∀ (X₁ X₂ X₃ X₄ : GradedObject I C), X₁.HasTensor₄ObjExt X₂ X₃ X₄] :
                                                Equations

                                                The monoidal category structure on GradedObject ℕ C can be inferred from the assumptions [HasFiniteCoproducts C], [∀ (X : C), PreservesFiniteCoproducts ((curriedTensor C).obj X)] and [∀ (X : C), PreservesFiniteCoproducts ((curriedTensor C).flip.obj X)]. This requires importing Mathlib.CategoryTheory.Limits.Preserves.Finite.