Chosen finite products in Cat #
This file proves that the Cartesian product of a pair of categories agrees with the
product in Cat, and provides the associated CartesianMonoidalCategory instance.
@[reducible, inline]
The chosen terminal object in Cat.
Instances For
The chosen terminal object in Cat is terminal.
Instances For
The type of functors out of the chosen terminal category is equivalent to the type of objects in the target category. TODO: upgrade to an equivalence of categories.
Instances For
The chosen product of categories C × D yields a product cone in Cat.
Instances For
The product cone in Cat is indeed a product.
Instances For
@[implicit_reducible]
@[implicit_reducible]
theorem
CategoryTheory.Monoidal.tensorObj
(C D : Cat)
:
MonoidalCategoryStruct.tensorObj C D = Cat.of (↑C × ↑D)
theorem
CategoryTheory.Monoidal.whiskerLeft
(X : Cat)
{A B : Cat}
(F : A ⟶ B)
:
MonoidalCategoryStruct.whiskerLeft X F = ((Functor.id ↑X).prod F.toFunctor).toCatHom
theorem
CategoryTheory.Monoidal.whiskerLeft_fst
(X : Cat)
{A B : Cat}
(f : A ⟶ B)
:
(MonoidalCategoryStruct.whiskerLeft X f).toFunctor.comp (Prod.fst ↑X ↑B) = Prod.fst ↑X ↑A
theorem
CategoryTheory.Monoidal.whiskerRight
{A B : Cat}
(f : A ⟶ B)
(X : Cat)
:
MonoidalCategoryStruct.whiskerRight f X = (f.toFunctor.prod (Functor.id ↑X)).toCatHom
theorem
CategoryTheory.Monoidal.whiskerRight_snd
{A B : Cat}
(f : A ⟶ B)
(X : Cat)
:
(MonoidalCategoryStruct.whiskerRight f X).toFunctor.comp (Prod.snd ↑B ↑X) = Prod.snd ↑A ↑X
theorem
CategoryTheory.Monoidal.tensorHom
{A B : Cat}
(f : A ⟶ B)
{X Y : Cat}
(g : X ⟶ Y)
:
MonoidalCategoryStruct.tensorHom f g = (f.toFunctor.prod g.toFunctor).toCatHom
theorem
CategoryTheory.Monoidal.leftUnitor_inv
(C : Cat)
:
(MonoidalCategoryStruct.leftUnitor C).inv = (Prod.sectR { down := { as := PUnit.unit } } ↑C).toCatHom
theorem
CategoryTheory.Monoidal.rightUnitor_inv
(C : Cat)
:
(MonoidalCategoryStruct.rightUnitor C).inv = (Prod.sectL ↑C { down := { as := PUnit.unit } }).toCatHom