Documentation

Mathlib.CategoryTheory.Monoidal.Multifunctor

Constructing monoidal functors from natural transformations between multifunctors #

This file provides alternative constructors for (op/lax) monoidal functors, given tensorators μ : F - ⊗ F - ⟶ F (- ⊗ -) / δ : F (- ⊗ -) ⟶ F - ⊗ F - as natural transformations between bifunctors. The associativity conditions are phrased as equalities of natural transformations between trifunctors (F - ⊗ F -) ⊗ F - ⟶ F (- ⊗ (- ⊗ -)) / F ((- ⊗ -) ⊗ -) ⟶ F - ⊗ (F - ⊗ F -), and the unitality conditions are phrased as equalities of natural transformation between functors.

Once we have more API for quadrifunctors, we can add constructors for monoidal category structures by phrasing the pentagon axiom as an equality of natural transformations between quadrifunctors.

@[reducible, inline]

The bifunctor (F -) ⊗ -.

Instances For
    @[reducible, inline]

    The bifunctor - ⊗ (F -).

    Instances For
      @[reducible, inline]

      The bifunctor F - ⊗ F -.

      Instances For
        @[reducible, inline]

        The bifunctor F (- ⊗ -).

        Instances For
          @[reducible, inline]

          The trifunctor (F - ⊗ F -) ⊗ F -.

          Instances For
            @[reducible, inline]

            The trifunctor F - ⊗ (F - ⊗ F -).

            Instances For
              @[reducible, inline]

              The trifunctor F (- ⊗ -) ⊗ F -.

              Instances For
                @[reducible, inline]

                The trifunctor F - ⊗ F (- ⊗ -).

                Instances For
                  @[reducible, inline]

                  The trifunctor F ((- ⊗ -) ⊗ -)

                  Instances For
                    @[reducible, inline]

                    The trifunctor F (- ⊗ (- ⊗ -))

                    Instances For

                      The natural isomorphism of bifunctors F - ⊗ F - ≅ F (- ⊗ -), given a monoidal functor F.

                      Instances For

                        The functor which associates to a functor F the bifunctor F - ⊗ F -.

                        Instances For
                          @[simp]
                          theorem CategoryTheory.MonoidalCategory.curriedTensorPreFunctor_map_app_app {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] [MonoidalCategory D] {F₁ F₂ : Functor C D} (f : F₁ F₂) (X₁ X₂ : C) :
                          ((curriedTensorPreFunctor.map f).app X₁).app X₂ = tensorHom (f.app X₁) (f.app X₂)
                          @[reducible, inline]

                          The functor which associates to a functor F the bifunctor F (- ⊗ -).

                          Instances For

                            Lax monoidal functors #

                            Given a unit morphism ε : 𝟙_ D ⟶ F.obj (𝟙_ C)) and a tensorator μ : F - ⊗ F - ⟶ F (- ⊗ -) such that the diagrams below commute, we define CategoryTheory.Functor.LaxMonoidal.ofBifunctor : F.LaxMonoidal.

                            Associativity hexagon #

                                  (F - ⊗ F -) ⊗ F -
                                    /           \
                                   v             v
                            F (- ⊗ -) ⊗ F -    F - ⊗ (F - ⊗ F -)
                                   |             |
                                   v             v
                            F ((- ⊗ -) ⊗ -)    F - ⊗ F (- ⊗ -)
                                    \            /
                                     v          v
                                   F (- ⊗ (- ⊗ -))
                            

                            Left unitality square #

                            𝟙 ⊗ F - ⟶ F 𝟙 ⊗ F -
                              |           |
                              v           v
                              F    ←   F (𝟙 ⊗ -)
                            

                            Right unitality square #

                            F - ⊗ 𝟙 ⟶ F - ⊗ F 𝟙
                              |           |
                              v           v
                              F   ←   F (- ⊗ 𝟙)
                            
                            @[implicit_reducible]

                            F is lax monoidal given a unit morphism ε : 𝟙_ D ⟶ F.obj (𝟙_ C)) and a tensorator μ : F - ⊗ F - ⟶ F (- ⊗ -) as a natural transformation between bifunctors, satisfying the relevant compatibilities.

                            Instances For

                              Oplax monoidal functors #

                              Given a counit morphism η : F.obj (𝟙_ C)) ⟶ 𝟙_ D and a tensorator δ : F (- ⊗ -) ⟶ F - ⊗ F - such that the diagrams below commute, we define CategoryTheory.Functor.OplaxMonoidal.ofBifunctor : F.OplaxMonoidal.

                              Oplax associativity hexagon #

                                    F ((- ⊗ -) ⊗ -)
                                      /           \
                                     v             v
                              F (- ⊗ -) ⊗ F -      F (- ⊗ (- ⊗ -))
                                     |                |
                                     v                v
                              (F - ⊗ F -) ⊗ F -    F - ⊗ F (- ⊗ -)
                                      \            /
                                       v          v
                                     F - ⊗ (F - ⊗ F -)
                              

                              Oplax left unitality square #

                                F   ⟶  F (𝟙 ⊗ -)
                                |           |
                                v           v
                              𝟙 ⊗ F - ← F 𝟙 ⊗ F -
                              

                              Oplax right unitality square #

                                F  ⟶   F (- ⊗ 𝟙)
                                |           |
                                v           v
                              F - ⊗ 𝟙 ← F - ⊗ F 𝟙
                              

                              The left map in the oplax left unitality square.

                              Instances For

                                The left map in the oplax right unitality square.

                                Instances For
                                  @[implicit_reducible]

                                  F is oplax monoidal given a counit morphism η : F.obj (𝟙_ C) ⟶ 𝟙_ D and a tensorator δ : F (- ⊗ -) ⟶ F - ⊗ F - as a natural transformation between bifunctors, satisfying the relevant compatibilities.

                                  Instances For
                                    @[implicit_reducible]
                                    def CategoryTheory.Functor.Monoidal.ofBifunctor {C : Type u_1} [Category.{v_1, u_1} C] [MonoidalCategory C] {D : Type u_2} [Category.{v_2, u_2} D] [MonoidalCategory D] {F : Functor C D} (ε : MonoidalCategoryStruct.tensorUnit D F.obj (MonoidalCategoryStruct.tensorUnit C)) (μ : MonoidalCategory.curriedTensorPre F MonoidalCategory.curriedTensorPost F) (associativity : LaxMonoidal.ofBifunctor.firstMap μ = LaxMonoidal.ofBifunctor.secondMap μ) (left_unitality : LaxMonoidal.ofBifunctor.leftMapₗ F = CategoryStruct.comp (LaxMonoidal.ofBifunctor.topMapₗ ε) (CategoryStruct.comp (μ.app (MonoidalCategoryStruct.tensorUnit C)) (LaxMonoidal.ofBifunctor.bottomMapₗ F))) (right_unitality : LaxMonoidal.ofBifunctor.leftMapᵣ F = CategoryStruct.comp (LaxMonoidal.ofBifunctor.topMapᵣ ε) (CategoryStruct.comp (((flipFunctor C C D).map μ).app (MonoidalCategoryStruct.tensorUnit C)) (LaxMonoidal.ofBifunctor.bottomMapᵣ F))) (η : F.obj (MonoidalCategoryStruct.tensorUnit C) MonoidalCategoryStruct.tensorUnit D) (δ : MonoidalCategory.curriedTensorPost F MonoidalCategory.curriedTensorPre F) (oplax_associativity : OplaxMonoidal.ofBifunctor.firstMap δ = OplaxMonoidal.ofBifunctor.secondMap δ) (oplax_left_unitality : OplaxMonoidal.ofBifunctor.leftMapₗ F = CategoryStruct.comp (OplaxMonoidal.ofBifunctor.topMapₗ F) (CategoryStruct.comp (δ.app (MonoidalCategoryStruct.tensorUnit C)) (OplaxMonoidal.ofBifunctor.bottomMapₗ η))) (oplax_right_unitality : OplaxMonoidal.ofBifunctor.leftMapᵣ F = CategoryStruct.comp (OplaxMonoidal.ofBifunctor.topMapᵣ F) (CategoryStruct.comp (((flipFunctor C C D).map δ).app (MonoidalCategoryStruct.tensorUnit C)) (OplaxMonoidal.ofBifunctor.bottomMapᵣ η))) (ε_η : CategoryStruct.comp ε η = CategoryStruct.id (MonoidalCategoryStruct.tensorUnit D)) (η_ε : CategoryStruct.comp η ε = CategoryStruct.id (F.obj (MonoidalCategoryStruct.tensorUnit C))) (μ_δ : CategoryStruct.comp μ δ = CategoryStruct.id (MonoidalCategory.curriedTensorPre F)) (δ_μ : CategoryStruct.comp δ μ = CategoryStruct.id (MonoidalCategory.curriedTensorPost F)) :

                                    F is monoidal given a co/unit morphisms ε/η : 𝟙_ D ↔ F.obj (𝟙_ C) and tensorators μ / δ : F - ⊗ F - ↔ F (- ⊗ -) as natural transformations between bifunctors, satisfying the relevant compatibilities.

                                    Instances For