Half braidings and the Drinfeld center of a monoidal category #
We define Center C
to be pairs ⟨X, b⟩
, where X : C
and b
is a half-braiding on X
.
We show that Center C
is braided monoidal,
and provide the monoidal functor Center.forget
from Center C
back to C
.
Implementation notes #
Verifying the various axioms directly requires tedious rewriting.
Using the slice
tactic may make the proofs marginally more readable.
More exciting, however, would be to make possible one of the following options:
- Integration with homotopy.io / globular to give "picture proofs".
- The monoidal coherence theorem, so we can ignore associators (after which most of these proofs are trivial).
- Automating these proofs using
rewrite_search
or some relative.
In this file, we take the second approach using the monoidal composition ⊗≫
and the
coherence
tactic.
A half-braiding on X : C
is a family of isomorphisms X ⊗ U ≅ U ⊗ X
,
monoidally natural in U : C
.
Thinking of C
as a 2-category with a single 0
-morphism, these are the same as natural
transformations (in the pseudo- sense) of the identity 2-functor on C
, which send the unique
0
-morphism to X
.
- β (U : C) : CategoryTheory.MonoidalCategory.tensorObj X U ≅ CategoryTheory.MonoidalCategory.tensorObj U X
- monoidal (U U' : C) : (self.β (CategoryTheory.MonoidalCategory.tensorObj U U')).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X U U').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (self.β U).hom U') (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator U X U').hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft U (self.β U').hom) (CategoryTheory.MonoidalCategory.associator U U' X).inv)))
- naturality {U U' : C} (f : U ⟶ U') : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft X f) (self.β U').hom = CategoryTheory.CategoryStruct.comp (self.β U).hom (CategoryTheory.MonoidalCategory.whiskerRight f X)
Instances For
The Drinfeld center of a monoidal category C
has as objects pairs ⟨X, b⟩
, where X : C
and b
is a half-braiding on X
.
Equations
- CategoryTheory.Center C = ((X : C) × CategoryTheory.HalfBraiding X)
Instances For
A morphism in the Drinfeld center of C
.
- f : X.fst ⟶ Y.fst
- comm (U : C) : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight self.f U) (Y.snd.β U).hom = CategoryTheory.CategoryStruct.comp (X.snd.β U).hom (CategoryTheory.MonoidalCategory.whiskerLeft U self.f)
Instances For
Equations
- CategoryTheory.Center.instQuiver = { Hom := CategoryTheory.Center.Hom }
Equations
- CategoryTheory.Center.instCategory = CategoryTheory.Category.mk ⋯ ⋯ ⋯
Construct an isomorphism in the Drinfeld center from a morphism whose underlying morphism is an isomorphism.
Equations
- CategoryTheory.Center.isoMk f = { hom := f, inv := { f := CategoryTheory.inv f.f, comm := ⋯ }, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- X.whiskerLeft f = { f := CategoryTheory.MonoidalCategory.whiskerLeft X.fst f.f, comm := ⋯ }
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- CategoryTheory.Center.whiskerRight f Y = { f := CategoryTheory.MonoidalCategory.whiskerRight f.f Y.fst, comm := ⋯ }
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- CategoryTheory.Center.tensorHom f g = { f := CategoryTheory.MonoidalCategory.tensorHom f.f g.f, comm := ⋯ }
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- X.associator Y Z = CategoryTheory.Center.isoMk { f := (CategoryTheory.MonoidalCategory.associator X.fst Y.fst Z.fst).hom, comm := ⋯ }
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- X.leftUnitor = CategoryTheory.Center.isoMk { f := (CategoryTheory.MonoidalCategory.leftUnitor X.fst).hom, comm := ⋯ }
Instances For
Auxiliary definition for the MonoidalCategory
instance on Center C
.
Equations
- X.rightUnitor = CategoryTheory.Center.isoMk { f := (CategoryTheory.MonoidalCategory.rightUnitor X.fst).hom, comm := ⋯ }
Instances For
Equations
- CategoryTheory.Center.instMonoidalCategory = CategoryTheory.MonoidalCategory.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
The forgetful monoidal functor from the Drinfeld center to the original category.
Equations
- CategoryTheory.Center.forget C = { obj := fun (X : CategoryTheory.Center C) => X.fst, map := fun {X Y : CategoryTheory.Center C} (f : X ⟶ Y) => f.f, map_id := ⋯, map_comp := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Auxiliary definition for the BraidedCategory
instance on Center C
.
Equations
- X.braiding Y = CategoryTheory.Center.isoMk { f := (X.snd.β Y.fst).hom, comm := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Auxiliary construction for ofBraided
.
Equations
- CategoryTheory.Center.ofBraidedObj X = ⟨X, { β := fun (Y : C) => β_ X Y, monoidal := ⋯, naturality := ⋯ }⟩
Instances For
The functor lifting a braided category to its center, using the braiding as the half-braiding.
Equations
- CategoryTheory.Center.ofBraided C = { obj := CategoryTheory.Center.ofBraidedObj, map := fun {X Y : C} (f : X ⟶ Y) => { f := f, comm := ⋯ }, map_id := ⋯, map_comp := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.