-- Mathlib.CategoryTheory.Monoidal.DayConvolution
/-- We can promote a `LawfulDayConvolutionMonoidalCategoryStruct` to a monoidal category,
note that every non-prop data is already here, so this is just about showing that they
satisfy the axioms of a monoidal category.  -/
CategoryTheory.MonoidalCategory.monoidalOfLawfulDayConvolutionMonoidalCategoryStruct : (C : Type u₁) →
  [inst : CategoryTheory.Category.{v₁, u₁} C] →
    (V : Type u₂) →
      [inst_1 : CategoryTheory.Category.{v₂, u₂} V] →
        [inst_2 : CategoryTheory.MonoidalCategory C] →
          [inst_3 : CategoryTheory.MonoidalCategory V] →
            (D : Type u₃) →
              [inst_4 : CategoryTheory.Category.{v₃, u₃} D] →
                [inst_5 : CategoryTheory.MonoidalCategoryStruct D] →
                  [CategoryTheory.MonoidalCategory.LawfulDayConvolutionMonoidalCategoryStruct C V D] →
                    [∀ (v : V) (d : C),
                          CategoryTheory.Limits.PreservesColimitsOfShape
                            (CategoryTheory.CostructuredArrow (CategoryTheory.MonoidalCategory.tensor C) d)
                            (CategoryTheory.MonoidalCategory.tensorLeft v)] →
                      [∀ (v : V) (d : C),
                            CategoryTheory.Limits.PreservesColimitsOfShape
                              (CategoryTheory.CostructuredArrow (CategoryTheory.MonoidalCategory.tensor C) d)
                              (CategoryTheory.MonoidalCategory.tensorRight v)] →
                        [∀ (v : V) (d : C),
                              CategoryTheory.Limits.PreservesColimitsOfShape
                                (CategoryTheory.CostructuredArrow
                                  (CategoryTheory.Functor.fromPUnit
                                    (CategoryTheory.MonoidalCategoryStruct.tensorUnit C))
                                  d)
                                (CategoryTheory.MonoidalCategory.tensorLeft v)] →
                          [∀ (v : V) (d : C),
                                CategoryTheory.Limits.PreservesColimitsOfShape
                                  (CategoryTheory.CostructuredArrow
                                    (CategoryTheory.Functor.fromPUnit
                                      (CategoryTheory.MonoidalCategoryStruct.tensorUnit C))
                                    d)
                                  (CategoryTheory.MonoidalCategory.tensorRight v)] →
                            [∀ (v : V) (d : C × C),
                                  CategoryTheory.Limits.PreservesColimitsOfShape
                                    (CategoryTheory.CostructuredArrow
                                      ((CategoryTheory.Functor.id C).prod
                                        (CategoryTheory.Functor.fromPUnit
                                          (CategoryTheory.MonoidalCategoryStruct.tensorUnit C)))
                                      d)
                                    (CategoryTheory.MonoidalCategory.tensorRight v)] →
                              [∀ (v : V) (d : C × C),
                                    CategoryTheory.Limits.PreservesColimitsOfShape
                                      (CategoryTheory.CostructuredArrow
                                        ((CategoryTheory.MonoidalCategory.tensor C).prod (CategoryTheory.Functor.id C))
                                        d)
                                      (CategoryTheory.MonoidalCategory.tensorRight v)] →
                                CategoryTheory.MonoidalCategory D