The pointwise monoidal structure on the product of families of monoidal categories #
Given a family of monoidal categories C i, we define a monoidal structure on
Π i, C i where the tensor product is defined pointwise.
instance
CategoryTheory.Pi.monoidalCategoryStruct
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
:
MonoidalCategoryStruct ((i : I) → C i)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.monoidalCategoryStruct_tensorObj
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(X Y : (i : I) → C i)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalCategoryStruct_tensorHom
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X₁✝ Y₁✝ X₂✝ Y₂✝ : (i : I) → C i}
(f : X₁✝ ⟶ Y₁✝)
(g : X₂✝ ⟶ Y₂✝)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalCategoryStruct_whiskerLeft
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(X x✝ x✝¹ : (i : I) → C i)
(f : x✝ ⟶ x✝¹)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalCategoryStruct_tensorUnit
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalCategoryStruct_whiskerRight
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X₁✝ X₂✝ : (i : I) → C i}
(f : X₁✝ ⟶ X₂✝)
(Y : (i : I) → C i)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.associator_hom_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X Y Z : (i : I) → C i}
{i : I}
:
(MonoidalCategoryStruct.associator X Y Z).hom i = (MonoidalCategoryStruct.associator (X i) (Y i) (Z i)).hom
@[simp]
theorem
CategoryTheory.Pi.associator_inv_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X Y Z : (i : I) → C i}
{i : I}
:
(MonoidalCategoryStruct.associator X Y Z).inv i = (MonoidalCategoryStruct.associator (X i) (Y i) (Z i)).inv
@[simp]
theorem
CategoryTheory.Pi.isoApp_associator
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X Y Z : (i : I) → C i}
{i : I}
:
isoApp (MonoidalCategoryStruct.associator X Y Z) i = MonoidalCategoryStruct.associator (X i) (Y i) (Z i)
@[simp]
theorem
CategoryTheory.Pi.left_unitor_hom_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.left_unitor_inv_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.isoApp_left_unitor
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.right_unitor_hom_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.right_unitor_inv_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.isoApp_right_unitor
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{X : (i : I) → C i}
{i : I}
:
instance
CategoryTheory.Pi.monoidalCategory
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
:
MonoidalCategory ((i : I) → C i)
Pi.monoidalCategory C equips the product of an indexed family of categories with
the pointwise monoidal structure.
Equations
- One or more equations did not get rendered due to their size.
instance
CategoryTheory.Pi.braidedCategory
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
:
BraidedCategory ((i : I) → C i)
When each C i is a braided monoidal category,
the natural pointwise monoidal structure on ∀ i, C i
is also braided.
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.braiding_hom_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{X Y : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.braiding_inv_apply
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{X Y : (i : I) → C i}
{i : I}
:
@[simp]
theorem
CategoryTheory.Pi.isoApp_braiding
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{X Y : (i : I) → C i}
{i : I}
:
instance
CategoryTheory.Pi.symmetricCategory
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → SymmetricCategory (C i)]
:
SymmetricCategory ((i : I) → C i)
When each C i is a symmetric monoidal category,
the natural pointwise monoidal structure on ∀ i, C i
is also symmetric.
Equations
- CategoryTheory.Pi.symmetricCategory = { toBraidedCategory := CategoryTheory.Pi.braidedCategory, symmetry := ⋯ }
def
CategoryTheory.Pi.ihom
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
:
Functor ((i : I) → C i) ((i : I) → C i)
The internal hom functor X ⟶[∀ i, C i] -
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Pi.ihom_obj
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X Y : (i : I) → C i)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.ihom_map
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
{Y Z : (i : I) → C i}
(f : Y ⟶ Z)
(i : I)
:
def
CategoryTheory.Pi.closedUnit
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
:
The unit for the adjunction tensorLeft X ⊣ ihom X.
Equations
- CategoryTheory.Pi.closedUnit X = { app := fun (Y : (i : I) → C i) (i : I) => (CategoryTheory.ihom.coev (X i)).app (Y i), naturality := ⋯ }
Instances For
@[simp]
theorem
CategoryTheory.Pi.closedUnit_app
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X Y : (i : I) → C i)
(i : I)
:
def
CategoryTheory.Pi.closedCounit
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
:
The counit for the adjunction tensorLeft X ⊣ ihom X.
Equations
- CategoryTheory.Pi.closedCounit X = { app := fun (Y : (i : I) → C i) (i : I) => (CategoryTheory.ihom.ev (X i)).app (Y i), naturality := ⋯ }
Instances For
@[simp]
theorem
CategoryTheory.Pi.closedCounit_app
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X Y : (i : I) → C i)
(i : I)
:
instance
CategoryTheory.Pi.monoidalClosed
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
:
MonoidalClosed ((i : I) → C i)
equipps the product of a family of closed monoidal categories with a pointwise closed monoidal structure.
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.monoidalClosed_closed_adj_counit
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalClosed_closed_rightAdj
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalClosed_closed_adj_unit
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → MonoidalClosed (C i)]
(X : (i : I) → C i)
:
instance
CategoryTheory.Pi.instMonoidalForallEval
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(i : I)
:
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.ε_def
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.δ_def
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(i : I)
(X Y : (i : I) → C i)
:
Functor.OplaxMonoidal.δ (eval C i) X Y = CategoryStruct.id (MonoidalCategoryStruct.tensorObj (X i) (Y i))
@[simp]
theorem
CategoryTheory.Pi.η_def
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.μ_def
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
(i : I)
(X Y : (i : I) → C i)
:
Functor.LaxMonoidal.μ (eval C i) X Y = CategoryStruct.id (MonoidalCategoryStruct.tensorObj (X i) (Y i))
instance
CategoryTheory.Pi.instBraidedForallEval
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
(i : I)
:
Equations
- CategoryTheory.Pi.instBraidedForallEval i = { toMonoidal := CategoryTheory.Pi.instMonoidalForallEval i, braided := ⋯ }
instance
CategoryTheory.Pi.laxMonoidalPi'
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).LaxMonoidal]
:
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.laxMonoidalPi'_μ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).LaxMonoidal]
(X Y : D)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.laxMonoidalPi'_ε
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).LaxMonoidal]
(i : I)
:
instance
CategoryTheory.Pi.opLaxMonoidalPi'
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).OplaxMonoidal]
:
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.opLaxMonoidalPi'_η
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).OplaxMonoidal]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.opLaxMonoidalPi'_δ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).OplaxMonoidal]
(X Y : D)
(i : I)
:
instance
CategoryTheory.Pi.monoidalPi'
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).Monoidal]
:
(Functor.pi' F).Monoidal
Equations
- CategoryTheory.Pi.monoidalPi' F = { toLaxMonoidal := CategoryTheory.Pi.laxMonoidalPi' F, toOplaxMonoidal := CategoryTheory.Pi.opLaxMonoidalPi' F, ε_η := ⋯, η_ε := ⋯, μ_δ := ⋯, δ_μ := ⋯ }
@[simp]
theorem
CategoryTheory.Pi.monoidalPi'_ε
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).Monoidal]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalPi'_δ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).Monoidal]
(X Y : D)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalPi'_μ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).Monoidal]
(X Y : D)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalPi'_η
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).Monoidal]
(i : I)
:
instance
CategoryTheory.Pi.instLaxBraidedForallPi'
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
[BraidedCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).LaxBraided]
:
Equations
- CategoryTheory.Pi.instLaxBraidedForallPi' F = { toLaxMonoidal := CategoryTheory.Pi.laxMonoidalPi' F, braided := ⋯ }
instance
CategoryTheory.Pi.instBraidedForallPi'
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
[BraidedCategory D]
(F : (i : I) → Functor D (C i))
[(i : I) → (F i).Braided]
:
(Functor.pi' F).Braided
Equations
- CategoryTheory.Pi.instBraidedForallPi' F = { toMonoidal := CategoryTheory.Pi.monoidalPi' F, braided := ⋯ }
instance
CategoryTheory.Pi.laxMonoidalPi
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).LaxMonoidal]
:
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.laxMonoidalPi_μ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).LaxMonoidal]
(X Y : (i : I) → D i)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.laxMonoidalPi_ε
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).LaxMonoidal]
(i : I)
:
instance
CategoryTheory.Pi.opLaxMonoidalPi
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).OplaxMonoidal]
:
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
CategoryTheory.Pi.opLaxMonoidalPi_η
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).OplaxMonoidal]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.opLaxMonoidalPi_δ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).OplaxMonoidal]
(X Y : (i : I) → D i)
(i : I)
:
instance
CategoryTheory.Pi.monoidalPi
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).Monoidal]
:
(Functor.pi F).Monoidal
Equations
- CategoryTheory.Pi.monoidalPi F = { toLaxMonoidal := CategoryTheory.Pi.laxMonoidalPi F, toOplaxMonoidal := CategoryTheory.Pi.opLaxMonoidalPi F, ε_η := ⋯, η_ε := ⋯, μ_δ := ⋯, δ_μ := ⋯ }
@[simp]
theorem
CategoryTheory.Pi.monoidalPi_η
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).Monoidal]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalPi_δ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).Monoidal]
(X Y : (i : I) → D i)
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalPi_ε
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).Monoidal]
(i : I)
:
@[simp]
theorem
CategoryTheory.Pi.monoidalPi_μ
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).Monoidal]
(X Y : (i : I) → D i)
(i : I)
:
instance
CategoryTheory.Pi.instLaxBraidedForallPi
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
[(i : I) → BraidedCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).LaxBraided]
:
(Functor.pi F).LaxBraided
Equations
- CategoryTheory.Pi.instLaxBraidedForallPi F = { toLaxMonoidal := CategoryTheory.Pi.laxMonoidalPi F, braided := ⋯ }
instance
CategoryTheory.Pi.instBraidedForallPi
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
[(i : I) → BraidedCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
[(i : I) → BraidedCategory (D i)]
(F : (i : I) → Functor (D i) (C i))
[(i : I) → (F i).Braided]
:
(Functor.pi F).Braided
Equations
- CategoryTheory.Pi.instBraidedForallPi F = { toMonoidal := CategoryTheory.Pi.monoidalPi F, braided := ⋯ }
instance
CategoryTheory.Pi.instIsMonoidalForallPi'
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : Type u_1}
[Category.{v_1, u_1} D]
[MonoidalCategory D]
{F G : Functor D ((i : I) → C i)}
[F.LaxMonoidal]
[G.LaxMonoidal]
(τ : (i : I) → F.comp (eval C i) ⟶ G.comp (eval C i))
[∀ (i : I), NatTrans.IsMonoidal (τ i)]
:
instance
CategoryTheory.Pi.instIsMonoidalForallPi
{I : Type w₁}
{C : I → Type u₁}
[(i : I) → Category.{v₁, u₁} (C i)]
[(i : I) → MonoidalCategory (C i)]
{D : I → Type u₂}
[(i : I) → Category.{v₂, u₂} (D i)]
[(i : I) → MonoidalCategory (D i)]
{F G : (i : I) → Functor (D i) (C i)}
[(i : I) → (F i).LaxMonoidal]
[(i : I) → (G i).LaxMonoidal]
(τ : (i : I) → F i ⟶ G i)
[∀ (i : I), NatTrans.IsMonoidal (τ i)]
: