Braided and symmetric monoidal categories #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
The basic definitions of braided monoidal categories, and symmetric monoidal categories, as well as braided functors.
Implementation note #
We make braided_monoidal_category
another typeclass, but then have symmetric_monoidal_category
extend this. The rationale is that we are not carrying any additional data,
just requiring a property.
Future work #
- Construct the Drinfeld center of a monoidal category as a braided monoidal category.
- Say something about pseudo-natural transformations.
- braiding : Π (X Y : C), X ⊗ Y ≅ Y ⊗ X
- braiding_naturality' : (∀ {X X' Y Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y'), (f ⊗ g) ≫ (β_ Y Y').hom = (β_ X X').hom ≫ (g ⊗ f)) . "obviously"
- hexagon_forward' : (∀ (X Y Z : C), (α_ X Y Z).hom ≫ (β_ X (Y ⊗ Z)).hom ≫ (α_ Y Z X).hom = ((β_ X Y).hom ⊗ 𝟙 Z) ≫ (α_ Y X Z).hom ≫ (𝟙 Y ⊗ (β_ X Z).hom)) . "obviously"
- hexagon_reverse' : (∀ (X Y Z : C), (α_ X Y Z).inv ≫ (β_ (X ⊗ Y) Z).hom ≫ (α_ Z X Y).inv = (𝟙 X ⊗ (β_ Y Z).hom) ≫ (α_ X Z Y).inv ≫ ((β_ X Z).hom ⊗ 𝟙 Y)) . "obviously"
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 of this typeclass
Instances of other typeclasses for category_theory.braided_category
- category_theory.braided_category.has_sizeof_inst
Verifying the axioms for a braiding by checking that the candidate braiding is sent to a braiding by a faithful monoidal functor.
Equations
- category_theory.braided_category_of_faithful F β w = {braiding := β, braiding_naturality' := _, hexagon_forward' := _, hexagon_reverse' := _}
Pull back a braiding along a fully faithful monoidal functor.
Equations
- category_theory.braided_category_of_fully_faithful F = category_theory.braided_category_of_faithful F (λ (X Y : C), F.to_lax_monoidal_functor.to_functor.preimage_iso ((category_theory.as_iso (F.to_lax_monoidal_functor.μ X Y)).symm ≪≫ β_ (F.to_lax_monoidal_functor.to_functor.obj X) (F.to_lax_monoidal_functor.to_functor.obj Y) ≪≫ category_theory.as_iso (F.to_lax_monoidal_functor.μ Y X))) _
We now establish how the braiding interacts with the unitors.
I couldn't find a detailed proof in print, but this is discussed in:
- Proposition 1 of André Joyal and Ross Street, "Braided monoidal categories", Macquarie Math Reports 860081 (1986).
- Proposition 2.1 of André Joyal and Ross Street, "Braided tensor categories" , Adv. Math. 102 (1993), 20–78.
- Exercise 8.1.6 of Etingof, Gelaki, Nikshych, Ostrik, "Tensor categories", vol 25, Mathematical Surveys and Monographs (2015), AMS.
- to_braided_category : category_theory.braided_category C
- symmetry' : (∀ (X Y : C), (β_ X Y).hom ≫ (β_ Y X).hom = 𝟙 (X ⊗ Y)) . "obviously"
A symmetric monoidal category is a braided monoidal category for which the braiding is symmetric.
See https://stacks.math.columbia.edu/tag/0FFW.
Instances of this typeclass
Instances of other typeclasses for category_theory.symmetric_category
- category_theory.symmetric_category.has_sizeof_inst
- to_lax_monoidal_functor : category_theory.lax_monoidal_functor C D
- braided' : (∀ (X Y : C), self.to_lax_monoidal_functor.μ X Y ≫ self.to_lax_monoidal_functor.to_functor.map (β_ X Y).hom = (β_ (self.to_lax_monoidal_functor.to_functor.obj X) (self.to_lax_monoidal_functor.to_functor.obj Y)).hom ≫ self.to_lax_monoidal_functor.μ Y X) . "obviously"
A lax braided functor between braided monoidal categories is a lax monoidal functor which preserves the braiding.
Instances for category_theory.lax_braided_functor
- category_theory.lax_braided_functor.has_sizeof_inst
- category_theory.lax_braided_functor.inhabited
- category_theory.lax_braided_functor.category_lax_braided_functor
The identity lax braided monoidal functor.
Equations
The composition of lax braided monoidal functors.
Equations
- F.comp G = {to_lax_monoidal_functor := {to_functor := (F.to_lax_monoidal_functor ⊗⋙ G.to_lax_monoidal_functor).to_functor, ε := (F.to_lax_monoidal_functor ⊗⋙ G.to_lax_monoidal_functor).ε, μ := (F.to_lax_monoidal_functor ⊗⋙ G.to_lax_monoidal_functor).μ, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, braided' := _}
Interpret a natural isomorphism of the underlyling lax monoidal functors as an isomorphism of the lax braided monoidal functors.
Equations
- category_theory.lax_braided_functor.mk_iso i = {hom := i.hom, inv := i.inv, hom_inv_id' := _, inv_hom_id' := _}
- to_monoidal_functor : category_theory.monoidal_functor C D
- braided' : (∀ (X Y : C), self.to_monoidal_functor.to_lax_monoidal_functor.to_functor.map (β_ X Y).hom = category_theory.inv (self.to_monoidal_functor.to_lax_monoidal_functor.μ X Y) ≫ (β_ (self.to_monoidal_functor.to_lax_monoidal_functor.to_functor.obj X) (self.to_monoidal_functor.to_lax_monoidal_functor.to_functor.obj Y)).hom ≫ self.to_monoidal_functor.to_lax_monoidal_functor.μ Y X) . "obviously"
A braided functor between braided monoidal categories is a monoidal functor which preserves the braiding.
Instances for category_theory.braided_functor
- category_theory.braided_functor.has_sizeof_inst
- category_theory.braided_functor.inhabited
- category_theory.braided_functor.category_braided_functor
A braided category with a braided functor to a symmetric category is itself symmetric.
Equations
- category_theory.symmetric_category_of_faithful F = {to_braided_category := _inst_14, symmetry' := _}
Turn a braided functor into a lax braided functor.
Equations
The identity braided monoidal functor.
Equations
Equations
The composition of braided monoidal functors.
Equations
- F.comp G = {to_monoidal_functor := {to_lax_monoidal_functor := (F.to_monoidal_functor ⊗⋙ G.to_monoidal_functor).to_lax_monoidal_functor, ε_is_iso := _, μ_is_iso := _}, braided' := _}
Interpret a natural isomorphism of the underlyling monoidal functors as an isomorphism of the braided monoidal functors.
Equations
- category_theory.braided_functor.mk_iso i = {hom := i.hom, inv := i.inv, hom_inv_id' := _, inv_hom_id' := _}
Equations
- category_theory.discrete.braided_category M = {braiding := λ (X Y : category_theory.discrete M), category_theory.discrete.eq_to_iso _, braiding_naturality' := _, hexagon_forward' := _, hexagon_reverse' := _}
A multiplicative morphism between commutative monoids gives a braided functor between the corresponding discrete braided monoidal categories.
Equations
The strength of the tensor product functor from C × C
to C
.
The tensor product functor from C × C
to C
as a monoidal functor.
Equations
- category_theory.tensor_monoidal C = {to_lax_monoidal_functor := {to_functor := {obj := (category_theory.monoidal_category.tensor C).obj, map := (category_theory.monoidal_category.tensor C).map, map_id' := _, map_comp' := _}, ε := (λ_ (𝟙_ C)).inv, μ := λ (X Y : C × C), category_theory.tensor_μ C X Y, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := _, μ_is_iso := _}