Documentation

Mathlib.CategoryTheory.Monoidal.End

Endofunctors as a monoidal category. #

We give the monoidal category structure on C ⥤ C, and show that when C itself is monoidal, it embeds via a monoidal functor into C ⥤ C.

TODO #

Can we use this to show coherence results, e.g. a cheap proof that λ_ (𝟙_ C) = ρ_ (𝟙_ C)? I suspect this is harder than is usually made out.

The category of endofunctors of any category is a monoidal category, with tensor product given by composition of functors (and horizontal composition of natural transformations).

Equations
Instances For
    @[simp]
    theorem CategoryTheory.endofunctorMonoidalCategory_tensorUnit_map (C : Type u) [CategoryTheory.Category.{v, u} C] {X : C} {Y : C} (f : X Y) :
    (𝟙_ (CategoryTheory.Functor C C)).toPrefunctor.map f = f
    @[simp]
    theorem CategoryTheory.endofunctorMonoidalCategory_tensorObj_obj (C : Type u) [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C C) (G : CategoryTheory.Functor C C) (X : C) :
    (CategoryTheory.MonoidalCategory.tensorObj F G).toPrefunctor.obj X = G.toPrefunctor.obj (F.toPrefunctor.obj X)
    @[simp]
    theorem CategoryTheory.endofunctorMonoidalCategory_tensorObj_map (C : Type u) [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C C) (G : CategoryTheory.Functor C C) {X : C} {Y : C} (f : X Y) :
    (CategoryTheory.MonoidalCategory.tensorObj F G).toPrefunctor.map f = G.toPrefunctor.map (F.toPrefunctor.map f)
    @[simp]
    theorem CategoryTheory.endofunctorMonoidalCategory_tensorMap_app (C : Type u) [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C C} {G : CategoryTheory.Functor C C} {H : CategoryTheory.Functor C C} {K : CategoryTheory.Functor C C} {α : F G} {β : H K} (X : C) :
    (CategoryTheory.MonoidalCategory.tensorHom α β).app X = CategoryTheory.CategoryStruct.comp (β.app (F.toPrefunctor.obj X)) (K.toPrefunctor.map (α.app X))
    @[simp]

    Tensoring on the right gives a monoidal functor from C into endofunctors of C.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.μ_hom_inv_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (i : M) (j : M) (X : C) {Z : C} (h : (CategoryTheory.MonoidalCategory.tensorObj (F.toPrefunctor.obj i) (F.toPrefunctor.obj j)).toPrefunctor.obj X Z) :
      @[simp]
      @[simp]
      theorem CategoryTheory.ε_naturality_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {X : C} {Y : C} (f : X Y) {Z : C} (h : (F.toPrefunctor.obj (𝟙_ M)).toPrefunctor.obj Y Z) :
      CategoryTheory.CategoryStruct.comp (F.app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj (𝟙_ M)).toPrefunctor.map f) h) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (F.app Y) h)
      @[simp]
      theorem CategoryTheory.ε_naturality {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {X : C} {Y : C} (f : X Y) :
      CategoryTheory.CategoryStruct.comp (F.app X) ((F.toPrefunctor.obj (𝟙_ M)).toPrefunctor.map f) = CategoryTheory.CategoryStruct.comp f (F.app Y)
      @[simp]
      theorem CategoryTheory.μ_naturality_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {X : C} {Y : C} (f : X Y) {Z : C} (h : (F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m n)).toPrefunctor.obj Y Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map ((F.toPrefunctor.obj m).toPrefunctor.map f)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app Y) h) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m n)).toPrefunctor.map f) h)
      @[simp]
      theorem CategoryTheory.μ_naturality {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {X : C} {Y : C} (f : X Y) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map ((F.toPrefunctor.obj m).toPrefunctor.map f)) ((F.toLaxMonoidalFunctorm n).app Y) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) ((F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m n)).toPrefunctor.map f)
      theorem CategoryTheory.μ_inv_naturality_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {X : C} {Y : C} (f : X Y) {Z : C} (h : (F.toPrefunctor.obj n).toPrefunctor.obj ((F.toPrefunctor.obj m).toPrefunctor.obj Y) Z) :
      CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F m n).inv.app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map ((F.toPrefunctor.obj m).toPrefunctor.map f)) h) = CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m n)).toPrefunctor.map f) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F m n).inv.app Y) h)
      theorem CategoryTheory.μ_inv_naturality {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {X : C} {Y : C} (f : X Y) :
      CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F m n).inv.app X) ((F.toPrefunctor.obj n).toPrefunctor.map ((F.toPrefunctor.obj m).toPrefunctor.map f)) = CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m n)).toPrefunctor.map f) ((CategoryTheory.MonoidalFunctor.μIso F m n).inv.app Y)
      theorem CategoryTheory.μ_naturality₂_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {m' : M} {n' : M} (f : m m') (g : n n') (X : C) {Z : C} (h : (F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m' n')).toPrefunctor.obj X Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map g).app ((F.toPrefunctor.obj m).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n').toPrefunctor.map ((F.toPrefunctor.map f).app X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm' n').app X) h)) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom f g)).app X) h)
      theorem CategoryTheory.μ_naturality₂ {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {m' : M} {n' : M} (f : m m') (g : n n') (X : C) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map g).app ((F.toPrefunctor.obj m).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n').toPrefunctor.map ((F.toPrefunctor.map f).app X)) ((F.toLaxMonoidalFunctorm' n').app X)) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom f g)).app X)
      @[simp]
      theorem CategoryTheory.μ_naturalityₗ_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {m' : M} (f : m m') (X : C) {Z : C} (h : (F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m' n)).toPrefunctor.obj X Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map ((F.toPrefunctor.map f).app X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm' n).app X) h) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom f (CategoryTheory.CategoryStruct.id n))).app X) h)
      @[simp]
      theorem CategoryTheory.μ_naturalityₗ {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {m' : M} (f : m m') (X : C) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map ((F.toPrefunctor.map f).app X)) ((F.toLaxMonoidalFunctorm' n).app X) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom f (CategoryTheory.CategoryStruct.id n))).app X)
      @[simp]
      theorem CategoryTheory.μ_naturalityᵣ_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {n' : M} (g : n n') (X : C) {Z : C} (h : (F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m n')).toPrefunctor.obj X Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map g).app ((F.toPrefunctor.obj m).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n').app X) h) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id m) g)).app X) h)
      @[simp]
      theorem CategoryTheory.μ_naturalityᵣ {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {n' : M} (g : n n') (X : C) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map g).app ((F.toPrefunctor.obj m).toPrefunctor.obj X)) ((F.toLaxMonoidalFunctorm n').app X) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm n).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id m) g)).app X)
      @[simp]
      theorem CategoryTheory.μ_inv_naturalityₗ_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {m' : M} (f : m m') (X : C) {Z : C} (h : (F.toPrefunctor.obj n).toPrefunctor.obj ((F.toPrefunctor.obj m').toPrefunctor.obj X) Z) :
      @[simp]
      theorem CategoryTheory.μ_inv_naturalityᵣ_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {n : M} {n' : M} (g : n n') (X : C) {Z : C} (h : (F.toPrefunctor.obj n').toPrefunctor.obj ((F.toPrefunctor.obj m).toPrefunctor.obj X) Z) :
      theorem CategoryTheory.left_unitality_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj n).toPrefunctor.obj X Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map (F.app X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(𝟙_ M) n).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor n).hom).app X) h)) = h
      theorem CategoryTheory.left_unitality_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map (F.app X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(𝟙_ M) n).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor n).hom).app X)) = CategoryTheory.CategoryStruct.id ((F.toPrefunctor.obj n).toPrefunctor.obj ((𝟙_ (CategoryTheory.Functor C C)).toPrefunctor.obj X))
      @[simp]
      theorem CategoryTheory.obj_ε_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj n).toPrefunctor.obj ((F.toPrefunctor.obj (𝟙_ M)).toPrefunctor.obj X) Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map (F.app X)) h = CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor n).inv).app X) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F (𝟙_ M) n).inv.app X) h)
      @[simp]
      theorem CategoryTheory.obj_ε_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) :
      (F.toPrefunctor.obj n).toPrefunctor.map (F.app X) = CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor n).inv).app X) ((CategoryTheory.MonoidalFunctor.μIso F (𝟙_ M) n).inv.app X)
      @[simp]
      theorem CategoryTheory.obj_ε_inv_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj n).toPrefunctor.obj ((𝟙_ (CategoryTheory.Functor C C)).toPrefunctor.obj X) Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj n).toPrefunctor.map ((CategoryTheory.MonoidalFunctor.εIso F).inv.app X)) h = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(𝟙_ M) n).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor n).hom).app X) h)
      @[simp]
      theorem CategoryTheory.obj_ε_inv_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) :
      (F.toPrefunctor.obj n).toPrefunctor.map ((CategoryTheory.MonoidalFunctor.εIso F).inv.app X) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(𝟙_ M) n).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor n).hom).app X)
      theorem CategoryTheory.right_unitality_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj n).toPrefunctor.obj X Z) :
      CategoryTheory.CategoryStruct.comp (F.app ((F.toPrefunctor.obj n).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorn (𝟙_ M)).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor n).hom).app X) h)) = h
      theorem CategoryTheory.right_unitality_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) :
      CategoryTheory.CategoryStruct.comp (F.app ((F.toPrefunctor.obj n).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorn (𝟙_ M)).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor n).hom).app X)) = CategoryTheory.CategoryStruct.id ((𝟙_ (CategoryTheory.Functor C C)).toPrefunctor.obj ((F.toPrefunctor.obj n).toPrefunctor.obj X))
      @[simp]
      theorem CategoryTheory.ε_app_obj {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) :
      F.app ((F.toPrefunctor.obj n).toPrefunctor.obj X) = CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor n).inv).app X) ((CategoryTheory.MonoidalFunctor.μIso F n (𝟙_ M)).inv.app X)
      @[simp]
      theorem CategoryTheory.ε_inv_app_obj {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (n : M) (X : C) :
      (CategoryTheory.MonoidalFunctor.εIso F).inv.app ((F.toPrefunctor.obj n).toPrefunctor.obj X) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorn (𝟙_ M)).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor n).hom).app X)
      theorem CategoryTheory.associativity_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (m₃ : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃))).toPrefunctor.obj X Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj m₃).toPrefunctor.map ((F.toLaxMonoidalFunctorm₁ m₂).app X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(CategoryTheory.MonoidalCategory.tensorObj m₁ m₂) m₃).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ m₂ m₃).hom).app X) h)) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₂ m₃).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃)).app X) h)
      theorem CategoryTheory.associativity_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (m₃ : M) (X : C) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj m₃).toPrefunctor.map ((F.toLaxMonoidalFunctorm₁ m₂).app X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(CategoryTheory.MonoidalCategory.tensorObj m₁ m₂) m₃).app X) ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ m₂ m₃).hom).app X)) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₂ m₃).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) ((F.toLaxMonoidalFunctorm₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃)).app X)
      @[simp]
      theorem CategoryTheory.obj_μ_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (m₃ : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj m₃).toPrefunctor.obj ((F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m₁ m₂)).toPrefunctor.obj X) Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj m₃).toPrefunctor.map ((F.toLaxMonoidalFunctorm₁ m₂).app X)) h = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₂ m₃).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃)).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ m₂ m₃).inv).app X) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F (CategoryTheory.MonoidalCategory.tensorObj m₁ m₂) m₃).inv.app X) h)))
      @[simp]
      theorem CategoryTheory.obj_μ_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (m₃ : M) (X : C) :
      (F.toPrefunctor.obj m₃).toPrefunctor.map ((F.toLaxMonoidalFunctorm₁ m₂).app X) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₂ m₃).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃)).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ m₂ m₃).inv).app X) ((CategoryTheory.MonoidalFunctor.μIso F (CategoryTheory.MonoidalCategory.tensorObj m₁ m₂) m₃).inv.app X)))
      @[simp]
      theorem CategoryTheory.obj_μ_inv_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (m₃ : M) (X : C) {Z : C} (h : (F.toPrefunctor.obj m₃).toPrefunctor.obj ((CategoryTheory.MonoidalCategory.tensorObj (F.toPrefunctor.obj m₁) (F.toPrefunctor.obj m₂)).toPrefunctor.obj X) Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj m₃).toPrefunctor.map ((CategoryTheory.MonoidalFunctor.μIso F m₁ m₂).inv.app X)) h = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(CategoryTheory.MonoidalCategory.tensorObj m₁ m₂) m₃).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ m₂ m₃).hom).app X) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F m₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃)).inv.app X) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F m₂ m₃).inv.app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) h)))
      @[simp]
      theorem CategoryTheory.obj_μ_inv_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (m₃ : M) (X : C) :
      (F.toPrefunctor.obj m₃).toPrefunctor.map ((CategoryTheory.MonoidalFunctor.μIso F m₁ m₂).inv.app X) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(CategoryTheory.MonoidalCategory.tensorObj m₁ m₂) m₃).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ m₂ m₃).hom).app X) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.μIso F m₁ (CategoryTheory.MonoidalCategory.tensorObj m₂ m₃)).inv.app X) ((CategoryTheory.MonoidalFunctor.μIso F m₂ m₃).inv.app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X))))
      @[simp]
      theorem CategoryTheory.obj_zero_map_μ_app_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {X : C} {Y : C} (f : X (F.toPrefunctor.obj m).toPrefunctor.obj Y) {Z : C} (h : (F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj m (𝟙_ M))).toPrefunctor.obj Y Z) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj (𝟙_ M)).toPrefunctor.map f) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm (𝟙_ M)).app Y) h) = CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.εIso F).inv.app X) (CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor m).inv).app Y) h))
      @[simp]
      theorem CategoryTheory.obj_zero_map_μ_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) {m : M} {X : C} {Y : C} (f : X (F.toPrefunctor.obj m).toPrefunctor.obj Y) :
      CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.obj (𝟙_ M)).toPrefunctor.map f) ((F.toLaxMonoidalFunctorm (𝟙_ M)).app Y) = CategoryTheory.CategoryStruct.comp ((CategoryTheory.MonoidalFunctor.εIso F).inv.app X) (CategoryTheory.CategoryStruct.comp f ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor m).inv).app Y))
      @[simp]
      theorem CategoryTheory.obj_μ_zero_app {C : Type u} [CategoryTheory.Category.{v, u} C] {M : Type u_1} [CategoryTheory.Category.{u_2, u_1} M] [CategoryTheory.MonoidalCategory M] (F : CategoryTheory.MonoidalFunctor M (CategoryTheory.Functor C C)) (m₁ : M) (m₂ : M) (X : C) :
      CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(𝟙_ M) m₂).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctorm₁ (CategoryTheory.MonoidalCategory.tensorObj (𝟙_ M) m₂)).app X) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator m₁ (𝟙_ M) m₂).inv).app X) ((CategoryTheory.MonoidalFunctor.μIso F (CategoryTheory.MonoidalCategory.tensorObj m₁ (𝟙_ M)) m₂).inv.app X))) = CategoryTheory.CategoryStruct.comp ((F.toLaxMonoidalFunctor(𝟙_ M) m₂).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) (CategoryTheory.CategoryStruct.comp ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor m₂).hom).app ((F.toPrefunctor.obj m₁).toPrefunctor.obj X)) ((F.toPrefunctor.obj m₂).toPrefunctor.map ((F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor m₁).inv).app X)))

      If m ⊗ n ≅ 𝟙_M, then F.obj m is a left inverse of F.obj n.

      Equations
      Instances For