Documentation

Mathlib.CategoryTheory.Monoidal.Braided

Braided and symmetric monoidal categories #

The basic definitions of braided monoidal categories, and symmetric monoidal categories, as well as braided functors.

Implementation note #

We make BraidedCategory another typeclass, but then have SymmetricCategory extend this. The rationale is that we are not carrying any additional data, just requiring a property.

Future work #

A braided monoidal category is a monoidal category equipped with a braiding isomorphism β_ X Y : X ⊗ Y ≅ Y ⊗ X which is natural in both arguments, and also satisfies the two hexagon identities.

Instances

    The braiding natural isomorphism.

    Equations
    Instances For

      Verifying the axioms for a braiding by checking that the candidate braiding is sent to a braiding by a faithful monoidal functor.

      Equations
      Instances For

        Pull back a braiding along a fully faithful monoidal functor.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          We now establish how the braiding interacts with the unitors.

          I couldn't find a detailed proof in print, but this is discussed in:

          A symmetric monoidal category is a braided monoidal category for which the braiding is symmetric.

          See .

          Instances

            A lax braided functor between braided monoidal categories is a lax monoidal functor which preserves the braiding.

            Instances For
              @[simp]
              theorem CategoryTheory.LaxBraidedFunctor.id_map (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] :
              ∀ {X Y : C} (f : X Y), (CategoryTheory.LaxBraidedFunctor.id C).toLaxMonoidalFunctor.toFunctor.toPrefunctor.map f = f

              Interpret a natural isomorphism of the underlying lax monoidal functors as an isomorphism of the lax braided monoidal functors.

              Equations
              Instances For

                A braided functor between braided monoidal categories is a monoidal functor which preserves the braiding.

                Instances For
                  @[simp]
                  theorem CategoryTheory.BraidedFunctor.id_obj (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] (X : C) :
                  (CategoryTheory.BraidedFunctor.id C).toMonoidalFunctor.toLaxMonoidalFunctor.toFunctor.toPrefunctor.obj X = X
                  @[simp]
                  theorem CategoryTheory.BraidedFunctor.id_map (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] :
                  ∀ {X Y : C} (f : X Y), (CategoryTheory.BraidedFunctor.id C).toMonoidalFunctor.toLaxMonoidalFunctor.toFunctor.toPrefunctor.map f = f
                  @[simp]

                  Interpret a natural isomorphism of the underlying monoidal functors as an isomorphism of the braided monoidal functors.

                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    @[simp]
                    theorem CategoryTheory.Discrete.braidedFunctor_ε {M : Type u} [CommMonoid M] {N : Type u} [CommMonoid N] (F : M →* N) :
                    (CategoryTheory.Discrete.braidedFunctor F).toMonoidalFunctor.toLaxMonoidalFunctor = CategoryTheory.Discrete.eqToHom (_ : 1 = F 1)
                    @[simp]
                    theorem CategoryTheory.Discrete.braidedFunctor_μ {M : Type u} [CommMonoid M] {N : Type u} [CommMonoid N] (F : M →* N) (X : CategoryTheory.Discrete M) (Y : CategoryTheory.Discrete M) :
                    (CategoryTheory.Discrete.braidedFunctor F).toMonoidalFunctor.toLaxMonoidalFunctorX Y = CategoryTheory.Discrete.eqToHom (_ : F X.as * F Y.as = F (X.as * Y.as))
                    @[simp]
                    theorem CategoryTheory.Discrete.braidedFunctor_map {M : Type u} [CommMonoid M] {N : Type u} [CommMonoid N] (F : M →* N) :
                    ∀ {X Y : CategoryTheory.Discrete M} (f : X Y), (CategoryTheory.Discrete.braidedFunctor F).toMonoidalFunctor.toLaxMonoidalFunctor.toFunctor.toPrefunctor.map f = CategoryTheory.Discrete.eqToHom (_ : F X.as = F Y.as)
                    @[simp]
                    theorem CategoryTheory.Discrete.braidedFunctor_obj_as {M : Type u} [CommMonoid M] {N : Type u} [CommMonoid N] (F : M →* N) (X : CategoryTheory.Discrete M) :
                    ((CategoryTheory.Discrete.braidedFunctor F).toMonoidalFunctor.toLaxMonoidalFunctor.toFunctor.toPrefunctor.obj X).as = F X.as

                    A multiplicative morphism between commutative monoids gives a braided functor between the corresponding discrete braided monoidal categories.

                    Equations
                    Instances For
                      theorem CategoryTheory.tensor_associativity_assoc (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] (X₁ : C) (X₂ : C) (Y₁ : C) (Y₂ : C) (Z₁ : C) (Z₂ : C) {Z : C} (h : CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj X₁ (CategoryTheory.MonoidalCategory.tensorObj Y₁ Z₁)) (CategoryTheory.MonoidalCategory.tensorObj X₂ (CategoryTheory.MonoidalCategory.tensorObj Y₂ Z₂)) Z) :

                      The tensor product functor from C × C to C as a monoidal functor.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem CategoryTheory.associator_monoidal_assoc (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] (X₁ : C) (X₂ : C) (X₃ : C) (Y₁ : C) (Y₂ : C) (Y₃ : C) {Z : C} (h : CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj X₁ Y₁) (CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj X₂ Y₂) (CategoryTheory.MonoidalCategory.tensorObj X₃ Y₃)) Z) :