The Dialectica category is symmetric monoidal #
We show that the category Dial has a symmetric monoidal category structure.
noncomputable 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
- One or more equations did not get rendered due to their size.
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) :
noncomputable 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
- One or more equations did not get rendered due to their size.
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₂) :
noncomputable 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.
Instances For
@[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] :
@[simp]
theorem CategoryTheory.Dial.tensorUnitImpl_tgt {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] :
noncomputable 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_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) :
@[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) :
noncomputable 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_hom_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_inv_f {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] (X : Dial C) :
noncomputable 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
- X.associatorImpl Y Z = CategoryTheory.Dial.isoMk (CategoryTheory.Limits.prod.associator X.src Y.src Z.src) (CategoryTheory.Limits.prod.associator X.tgt Y.tgt Z.tgt) ⋯
Instances For
@[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))
@[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) :
@[instance_reducible]
noncomputable instance CategoryTheory.Dial.instMonoidalCategoryStruct {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] :
Equations
- One or more equations did not get rendered due to their size.
@[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.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.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.leftUnitor_inv_F {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] (X : Dial C) :
@[simp]
theorem CategoryTheory.Dial.tensorUnit_rel {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks 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.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.leftUnitor_inv_f {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] (X : 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.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.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_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.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.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) :
@[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_rel {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] (X Y : 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.tensorObj_src {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] (X Y : Dial C) :
@[simp]
theorem CategoryTheory.Dial.tensorUnit_src {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] :
@[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.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₂✝) :
theorem CategoryTheory.Dial.id_tensorHom_id {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] (X₁ X₂ : Dial C) :
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₂) :
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₃) :
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_reducible]
noncomputable instance CategoryTheory.Dial.instMonoidalCategory {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] :
MonoidalCategory (Dial C)
Equations
noncomputable 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_reducible]
noncomputable instance CategoryTheory.Dial.instSymmetricCategory {C : Type u} [Category.{v, u} C] [Limits.HasFiniteProducts C] [Limits.HasPullbacks C] :
Equations
- One or more equations did not get rendered due to their size.