Half braidings and the Drinfeld center of a monoidal category #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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
.
Future work #
Verifying the various axioms here is done by 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; I'm unsure if the monoidal coherence theorem is even usable in dependent type theory).
- Automating these proofs using
rewrite_search
or some relative.
- β : Π (U : C), X ⊗ U ≅ U ⊗ X
- monoidal' : (∀ (U U' : C), (self.β (U ⊗ U')).hom = (α_ X U U').inv ≫ ((self.β U).hom ⊗ 𝟙 U') ≫ (α_ U X U').hom ≫ (𝟙 U ⊗ (self.β U').hom) ≫ (α_ U U' X).inv) . "obviously"
- naturality' : (∀ {U U' : C} (f : U ⟶ U'), (𝟙 X ⊗ f) ≫ (self.β U').hom = (self.β U).hom ≫ (f ⊗ 𝟙 X)) . "obviously"
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
.
Instances for category_theory.half_braiding
- category_theory.half_braiding.has_sizeof_inst
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
- category_theory.center C = Σ (X : C), category_theory.half_braiding X
Instances for category_theory.center
- f : X.fst ⟶ Y.fst
- comm' : (∀ (U : C), (self.f ⊗ 𝟙 U) ≫ (Y.snd.β U).hom = (X.snd.β U).hom ≫ (𝟙 U ⊗ self.f)) . "obviously"
A morphism in the Drinfeld center of C
.
Instances for category_theory.center.hom
- category_theory.center.hom.has_sizeof_inst
Equations
- category_theory.center.category_theory.category = {to_category_struct := {to_quiver := {hom := category_theory.center.hom _inst_2}, id := λ (X : category_theory.center C), {f := 𝟙 X.fst, comm' := _}, comp := λ (X Y Z : category_theory.center C) (f : X ⟶ Y) (g : Y ⟶ Z), {f := f.f ≫ g.f, comm' := _}}, id_comp' := _, comp_id' := _, assoc' := _}
Construct an isomorphism in the Drinfeld center from a morphism whose underlying morphism is an isomorphism.
Equations
- category_theory.center.iso_mk f = {hom := f, inv := {f := category_theory.inv f.f _inst_3, comm' := _}, hom_inv_id' := _, inv_hom_id' := _}
Auxiliary definition for the monoidal_category
instance on center C
.
Auxiliary definition for the monoidal_category
instance on center C
.
Auxiliary definition for the monoidal_category
instance on center C
.
Auxiliary definition for the monoidal_category
instance on center C
.
Auxiliary definition for the monoidal_category
instance on center C
.
Equations
- X.left_unitor = category_theory.center.iso_mk {f := (λ_ X.fst).hom, comm' := _}
Auxiliary definition for the monoidal_category
instance on center C
.
Equations
- X.right_unitor = category_theory.center.iso_mk {f := (ρ_ X.fst).hom, comm' := _}
Equations
- category_theory.center.category_theory.monoidal_category = {tensor_obj := λ (X Y : category_theory.center C), X.tensor_obj Y, tensor_hom := λ (X₁ Y₁ X₂ Y₂ : category_theory.center C) (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂), category_theory.center.tensor_hom f g, tensor_id' := _, tensor_comp' := _, tensor_unit := category_theory.center.tensor_unit _inst_2, associator := category_theory.center.associator _inst_2, associator_naturality' := _, left_unitor := category_theory.center.left_unitor _inst_2, left_unitor_naturality' := _, right_unitor := category_theory.center.right_unitor _inst_2, right_unitor_naturality' := _, pentagon' := _, triangle' := _}
The forgetful monoidal functor from the Drinfeld center to the original category.
Equations
- category_theory.center.forget C = {to_lax_monoidal_functor := {to_functor := {obj := λ (X : category_theory.center C), X.fst, map := λ (X Y : category_theory.center C) (f : X ⟶ Y), f.f, map_id' := _, map_comp' := _}, ε := 𝟙 (𝟙_ C), μ := λ (X Y : category_theory.center C), 𝟙 (X.fst ⊗ Y.fst), μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := _, μ_is_iso := _}
Auxiliary definition for the braided_category
instance on center C
.
Equations
- category_theory.center.braided_category_center = {braiding := category_theory.center.braiding _inst_2, braiding_naturality' := _, hexagon_forward' := _, hexagon_reverse' := _}
Auxiliary construction for of_braided
.
Equations
- category_theory.center.of_braided_obj X = ⟨X, {β := λ (Y : C), β_ X Y, monoidal' := _, naturality' := _}⟩
The functor lifting a braided category to its center, using the braiding as the half-braiding.
Equations
- category_theory.center.of_braided C = {to_lax_monoidal_functor := {to_functor := {obj := category_theory.center.of_braided_obj _inst_3, map := λ (X X' : C) (f : X ⟶ X'), {f := f, comm' := _}, map_id' := _, map_comp' := _}, ε := {f := 𝟙 (𝟙_ (category_theory.center C)).fst, comm' := _}, μ := λ (X Y : C), {f := 𝟙 ({obj := category_theory.center.of_braided_obj _inst_3, map := λ (X X' : C) (f : X ⟶ X'), {f := f, comm' := _}, map_id' := _, map_comp' := _}.obj X ⊗ {obj := category_theory.center.of_braided_obj _inst_3, map := λ (X X' : C) (f : X ⟶ X'), {f := f, comm' := _}, map_id' := _, map_comp' := _}.obj Y).fst, comm' := _}, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := _, μ_is_iso := _}