Documentation

Mathlib.CategoryTheory.Monoidal.Braided.Basic

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 #

References #

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
      def CategoryTheory.braidedCategoryOfFaithful {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] [MonoidalCategory C] [MonoidalCategory D] (F : Functor C D) [F.Monoidal] [F.Faithful] [BraidedCategory D] (β : (X Y : C) → MonoidalCategoryStruct.tensorObj X Y MonoidalCategoryStruct.tensorObj Y X) (w : ∀ (X Y : C), CategoryStruct.comp (Functor.LaxMonoidal.μ F X Y) (F.map (β X Y).hom) = CategoryStruct.comp (β_ (F.obj X) (F.obj Y)).hom (Functor.LaxMonoidal.μ F Y X)) :

      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
        noncomputable def CategoryTheory.braidedCategoryOfFullyFaithful {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] [MonoidalCategory C] [MonoidalCategory D] (F : Functor C D) [F.Monoidal] [F.Full] [F.Faithful] [BraidedCategory D] :

        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 https://stacks.math.columbia.edu/tag/0FFW.

          Instances
            @[simp]
            theorem CategoryTheory.SymmetricCategory.symmetry_assoc {C : Type u} {inst✝ : Category.{v, u} C} {inst✝¹ : MonoidalCategory C} [self : SymmetricCategory C] (X Y : C) {Z : C} (h : MonoidalCategoryStruct.tensorObj X Y Z) :
            CategoryStruct.comp (β_ X Y).hom (CategoryStruct.comp (β_ Y X).hom h) = h
            class CategoryTheory.Functor.LaxBraided {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] (F : Functor C D) extends F.LaxMonoidal :
            Type (max u₁ v₂)

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

            Instances
              theorem CategoryTheory.Functor.LaxBraided.braided_assoc {C : Type u₁} {inst✝ : Category.{v₁, u₁} C} {inst✝¹ : MonoidalCategory C} {inst✝² : BraidedCategory C} {D : Type u₂} {inst✝³ : Category.{v₂, u₂} D} {inst✝⁴ : MonoidalCategory D} {inst✝⁵ : BraidedCategory D} {F : Functor C D} [self : F.LaxBraided] (X Y : C) {Z : D} (h : F.obj (MonoidalCategoryStruct.tensorObj Y X) Z) :
              CategoryStruct.comp (LaxMonoidal.μ F X Y) (CategoryStruct.comp (F.map (β_ X Y).hom) h) = CategoryStruct.comp (β_ (F.obj X) (F.obj Y)).hom (CategoryStruct.comp (LaxMonoidal.μ F Y X) h)
              structure CategoryTheory.LaxBraidedFunctor (C : Type u₁) [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (D : Type u₂) [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] extends CategoryTheory.Functor C D :
              Type (max (max (max u₁ u₂) v₁) v₂)

              Bundled version of lax braided functors.

              Instances For

                Constructor for LaxBraidedFunctor C D.

                Equations
                Instances For

                  The lax monoidal functor induced by a lax braided functor.

                  Equations
                  • F.toLaxMonoidalFunctor = { toFunctor := F.toFunctor, laxMonoidal := inferInstance }
                  Instances For
                    theorem CategoryTheory.LaxBraidedFunctor.comp_hom_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] {F G H : LaxBraidedFunctor C D} (α : F G) (β : G H) {Z : Functor C D} (h : H.toLaxMonoidalFunctor.toFunctor Z) :

                    Constructor for morphisms in the category LaxBraiededFunctor C D.

                    Equations
                    Instances For

                      Constructor for isomorphisms in the category LaxBraidedFunctor C D.

                      Equations
                      Instances For
                        @[simp]
                        @[simp]
                        def CategoryTheory.LaxBraidedFunctor.isoOfComponents {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] {F G : LaxBraidedFunctor C D} (e : (X : C) → F.obj X G.obj X) (naturality : ∀ {X Y : C} (f : X Y), CategoryStruct.comp (F.map f) (e Y).hom = CategoryStruct.comp (e X).hom (G.map f) := by aesop_cat) (unit : CategoryStruct.comp (Functor.LaxMonoidal.ε F.toFunctor) (e (𝟙_ C)).hom = Functor.LaxMonoidal.ε G.toFunctor := by aesop_cat) (tensor : ∀ (X Y : C), CategoryStruct.comp (Functor.LaxMonoidal.μ F.toFunctor X Y) (e (MonoidalCategoryStruct.tensorObj X Y)).hom = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (e X).hom (e Y).hom) (Functor.LaxMonoidal.μ G.toFunctor X Y) := by aesop_cat) :
                        F G

                        Constructor for isomorphisms between lax braided functors.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.LaxBraidedFunctor.isoOfComponents_hom_hom_app {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] {F G : LaxBraidedFunctor C D} (e : (X : C) → F.obj X G.obj X) (naturality : ∀ {X Y : C} (f : X Y), CategoryStruct.comp (F.map f) (e Y).hom = CategoryStruct.comp (e X).hom (G.map f) := by aesop_cat) (unit : CategoryStruct.comp (Functor.LaxMonoidal.ε F.toFunctor) (e (𝟙_ C)).hom = Functor.LaxMonoidal.ε G.toFunctor := by aesop_cat) (tensor : ∀ (X Y : C), CategoryStruct.comp (Functor.LaxMonoidal.μ F.toFunctor X Y) (e (MonoidalCategoryStruct.tensorObj X Y)).hom = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (e X).hom (e Y).hom) (Functor.LaxMonoidal.μ G.toFunctor X Y) := by aesop_cat) (X : C) :
                          (isoOfComponents e unit tensor).hom.hom.app X = (e X).hom
                          @[simp]
                          theorem CategoryTheory.LaxBraidedFunctor.isoOfComponents_inv_hom_app {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] {F G : LaxBraidedFunctor C D} (e : (X : C) → F.obj X G.obj X) (naturality : ∀ {X Y : C} (f : X Y), CategoryStruct.comp (F.map f) (e Y).hom = CategoryStruct.comp (e X).hom (G.map f) := by aesop_cat) (unit : CategoryStruct.comp (Functor.LaxMonoidal.ε F.toFunctor) (e (𝟙_ C)).hom = Functor.LaxMonoidal.ε G.toFunctor := by aesop_cat) (tensor : ∀ (X Y : C), CategoryStruct.comp (Functor.LaxMonoidal.μ F.toFunctor X Y) (e (MonoidalCategoryStruct.tensorObj X Y)).hom = CategoryStruct.comp (MonoidalCategoryStruct.tensorHom (e X).hom (e Y).hom) (Functor.LaxMonoidal.μ G.toFunctor X Y) := by aesop_cat) (X : C) :
                          (isoOfComponents e unit tensor).inv.hom.app X = (e X).inv
                          class CategoryTheory.Functor.Braided {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] (F : Functor C D) extends F.Monoidal, F.LaxBraided :
                          Type (max u₁ v₂)

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

                          Instances
                            @[simp]
                            theorem CategoryTheory.Functor.map_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] [BraidedCategory D] (F : Functor C D) (X Y : C) [F.Braided] :
                            F.map (β_ X Y).hom = CategoryStruct.comp (OplaxMonoidal.δ F X Y) (CategoryStruct.comp (β_ (F.obj X) (F.obj Y)).hom (LaxMonoidal.μ F Y X))

                            A braided category with a faithful braided functor to a symmetric category is itself symmetric.

                            Equations
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              instance CategoryTheory.Discrete.monoidalFunctorBraided {M : Type u} [CommMonoid M] {N : Type u} [CommMonoid N] (F : M →* N) :
                              (monoidalFunctor F).Braided

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

                              Equations
                              def CategoryTheory.MonoidalCategory.tensorμ {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ : C) :
                              tensorObj (tensorObj X₁ X₂) (tensorObj Y₁ Y₂) tensorObj (tensorObj X₁ Y₁) (tensorObj X₂ Y₂)

                              Swap the second and third objects in (X₁ ⊗ X₂) ⊗ (Y₁ ⊗ Y₂). This is used to strength 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
                                def CategoryTheory.MonoidalCategory.tensorδ {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ : C) :
                                tensorObj (tensorObj X₁ Y₁) (tensorObj X₂ Y₂) tensorObj (tensorObj X₁ X₂) (tensorObj Y₁ Y₂)

                                The inverse of tensorμ.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_tensorδ {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ : C) :
                                  CategoryStruct.comp (tensorμ X₁ X₂ Y₁ Y₂) (tensorδ X₁ X₂ Y₁ Y₂) = CategoryStruct.id (tensorObj (tensorObj X₁ X₂) (tensorObj Y₁ Y₂))
                                  @[simp]
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_tensorδ_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ : C) {Z : C} (h : tensorObj (tensorObj X₁ X₂) (tensorObj Y₁ Y₂) Z) :
                                  CategoryStruct.comp (tensorμ X₁ X₂ Y₁ Y₂) (CategoryStruct.comp (tensorδ X₁ X₂ Y₁ Y₂) h) = h
                                  @[simp]
                                  theorem CategoryTheory.MonoidalCategory.tensorδ_tensorμ {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ : C) :
                                  CategoryStruct.comp (tensorδ X₁ X₂ Y₁ Y₂) (tensorμ X₁ X₂ Y₁ Y₂) = CategoryStruct.id (tensorObj (tensorObj X₁ Y₁) (tensorObj X₂ Y₂))
                                  @[simp]
                                  theorem CategoryTheory.MonoidalCategory.tensorδ_tensorμ_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ : C) {Z : C} (h : tensorObj (tensorObj X₁ Y₁) (tensorObj X₂ Y₂) Z) :
                                  CategoryStruct.comp (tensorδ X₁ X₂ Y₁ Y₂) (CategoryStruct.comp (tensorμ X₁ X₂ Y₁ Y₂) h) = h
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_natural {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {X₁ X₂ Y₁ Y₂ U₁ U₂ V₁ V₂ : C} (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (g₁ : U₁ V₁) (g₂ : U₂ V₂) :
                                  CategoryStruct.comp (tensorHom (tensorHom f₁ f₂) (tensorHom g₁ g₂)) (tensorμ Y₁ Y₂ V₁ V₂) = CategoryStruct.comp (tensorμ X₁ X₂ U₁ U₂) (tensorHom (tensorHom f₁ g₁) (tensorHom f₂ g₂))
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_natural_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {X₁ X₂ Y₁ Y₂ U₁ U₂ V₁ V₂ : C} (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (g₁ : U₁ V₁) (g₂ : U₂ V₂) {Z : C} (h : tensorObj (tensorObj Y₁ V₁) (tensorObj Y₂ V₂) Z) :
                                  CategoryStruct.comp (tensorHom (tensorHom f₁ f₂) (tensorHom g₁ g₂)) (CategoryStruct.comp (tensorμ Y₁ Y₂ V₁ V₂) h) = CategoryStruct.comp (tensorμ X₁ X₂ U₁ U₂) (CategoryStruct.comp (tensorHom (tensorHom f₁ g₁) (tensorHom f₂ g₂)) h)
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_natural_left {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {X₁ X₂ Y₁ Y₂ : C} (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (Z₁ Z₂ : C) :
                                  CategoryStruct.comp (whiskerRight (tensorHom f₁ f₂) (tensorObj Z₁ Z₂)) (tensorμ Y₁ Y₂ Z₁ Z₂) = CategoryStruct.comp (tensorμ X₁ X₂ Z₁ Z₂) (tensorHom (whiskerRight f₁ Z₁) (whiskerRight f₂ Z₂))
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_natural_left_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {X₁ X₂ Y₁ Y₂ : C} (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) (Z₁ Z₂ : C) {Z : C} (h : tensorObj (tensorObj Y₁ Z₁) (tensorObj Y₂ Z₂) Z) :
                                  CategoryStruct.comp (whiskerRight (tensorHom f₁ f₂) (tensorObj Z₁ Z₂)) (CategoryStruct.comp (tensorμ Y₁ Y₂ Z₁ Z₂) h) = CategoryStruct.comp (tensorμ X₁ X₂ Z₁ Z₂) (CategoryStruct.comp (tensorHom (whiskerRight f₁ Z₁) (whiskerRight f₂ Z₂)) h)
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_natural_right {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (Z₁ Z₂ : C) {X₁ X₂ Y₁ Y₂ : C} (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) :
                                  CategoryStruct.comp (whiskerLeft (tensorObj Z₁ Z₂) (tensorHom f₁ f₂)) (tensorμ Z₁ Z₂ Y₁ Y₂) = CategoryStruct.comp (tensorμ Z₁ Z₂ X₁ X₂) (tensorHom (whiskerLeft Z₁ f₁) (whiskerLeft Z₂ f₂))
                                  theorem CategoryTheory.MonoidalCategory.tensorμ_natural_right_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (Z₁ Z₂ : C) {X₁ X₂ Y₁ Y₂ : C} (f₁ : X₁ Y₁) (f₂ : X₂ Y₂) {Z : C} (h : tensorObj (tensorObj Z₁ Y₁) (tensorObj Z₂ Y₂) Z) :
                                  CategoryStruct.comp (whiskerLeft (tensorObj Z₁ Z₂) (tensorHom f₁ f₂)) (CategoryStruct.comp (tensorμ Z₁ Z₂ Y₁ Y₂) h) = CategoryStruct.comp (tensorμ Z₁ Z₂ X₁ X₂) (CategoryStruct.comp (tensorHom (whiskerLeft Z₁ f₁) (whiskerLeft Z₂ f₂)) h)
                                  theorem CategoryTheory.MonoidalCategory.tensor_left_unitality {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) :
                                  (leftUnitor (tensorObj X₁ X₂)).hom = CategoryStruct.comp (whiskerRight (leftUnitor (𝟙_ C)).inv (tensorObj X₁ X₂)) (CategoryStruct.comp (tensorμ (𝟙_ C) (𝟙_ C) X₁ X₂) (tensorHom (leftUnitor X₁).hom (leftUnitor X₂).hom))
                                  theorem CategoryTheory.MonoidalCategory.tensor_left_unitality_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) {Z : C} (h : tensorObj X₁ X₂ Z) :
                                  CategoryStruct.comp (leftUnitor (tensorObj X₁ X₂)).hom h = CategoryStruct.comp (whiskerRight (leftUnitor (𝟙_ C)).inv (tensorObj X₁ X₂)) (CategoryStruct.comp (tensorμ (𝟙_ C) (𝟙_ C) X₁ X₂) (CategoryStruct.comp (tensorHom (leftUnitor X₁).hom (leftUnitor X₂).hom) h))
                                  theorem CategoryTheory.MonoidalCategory.tensor_right_unitality {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) :
                                  (rightUnitor (tensorObj X₁ X₂)).hom = CategoryStruct.comp (whiskerLeft (tensorObj X₁ X₂) (leftUnitor (𝟙_ C)).inv) (CategoryStruct.comp (tensorμ X₁ X₂ (𝟙_ C) (𝟙_ C)) (tensorHom (rightUnitor X₁).hom (rightUnitor X₂).hom))
                                  theorem CategoryTheory.MonoidalCategory.tensor_right_unitality_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) {Z : C} (h : tensorObj X₁ X₂ Z) :
                                  CategoryStruct.comp (rightUnitor (tensorObj X₁ X₂)).hom h = CategoryStruct.comp (whiskerLeft (tensorObj X₁ X₂) (leftUnitor (𝟙_ C)).inv) (CategoryStruct.comp (tensorμ X₁ X₂ (𝟙_ C) (𝟙_ C)) (CategoryStruct.comp (tensorHom (rightUnitor X₁).hom (rightUnitor X₂).hom) h))
                                  theorem CategoryTheory.MonoidalCategory.tensor_associativity {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ Z₁ Z₂ : C) :
                                  CategoryStruct.comp (whiskerRight (tensorμ X₁ X₂ Y₁ Y₂) (tensorObj Z₁ Z₂)) (CategoryStruct.comp (tensorμ (tensorObj X₁ Y₁) (tensorObj X₂ Y₂) Z₁ Z₂) (tensorHom (associator X₁ Y₁ Z₁).hom (associator X₂ Y₂ Z₂).hom)) = CategoryStruct.comp (associator (tensorObj X₁ X₂) (tensorObj Y₁ Y₂) (tensorObj Z₁ Z₂)).hom (CategoryStruct.comp (whiskerLeft (tensorObj X₁ X₂) (tensorμ Y₁ Y₂ Z₁ Z₂)) (tensorμ X₁ X₂ (tensorObj Y₁ Z₁) (tensorObj Y₂ Z₂)))
                                  theorem CategoryTheory.MonoidalCategory.tensor_associativity_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ Y₁ Y₂ Z₁ Z₂ : C) {Z : C} (h : tensorObj (tensorObj X₁ (tensorObj Y₁ Z₁)) (tensorObj X₂ (tensorObj Y₂ Z₂)) Z) :
                                  CategoryStruct.comp (whiskerRight (tensorμ X₁ X₂ Y₁ Y₂) (tensorObj Z₁ Z₂)) (CategoryStruct.comp (tensorμ (tensorObj X₁ Y₁) (tensorObj X₂ Y₂) Z₁ Z₂) (CategoryStruct.comp (tensorHom (associator X₁ Y₁ Z₁).hom (associator X₂ Y₂ Z₂).hom) h)) = CategoryStruct.comp (associator (tensorObj X₁ X₂) (tensorObj Y₁ Y₂) (tensorObj Z₁ Z₂)).hom (CategoryStruct.comp (whiskerLeft (tensorObj X₁ X₂) (tensorμ Y₁ Y₂ Z₁ Z₂)) (CategoryStruct.comp (tensorμ X₁ X₂ (tensorObj Y₁ Z₁) (tensorObj Y₂ Z₂)) h))
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  theorem CategoryTheory.MonoidalCategory.leftUnitor_monoidal {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) :
                                  tensorHom (leftUnitor X₁).hom (leftUnitor X₂).hom = CategoryStruct.comp (tensorμ (𝟙_ C) X₁ (𝟙_ C) X₂) (CategoryStruct.comp (whiskerRight (leftUnitor (𝟙_ C)).hom (tensorObj X₁ X₂)) (leftUnitor (tensorObj X₁ X₂)).hom)
                                  theorem CategoryTheory.MonoidalCategory.leftUnitor_monoidal_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) {Z : C} (h : tensorObj X₁ X₂ Z) :
                                  CategoryStruct.comp (tensorHom (leftUnitor X₁).hom (leftUnitor X₂).hom) h = CategoryStruct.comp (tensorμ (𝟙_ C) X₁ (𝟙_ C) X₂) (CategoryStruct.comp (whiskerRight (leftUnitor (𝟙_ C)).hom (tensorObj X₁ X₂)) (CategoryStruct.comp (leftUnitor (tensorObj X₁ X₂)).hom h))
                                  theorem CategoryTheory.MonoidalCategory.rightUnitor_monoidal {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) :
                                  tensorHom (rightUnitor X₁).hom (rightUnitor X₂).hom = CategoryStruct.comp (tensorμ X₁ (𝟙_ C) X₂ (𝟙_ C)) (CategoryStruct.comp (whiskerLeft (tensorObj X₁ X₂) (leftUnitor (𝟙_ C)).hom) (rightUnitor (tensorObj X₁ X₂)).hom)
                                  theorem CategoryTheory.MonoidalCategory.rightUnitor_monoidal_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ : C) {Z : C} (h : tensorObj X₁ X₂ Z) :
                                  CategoryStruct.comp (tensorHom (rightUnitor X₁).hom (rightUnitor X₂).hom) h = CategoryStruct.comp (tensorμ X₁ (𝟙_ C) X₂ (𝟙_ C)) (CategoryStruct.comp (whiskerLeft (tensorObj X₁ X₂) (leftUnitor (𝟙_ C)).hom) (CategoryStruct.comp (rightUnitor (tensorObj X₁ X₂)).hom h))
                                  theorem CategoryTheory.MonoidalCategory.associator_monoidal {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ X₃ Y₁ Y₂ Y₃ : C) :
                                  CategoryStruct.comp (tensorμ (tensorObj X₁ X₂) X₃ (tensorObj Y₁ Y₂) Y₃) (CategoryStruct.comp (whiskerRight (tensorμ X₁ X₂ Y₁ Y₂) (tensorObj X₃ Y₃)) (associator (tensorObj X₁ Y₁) (tensorObj X₂ Y₂) (tensorObj X₃ Y₃)).hom) = CategoryStruct.comp (tensorHom (associator X₁ X₂ X₃).hom (associator Y₁ Y₂ Y₃).hom) (CategoryStruct.comp (tensorμ X₁ (tensorObj X₂ X₃) Y₁ (tensorObj Y₂ Y₃)) (whiskerLeft (tensorObj X₁ Y₁) (tensorμ X₂ X₃ Y₂ Y₃)))
                                  theorem CategoryTheory.MonoidalCategory.associator_monoidal_assoc {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X₁ X₂ X₃ Y₁ Y₂ Y₃ : C) {Z : C} (h : tensorObj (tensorObj X₁ Y₁) (tensorObj (tensorObj X₂ Y₂) (tensorObj X₃ Y₃)) Z) :
                                  CategoryStruct.comp (tensorμ (tensorObj X₁ X₂) X₃ (tensorObj Y₁ Y₂) Y₃) (CategoryStruct.comp (whiskerRight (tensorμ X₁ X₂ Y₁ Y₂) (tensorObj X₃ Y₃)) (CategoryStruct.comp (associator (tensorObj X₁ Y₁) (tensorObj X₂ Y₂) (tensorObj X₃ Y₃)).hom h)) = CategoryStruct.comp (tensorHom (associator X₁ X₂ X₃).hom (associator Y₁ Y₂ Y₃).hom) (CategoryStruct.comp (tensorμ X₁ (tensorObj X₂ X₃) Y₁ (tensorObj Y₂ Y₃)) (CategoryStruct.comp (whiskerLeft (tensorObj X₁ Y₁) (tensorμ X₂ X₃ Y₂ Y₃)) h))
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  @[simp]
                                  theorem CategoryTheory.op_hom_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  (β_ X Y).hom.op = (β_ (Opposite.op Y) (Opposite.op X)).hom
                                  @[simp]
                                  theorem CategoryTheory.op_inv_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  (β_ X Y).inv.op = (β_ (Opposite.op Y) (Opposite.op X)).inv
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.mop_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  (β_ X Y).mop = β_ { unmop := Y } { unmop := X }
                                  @[simp]
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.mop_hom_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  (β_ X Y).hom.mop = (β_ { unmop := Y } { unmop := X }).hom
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.unmop_hom_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : Cᴹᵒᵖ) :
                                  (β_ X Y).hom.unmop = (β_ Y.unmop X.unmop).hom
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.mop_inv_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  (β_ X Y).inv.mop = (β_ { unmop := Y } { unmop := X }).inv
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.unmop_inv_braiding {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : Cᴹᵒᵖ) :
                                  (β_ X Y).inv.unmop = (β_ Y.unmop X.unmop).inv
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.mopFunctor_μ {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  Functor.LaxMonoidal.μ (mopFunctor C) X Y = (β_ { unmop := X } { unmop := Y }).hom
                                  @[simp]
                                  theorem CategoryTheory.MonoidalOpposite.mopFunctor_δ {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] (X Y : C) :
                                  Functor.OplaxMonoidal.δ (mopFunctor C) X Y = (β_ { unmop := X } { unmop := Y }).inv
                                  Equations
                                  • One or more equations did not get rendered due to their size.

                                  The identity functor on C, viewed as a functor from C to its monoidal opposite, upgraded to a braided functor.

                                  Equations

                                  The identity functor on C, viewed as a functor from the monoidal opposite of C to C, upgraded to a braided functor.

                                  Equations
                                  @[reducible, inline]

                                  The braided monoidal category obtained from C by replacing its braiding β_ X Y : X ⊗ Y ≅ Y ⊗ X with the inverse (β_ Y X)⁻¹ : X ⊗ Y ≅ Y ⊗ X. This corresponds to the automorphism of the braid group swapping over-crossings and under-crossings.

                                  Equations
                                  • CategoryTheory.reverseBraiding C = { braiding := fun (X Y : C) => (β_ Y X).symm, braiding_naturality_right := , braiding_naturality_left := , hexagon_forward := , hexagon_reverse := }
                                  Instances For

                                    The identity functor from C to C, where the codomain is given the reversed braiding, upgraded to a braided functor.

                                    Equations
                                    Instances For