Documentation

Mathlib.CategoryTheory.Monoidal.Rigid.Basic

Rigid (autonomous) monoidal categories #

This file defines rigid (autonomous) monoidal categories and the necessary theory about exact pairings and duals.

Main definitions #

Main statements #

Notation #

Future work #

Notes #

Although we construct the adjunction tensorLeft Y ⊣ tensorLeft X from ExactPairing X Y, this is not a bijective correspondence. I think the correct statement is that tensorLeft Y and tensorLeft X are module endofunctors of C as a right C module category, and ExactPairing X Y is in bijection with adjunctions compatible with this right C action.

References #

Tags #

rigid category, monoidal category

Coevaluation of an exact pairing.

Instances For

    Evaluation of an exact pairing.

    Instances For
      class CategoryTheory.HasRightDual {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (X : C) :
      Type (max u₁ v₁)

      A class of objects which have a right dual.

      Instances
        class CategoryTheory.HasLeftDual {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (Y : C) :
        Type (max u₁ v₁)

        A class of objects which have a left dual.

        Instances
          def CategoryTheory.«termᘁ_» :
          Lean.ParserDescr

          The left dual of the object X.

          Instances For
            def CategoryTheory.«term_ᘁ» :
            Lean.TrailingParserDescr

            The right dual of the object X.

            Instances For

              The right adjoint mate fᘁ : Xᘁ ⟶ Yᘁ of a morphism f : X ⟶ Y.

              Instances For

                The left adjoint mate ᘁf : ᘁY ⟶ ᘁX of a morphism f : X ⟶ Y.

                Instances For
                  def CategoryTheory.«term_ᘁ_1» :
                  Lean.TrailingParserDescr

                  The right adjoint mate fᘁ : Xᘁ ⟶ Yᘁ of a morphism f : X ⟶ Y.

                  Instances For
                    def CategoryTheory.«termᘁ__1» :
                    Lean.ParserDescr

                    The left adjoint mate ᘁf : ᘁY ⟶ ᘁX of a morphism f : X ⟶ Y.

                    Instances For

                      The composition of right adjoint mates is the adjoint mate of the composition.

                      The composition of right adjoint mates is the adjoint mate of the composition.

                      The composition of left adjoint mates is the adjoint mate of the composition.

                      The composition of left adjoint mates is the adjoint mate of the composition.

                      Given an exact pairing on Y Y', we get a bijection on hom-sets (Y' ⊗ X ⟶ Z) ≃ (X ⟶ Y ⊗ Z) by "pulling the string on the left" up or down.

                      This gives the adjunction tensorLeftAdjunction Y Y' : tensorLeft Y' ⊣ tensorLeft Y.

                      This adjunction is often referred to as "Frobenius reciprocity" in the fusion categories / planar algebras / subfactors literature.

                      Instances For

                        Given an exact pairing on Y Y', we get a bijection on hom-sets (X ⊗ Y ⟶ Z) ≃ (X ⟶ Z ⊗ Y') by "pulling the string on the right" up or down.

                        Instances For

                          If Y Y' have an exact pairing, then the functor tensorLeft Y' is left adjoint to tensorLeft Y.

                          Instances For

                            If Y Y' have an exact pairing, then the functor tensor_right Y is left adjoint to tensor_right Y'.

                            Instances For
                              @[implicit_reducible]

                              If Y has a left dual ᘁY, then it is a closed object, with the internal hom functor Y ⟶[C] - given by left tensoring by ᘁY. This has to be a definition rather than an instance to avoid diamonds, for example between category_theory.monoidal_closed.functor_closed and CategoryTheory.Monoidal.functorHasLeftDual. Moreover, in concrete applications there is often a more useful definition of the internal hom object than ᘁY ⊗ X, in which case the closed structure shouldn't come from HasLeftDual (e.g. in the category FinVect k, it is more convenient to define the internal hom as Y →ₗ[k] X rather than ᘁY ⊗ X even though these are naturally isomorphic).

                              Instances For
                                @[implicit_reducible]

                                Transport an exact pairing across an isomorphism in the first argument.

                                Instances For
                                  @[implicit_reducible]

                                  Transport an exact pairing across an isomorphism in the second argument.

                                  Instances For
                                    @[implicit_reducible]
                                    def CategoryTheory.exactPairingCongr {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X X' Y Y' : C} [ExactPairing X' Y'] (i : X X') (j : Y Y') :

                                    Transport an exact pairing across isomorphisms.

                                    Instances For
                                      def CategoryTheory.rightDualIso {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X Y₁ Y₂ : C} (p₁ : ExactPairing X Y₁) (p₂ : ExactPairing X Y₂) :
                                      Y₁ Y₂

                                      Right duals are isomorphic.

                                      Instances For
                                        def CategoryTheory.leftDualIso {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X₁ X₂ Y : C} (p₁ : ExactPairing X₁ Y) (p₂ : ExactPairing X₂ Y) :
                                        X₁ X₂

                                        Left duals are isomorphic.

                                        Instances For

                                          A right rigid monoidal category is one in which every object has a right dual.

                                          Instances

                                            A left rigid monoidal category is one in which every object has a right dual.

                                            Instances
                                              @[implicit_reducible]

                                              Any left rigid category is monoidal closed, with the internal hom X ⟶[C] Y = ᘁX ⊗ Y. This has to be a definition rather than an instance to avoid diamonds, for example between category_theory.monoidal_closed.functor_category and CategoryTheory.Monoidal.leftRigidFunctorCategory. Moreover, in concrete applications there is often a more useful definition of the internal hom object than ᘁY ⊗ X, in which case the monoidal closed structure shouldn't come the rigid structure (e.g. in the category FinVect k, it is more convenient to define the internal hom as Y →ₗ[k] X rather than ᘁY ⊗ X even though these are naturally isomorphic).

                                              Instances For

                                                A rigid monoidal category is a monoidal category which is left rigid and right rigid.

                                                Instances