Documentation

Mathlib.CategoryTheory.Dialectica.Monoidal

The Dialectica category is symmetric monoidal #

We show that the category Dial has a symmetric monoidal category structure.

@[simp]
theorem CategoryTheory.Dial.tensorObj_rel {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) :
(X.tensorObj Y).rel = (CategoryTheory.Subobject.pullback (CategoryTheory.Limits.prod.map CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst)).obj X.rel (CategoryTheory.Subobject.pullback (CategoryTheory.Limits.prod.map CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd)).obj Y.rel

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]
    def CategoryTheory.Dial.tensorHom {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] {X₁ : CategoryTheory.Dial C} {X₂ : CategoryTheory.Dial C} {Y₁ : CategoryTheory.Dial C} {Y₂ : CategoryTheory.Dial C} (f : X₁ X₂) (g : Y₁ Y₂) :
    X₁.tensorObj Y₁ X₂.tensorObj 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

      The unit for the tensor X ⊗ Y in Dial C.

      Equations
      • CategoryTheory.Dial.tensorUnit = { src := ⊤_ C, tgt := ⊤_ C, rel := }
      Instances For

        Left unit cancellation 1 ⊗ X ≅ X in Dial C.

        Equations
        Instances For

          Right unit cancellation X ⊗ 1 ≅ X in Dial C.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Dial.associator_hom_F {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) (Z : CategoryTheory.Dial C) :
            (X.associator Y Z).hom.F = CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst))) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd))
            @[simp]
            theorem CategoryTheory.Dial.associator_inv_F {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) (Z : CategoryTheory.Dial C) :
            (X.associator Y Z).inv.F = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst)) (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd)) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd))
            @[simp]
            theorem CategoryTheory.Dial.associator_hom_f {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) (Z : CategoryTheory.Dial C) :
            (X.associator Y Z).hom.f = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst) (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd) CategoryTheory.Limits.prod.snd)
            @[simp]
            theorem CategoryTheory.Dial.associator_inv_f {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) (Z : CategoryTheory.Dial C) :
            (X.associator Y Z).inv.f = CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst)) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd)

            The associator for tensor, (X ⊗ Y) ⊗ Z ≅ X ⊗ (Y ⊗ Z) in Dial C.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Dial.instMonoidalCategoryStruct_associator_inv_F {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) (Z : CategoryTheory.Dial C) :
              (CategoryTheory.MonoidalCategory.associator X Y Z).inv.F = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst)) (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd)) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd))
              @[simp]
              theorem CategoryTheory.Dial.instMonoidalCategoryStruct_associator_hom_F {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) (Z : CategoryTheory.Dial C) :
              (CategoryTheory.MonoidalCategory.associator X Y Z).hom.F = CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst))) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd))
              @[simp]
              theorem CategoryTheory.Dial.braiding_inv_F {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) :
              (X.braiding Y).inv.F = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst)
              @[simp]
              theorem CategoryTheory.Dial.braiding_hom_F {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasFiniteProducts C] [CategoryTheory.Limits.HasPullbacks C] (X : CategoryTheory.Dial C) (Y : CategoryTheory.Dial C) :
              (X.braiding Y).hom.F = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst)

              The braiding isomorphism X ⊗ Y ≅ Y ⊗ X in Dial C.

              Equations
              Instances For