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 ChosenFiniteProducts
instance.
@[reducible, inline]
The chosen terminal object in Cat
.
Equations
Instances For
The chosen terminal object in Cat
is terminal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The chosen product of categories C × D
yields a product cone in Cat
.
Equations
- C.prodCone D = CategoryTheory.Limits.BinaryFan.mk (CategoryTheory.Prod.fst ↑C ↑D) (CategoryTheory.Prod.snd ↑C ↑D)
Instances For
def
CategoryTheory.Cat.isLimitProdCone
(X Y : CategoryTheory.Cat)
:
CategoryTheory.Limits.IsLimit (X.prodCone Y)
The product cone in Cat
is indeed a product.
Equations
- X.isLimitProdCone Y = CategoryTheory.Limits.BinaryFan.isLimitMk (fun (S : CategoryTheory.Limits.BinaryFan X Y) => CategoryTheory.Functor.prod' S.fst S.snd) ⋯ ⋯ ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
theorem
CategoryTheory.Monoidal.whiskerLeft
(X : CategoryTheory.Cat)
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
:
CategoryTheory.MonoidalCategory.whiskerLeft X f = (CategoryTheory.Functor.id ↑X).prod f
theorem
CategoryTheory.Monoidal.whiskerLeft_fst
(X : CategoryTheory.Cat)
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
:
theorem
CategoryTheory.Monoidal.whiskerLeft_snd
(X : CategoryTheory.Cat)
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
:
CategoryTheory.Functor.comp (CategoryTheory.MonoidalCategory.whiskerLeft X f) (CategoryTheory.Prod.snd ↑X ↑B) = (CategoryTheory.Prod.snd ↑X ↑A).comp f
theorem
CategoryTheory.Monoidal.whiskerRight
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
(X : CategoryTheory.Cat)
:
theorem
CategoryTheory.Monoidal.whiskerRight_fst
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
(X : CategoryTheory.Cat)
:
CategoryTheory.Functor.comp (CategoryTheory.MonoidalCategory.whiskerRight f X) (CategoryTheory.Prod.fst ↑B ↑X) = (CategoryTheory.Prod.fst ↑A ↑X).comp f
theorem
CategoryTheory.Monoidal.whiskerRight_snd
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
(X : CategoryTheory.Cat)
:
theorem
CategoryTheory.Monoidal.tensorHom
{A B : CategoryTheory.Cat}
(f : A ⟶ B)
{X Y : CategoryTheory.Cat}
(g : X ⟶ Y)
:
theorem
CategoryTheory.Monoidal.associator_hom
(X Y Z : CategoryTheory.Cat)
:
(CategoryTheory.MonoidalCategory.associator X Y Z).hom = ((CategoryTheory.Prod.fst (↑X × ↑Y) ↑Z).comp (CategoryTheory.Prod.fst ↑X ↑Y)).prod'
(((CategoryTheory.Prod.fst (↑X × ↑Y) ↑Z).comp (CategoryTheory.Prod.snd ↑X ↑Y)).prod'
(CategoryTheory.Prod.snd (↑X × ↑Y) ↑Z))
theorem
CategoryTheory.Monoidal.associator_inv
(X Y Z : CategoryTheory.Cat)
:
(CategoryTheory.MonoidalCategory.associator X Y Z).inv = ((CategoryTheory.Prod.fst (↑X) (↑Y × ↑Z)).prod'
((CategoryTheory.Prod.snd (↑X) (↑Y × ↑Z)).comp (CategoryTheory.Prod.fst ↑Y ↑Z))).prod'
((CategoryTheory.Prod.snd (↑X) (↑Y × ↑Z)).comp (CategoryTheory.Prod.snd ↑Y ↑Z))
theorem
CategoryTheory.Monoidal.leftUnitor_inv
(C : CategoryTheory.Cat)
:
(CategoryTheory.MonoidalCategory.leftUnitor C).inv = CategoryTheory.Prod.sectR { down := { as := PUnit.unit } } ↑C
theorem
CategoryTheory.Monoidal.rightUnitor_inv
(C : CategoryTheory.Cat)
:
(CategoryTheory.MonoidalCategory.rightUnitor C).inv = CategoryTheory.Prod.sectL ↑C { down := { as := PUnit.unit } }