The Dialectica category is symmetric monoidal #
We show that the category Dial has a symmetric monoidal category structure.
def
CategoryTheory.Dial.tensorObjImpl
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
Dial C
The object X â Y in the Dial C category just tuples the left and right components.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.tensorObjImpl_src
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.tensorObjImpl_rel
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.tensorObjImpl_tgt
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
def
CategoryTheory.Dial.tensorHomImpl
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xâ Xâ Yâ Yâ : Dial C}
(f : Xâ âś Xâ)
(g : Yâ âś Yâ)
:
The functorial action of X â Y in Dial C.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.tensorHomImpl_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xâ Xâ Yâ Yâ : Dial C}
(f : Xâ âś Xâ)
(g : Yâ âś Yâ)
:
@[simp]
theorem
CategoryTheory.Dial.tensorHomImpl_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xâ Xâ Yâ Yâ : Dial C}
(f : Xâ âś Xâ)
(g : Yâ âś Yâ)
:
def
CategoryTheory.Dial.tensorUnitImpl
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
:
Dial C
The unit for the tensor X â Y in Dial C.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.tensorUnitImpl_tgt
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
:
@[simp]
theorem
CategoryTheory.Dial.tensorUnitImpl_src
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
:
@[simp]
theorem
CategoryTheory.Dial.tensorUnitImpl_rel
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
:
def
CategoryTheory.Dial.leftUnitorImpl
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
Left unit cancellation 1 â X â
X in Dial C.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.leftUnitorImpl_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
X.leftUnitorImpl.hom.F = Limits.prod.lift (Limits.terminal.from (((â¤_ C) ⨯ X.src) ⨯ X.tgt)) Limits.prod.snd
@[simp]
theorem
CategoryTheory.Dial.leftUnitorImpl_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.leftUnitorImpl_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.leftUnitorImpl_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
def
CategoryTheory.Dial.rightUnitorImpl
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
Right unit cancellation X â 1 â
X in Dial C.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.rightUnitorImpl_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.rightUnitorImpl_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
X.rightUnitorImpl.hom.F = Limits.prod.lift Limits.prod.snd (Limits.terminal.from ((X.src ⨯ â¤_ C) ⨯ X.tgt))
@[simp]
theorem
CategoryTheory.Dial.rightUnitorImpl_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.rightUnitorImpl_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
def
CategoryTheory.Dial.associatorImpl
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
The associator for tensor, (X â Y) â Z â
X â (Y â Z) in Dial C.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.associatorImpl_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
(X.associatorImpl Y Z).hom.F = Limits.prod.lift
(Limits.prod.lift (CategoryStruct.comp Limits.prod.snd Limits.prod.fst)
(CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.snd Limits.prod.fst)))
(CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.snd Limits.prod.snd))
@[simp]
theorem
CategoryTheory.Dial.associatorImpl_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.associatorImpl_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.associatorImpl_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
(X.associatorImpl Y Z).inv.F = Limits.prod.lift (CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.fst Limits.prod.fst))
(Limits.prod.lift (CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.fst Limits.prod.snd))
(CategoryStruct.comp Limits.prod.snd Limits.prod.snd))
instance
CategoryTheory.Dial.instMonoidalCategoryStruct
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
:
Equations
@[simp]
theorem
CategoryTheory.Dial.tensorObj_tgt
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.leftUnitor_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.rightUnitor_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.tensorHom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xââ Yââ Xââ Yââ : Dial C}
(f : Xââ âś Yââ)
(g : Xââ âś Yââ)
:
@[simp]
theorem
CategoryTheory.Dial.tensorUnit_rel
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
:
@[simp]
theorem
CategoryTheory.Dial.leftUnitor_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.leftUnitor_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.whiskerLeft_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X xâ xâš : Dial C)
(f : xâ âś xâš)
:
@[simp]
theorem
CategoryTheory.Dial.tensorHom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xââ Yââ Xââ Yââ : Dial C}
(f : Xââ âś Yââ)
(g : Xââ âś Yââ)
:
@[simp]
theorem
CategoryTheory.Dial.tensorObj_rel
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.associator_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
(MonoidalCategoryStruct.associator X Y Z).hom.F = Limits.prod.lift
(Limits.prod.lift (CategoryStruct.comp Limits.prod.snd Limits.prod.fst)
(CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.snd Limits.prod.fst)))
(CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.snd Limits.prod.snd))
@[simp]
theorem
CategoryTheory.Dial.whiskerRight_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xââ Xââ : Dial C}
(f : Xââ âś Xââ)
(Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.associator_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.whiskerRight_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xââ Xââ : Dial C}
(f : Xââ âś Xââ)
(Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.rightUnitor_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
(MonoidalCategoryStruct.rightUnitor X).hom.F = Limits.prod.lift Limits.prod.snd (Limits.terminal.from ((X.src ⨯ â¤_ C) ⨯ X.tgt))
@[simp]
theorem
CategoryTheory.Dial.rightUnitor_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.tensorUnit_tgt
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
:
@[simp]
theorem
CategoryTheory.Dial.associator_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
(MonoidalCategoryStruct.associator X Y Z).inv.F = Limits.prod.lift (CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.fst Limits.prod.fst))
(Limits.prod.lift (CategoryStruct.comp Limits.prod.snd (CategoryStruct.comp Limits.prod.fst Limits.prod.snd))
(CategoryStruct.comp Limits.prod.snd Limits.prod.snd))
@[simp]
theorem
CategoryTheory.Dial.associator_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.rightUnitor_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.tensorObj_src
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.whiskerLeft_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X xâ xâš : Dial C)
(f : xâ âś xâš)
:
@[simp]
theorem
CategoryTheory.Dial.leftUnitor_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
:
(MonoidalCategoryStruct.leftUnitor X).hom.F = Limits.prod.lift (Limits.terminal.from (((â¤_ C) ⨯ X.src) ⨯ X.tgt)) Limits.prod.snd
@[simp]
theorem
CategoryTheory.Dial.tensorUnit_src
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
:
theorem
CategoryTheory.Dial.id_tensorHom_id
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(Xâ Xâ : Dial C)
:
MonoidalCategoryStruct.tensorHom (CategoryStruct.id Xâ) (CategoryStruct.id Xâ) = CategoryStruct.id (MonoidalCategoryStruct.tensorObj Xâ Xâ)
theorem
CategoryTheory.Dial.tensorHom_comp_tensorHom
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xâ Yâ Zâ Xâ Yâ Zâ : Dial C}
(fâ : Xâ âś Yâ)
(fâ : Xâ âś Yâ)
(gâ : Yâ âś Zâ)
(gâ : Yâ âś Zâ)
:
CategoryStruct.comp (MonoidalCategoryStruct.tensorHom fâ fâ) (MonoidalCategoryStruct.tensorHom gâ gâ) = MonoidalCategoryStruct.tensorHom (CategoryStruct.comp fâ gâ) (CategoryStruct.comp fâ gâ)
theorem
CategoryTheory.Dial.associator_naturality
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{Xâ Xâ Xâ Yâ Yâ Yâ : Dial C}
(fâ : Xâ âś Yâ)
(fâ : Xâ âś Yâ)
(fâ : Xâ âś Yâ)
:
CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (MonoidalCategoryStruct.tensorHom fâ fâ) fâ)
(MonoidalCategoryStruct.associator Yâ Yâ Yâ).hom = CategoryStruct.comp (MonoidalCategoryStruct.associator Xâ Xâ Xâ).hom
(MonoidalCategoryStruct.tensorHom fâ (MonoidalCategoryStruct.tensorHom fâ fâ))
theorem
CategoryTheory.Dial.leftUnitor_naturality
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{X Y : Dial C}
(f : X âś Y)
:
theorem
CategoryTheory.Dial.rightUnitor_naturality
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{X Y : Dial C}
(f : X âś Y)
:
theorem
CategoryTheory.Dial.pentagon
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(W X Y Z : Dial C)
:
CategoryStruct.comp
(MonoidalCategoryStruct.tensorHom (MonoidalCategoryStruct.associator W X Y).hom (CategoryStruct.id Z))
(CategoryStruct.comp (MonoidalCategoryStruct.associator W (MonoidalCategoryStruct.tensorObj X Y) Z).hom
(MonoidalCategoryStruct.tensorHom (CategoryStruct.id W) (MonoidalCategoryStruct.associator X Y Z).hom)) = CategoryStruct.comp (MonoidalCategoryStruct.associator (MonoidalCategoryStruct.tensorObj W X) Y Z).hom
(MonoidalCategoryStruct.associator W X (MonoidalCategoryStruct.tensorObj Y Z)).hom
theorem
CategoryTheory.Dial.triangle
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator X (MonoidalCategoryStruct.tensorUnit (Dial C)) Y).hom
(MonoidalCategoryStruct.tensorHom (CategoryStruct.id X) (MonoidalCategoryStruct.leftUnitor Y).hom) = MonoidalCategoryStruct.tensorHom (MonoidalCategoryStruct.rightUnitor X).hom (CategoryStruct.id Y)
instance
CategoryTheory.Dial.instMonoidalCategory
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
:
MonoidalCategory (Dial C)
Equations
def
CategoryTheory.Dial.braiding
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
The braiding isomorphism X â Y â
Y â X in Dial C.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Dial.braiding_hom_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.braiding_hom_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.braiding_inv_F
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
@[simp]
theorem
CategoryTheory.Dial.braiding_inv_f
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
theorem
CategoryTheory.Dial.symmetry
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y : Dial C)
:
CategoryStruct.comp (X.braiding Y).hom (Y.braiding X).hom = CategoryStruct.id (MonoidalCategoryStruct.tensorObj X Y)
theorem
CategoryTheory.Dial.braiding_naturality_right
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X : Dial C)
{Y Z : Dial C}
(f : Y âś Z)
:
theorem
CategoryTheory.Dial.braiding_naturality_left
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
{X Y : Dial C}
(f : X âś Y)
(Z : Dial C)
:
theorem
CategoryTheory.Dial.hexagon_forward
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator X Y Z).hom
(CategoryStruct.comp (X.braiding (MonoidalCategoryStruct.tensorObj Y Z)).hom
(MonoidalCategoryStruct.associator Y Z X).hom) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (X.braiding Y).hom (CategoryStruct.id Z))
(CategoryStruct.comp (MonoidalCategoryStruct.associator Y X Z).hom
(MonoidalCategoryStruct.tensorHom (CategoryStruct.id Y) (X.braiding Z).hom))
theorem
CategoryTheory.Dial.hexagon_reverse
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
(X Y Z : Dial C)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator X Y Z).inv
(CategoryStruct.comp ((MonoidalCategoryStruct.tensorObj X Y).braiding Z).hom
(MonoidalCategoryStruct.associator Z X Y).inv) = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (CategoryStruct.id X) (Y.braiding Z).hom)
(CategoryStruct.comp (MonoidalCategoryStruct.associator X Z Y).inv
(MonoidalCategoryStruct.tensorHom (X.braiding Z).hom (CategoryStruct.id Y)))
instance
CategoryTheory.Dial.instSymmetricCategory
{C : Type u}
[Category.{v, u} C]
[Limits.HasFiniteProducts C]
[Limits.HasPullbacks C]
: