structure
category_theory.lax_monoidal_functor
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C]
(D : Type u₂)
[category_theory.category D]
[category_theory.monoidal_category D] :
Type (max u₁ u₂ v₁ v₂)
- to_functor : C ⥤ D
- ε : 𝟙_ D ⟶ c.to_functor.obj (𝟙_ C)
- μ : Π (X Y : C), c.to_functor.obj X ⊗ c.to_functor.obj Y ⟶ c.to_functor.obj (X ⊗ Y)
- μ_natural' : (∀ {X Y X' Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y'), (c.to_functor.map f ⊗ c.to_functor.map g) ≫ c.μ Y Y' = c.μ X X' ≫ c.to_functor.map (f ⊗ g)) . "obviously"
- associativity' : (∀ (X Y Z : C), (c.μ X Y ⊗ 𝟙 (c.to_functor.obj Z)) ≫ c.μ (X ⊗ Y) Z ≫ c.to_functor.map (α_ X Y Z).hom = (α_ (c.to_functor.obj X) (c.to_functor.obj Y) (c.to_functor.obj Z)).hom ≫ (𝟙 (c.to_functor.obj X) ⊗ c.μ Y Z) ≫ c.μ X (Y ⊗ Z)) . "obviously"
- left_unitality' : (∀ (X : C), (λ_ (c.to_functor.obj X)).hom = (c.ε ⊗ 𝟙 (c.to_functor.obj X)) ≫ c.μ (𝟙_ C) X ≫ c.to_functor.map (λ_ X).hom) . "obviously"
- right_unitality' : (∀ (X : C), (ρ_ (c.to_functor.obj X)).hom = (𝟙 (c.to_functor.obj X) ⊗ c.ε) ≫ c.μ X (𝟙_ C) ≫ c.to_functor.map (ρ_ X).hom) . "obviously"
A lax monoidal functor is a functor F : C ⥤ D
between monoidal categories, equipped with morphisms
ε : 𝟙 _D ⟶ F.obj (𝟙_ C)
and μ X Y : F.obj X ⊗ F.obj Y ⟶ F.obj (X ⊗ Y)
, satisfying the
the appropriate coherences.
structure
category_theory.monoidal_functor
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C]
(D : Type u₂)
[category_theory.category D]
[category_theory.monoidal_category D] :
Type (max u₁ u₂ v₁ v₂)
- to_lax_monoidal_functor : category_theory.lax_monoidal_functor C D
- ε_is_iso : category_theory.is_iso c.to_lax_monoidal_functor.ε . "obviously"
- μ_is_iso : (Π (X Y : C), category_theory.is_iso (c.to_lax_monoidal_functor.μ X Y)) . "obviously"
A monoidal functor is a lax monoidal functor for which the tensorator and unitor as isomorphisms.
def
category_theory.monoidal_functor.ε_iso
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
(F : category_theory.monoidal_functor C D) :
𝟙_ D ≅ F.to_lax_monoidal_functor.to_functor.obj (𝟙_ C)
Equations
def
category_theory.monoidal_functor.μ_iso
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
(F : category_theory.monoidal_functor C D)
(X Y : C) :
Equations
- F.μ_iso X Y = category_theory.as_iso (F.to_lax_monoidal_functor.μ X Y)
theorem
category_theory.monoidal_functor.map_tensor
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
(F : category_theory.monoidal_functor C D)
{X Y X' Y' : C}
(f : X ⟶ Y)
(g : X' ⟶ Y') :
F.to_lax_monoidal_functor.to_functor.map (f ⊗ g) = category_theory.is_iso.inv (F.to_lax_monoidal_functor.μ X X') ≫ (F.to_lax_monoidal_functor.to_functor.map f ⊗ F.to_lax_monoidal_functor.to_functor.map g) ≫ F.to_lax_monoidal_functor.μ Y Y'
theorem
category_theory.monoidal_functor.map_left_unitor
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
(F : category_theory.monoidal_functor C D)
(X : C) :
F.to_lax_monoidal_functor.to_functor.map (λ_ X).hom = category_theory.is_iso.inv (F.to_lax_monoidal_functor.μ (𝟙_ C) X) ≫ (category_theory.is_iso.inv F.to_lax_monoidal_functor.ε ⊗ 𝟙 (F.to_lax_monoidal_functor.to_functor.obj X)) ≫ (λ_ (F.to_lax_monoidal_functor.to_functor.obj X)).hom
theorem
category_theory.monoidal_functor.map_right_unitor
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
(F : category_theory.monoidal_functor C D)
(X : C) :
F.to_lax_monoidal_functor.to_functor.map (ρ_ X).hom = category_theory.is_iso.inv (F.to_lax_monoidal_functor.μ X (𝟙_ C)) ≫ (𝟙 (F.to_lax_monoidal_functor.to_functor.obj X) ⊗ category_theory.is_iso.inv F.to_lax_monoidal_functor.ε) ≫ (ρ_ (F.to_lax_monoidal_functor.to_functor.obj X)).hom
def
category_theory.monoidal_functor.μ_nat_iso
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
(F : category_theory.monoidal_functor C D) :
The tensorator as a natural isomorphism.
def
category_theory.monoidal_functor.id
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C] :
The identity monoidal functor.
Equations
- category_theory.monoidal_functor.id C = {to_lax_monoidal_functor := {to_functor := {obj := (𝟭 C).obj, map := (𝟭 C).map, map_id' := _, map_comp' := _}, ε := 𝟙 (𝟙_ C), μ := λ (X Y : C), 𝟙 ({obj := (𝟭 C).obj, map := (𝟭 C).map, map_id' := _, map_comp' := _}.obj X ⊗ {obj := (𝟭 C).obj, map := (𝟭 C).map, map_id' := _, map_comp' := _}.obj Y), μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := id {inv := 𝟙 (𝟙_ C), hom_inv_id' := _, inv_hom_id' := _}, μ_is_iso := λ (X Y : C), id (λ (Y X : C), {inv := 𝟙 (X ⊗ Y), hom_inv_id' := _, inv_hom_id' := _}) Y X}
@[simp]
theorem
category_theory.monoidal_functor.id_to_lax_monoidal_functor_ε
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C] :
@[simp]
@[simp]
theorem
category_theory.monoidal_functor.id_ε_is_iso
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C] :
(category_theory.monoidal_functor.id C).ε_is_iso = id {inv := 𝟙 (𝟙_ C), hom_inv_id' := _, inv_hom_id' := _}
@[simp]
theorem
category_theory.monoidal_functor.id_to_lax_monoidal_functor_μ
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C]
(X Y : C) :
@[simp]
theorem
category_theory.monoidal_functor.id_μ_is_iso
(C : Type u₁)
[category_theory.category C]
[category_theory.monoidal_category C]
(X Y : C) :
(category_theory.monoidal_functor.id C).μ_is_iso X Y = id (λ (Y X : C), {inv := 𝟙 (X ⊗ Y), hom_inv_id' := _, inv_hom_id' := _}) Y X
@[simp]
theorem
category_theory.lax_monoidal_functor.comp_to_functor
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E]
(F : category_theory.lax_monoidal_functor C D)
(G : category_theory.lax_monoidal_functor D E) :
(F.comp G).to_functor = F.to_functor ⋙ G.to_functor
@[simp]
theorem
category_theory.lax_monoidal_functor.comp_ε
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E]
(F : category_theory.lax_monoidal_functor C D)
(G : category_theory.lax_monoidal_functor D E) :
@[simp]
theorem
category_theory.lax_monoidal_functor.comp_μ
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E]
(F : category_theory.lax_monoidal_functor C D)
(G : category_theory.lax_monoidal_functor D E)
(X Y : C) :
(F.comp G).μ X Y = G.μ (F.to_functor.obj X) (F.to_functor.obj Y) ≫ G.to_functor.map (F.μ X Y)
def
category_theory.lax_monoidal_functor.comp
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E] :
The composition of two lax monoidal functors is again lax monoidal.
Equations
- F.comp G = {to_functor := {obj := (F.to_functor ⋙ G.to_functor).obj, map := (F.to_functor ⋙ G.to_functor).map, map_id' := _, map_comp' := _}, ε := G.ε ≫ G.to_functor.map F.ε, μ := λ (X Y : C), G.μ (F.to_functor.obj X) (F.to_functor.obj Y) ≫ G.to_functor.map (F.μ X Y), μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}
@[simp]
theorem
category_theory.monoidal_functor.comp_μ_is_iso
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E]
(F : category_theory.monoidal_functor C D)
(G : category_theory.monoidal_functor D E)
(X Y : C) :
(F.comp G).μ_is_iso X Y = id (λ (X Y : C), category_theory.is_iso.comp_is_iso) X Y
@[simp]
theorem
category_theory.monoidal_functor.comp_to_lax_monoidal_functor
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E]
(F : category_theory.monoidal_functor C D)
(G : category_theory.monoidal_functor D E) :
@[simp]
theorem
category_theory.monoidal_functor.comp_ε_is_iso
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E]
(F : category_theory.monoidal_functor C D)
(G : category_theory.monoidal_functor D E) :
def
category_theory.monoidal_functor.comp
{C : Type u₁}
[category_theory.category C]
[category_theory.monoidal_category C]
{D : Type u₂}
[category_theory.category D]
[category_theory.monoidal_category D]
{E : Type u₃}
[category_theory.category E]
[category_theory.monoidal_category E] :
The composition of two monoidal functors is again monoidal.
Equations
- F.comp G = {to_lax_monoidal_functor := {to_functor := (F.to_lax_monoidal_functor.comp G.to_lax_monoidal_functor).to_functor, ε := (F.to_lax_monoidal_functor.comp G.to_lax_monoidal_functor).ε, μ := (F.to_lax_monoidal_functor.comp G.to_lax_monoidal_functor).μ, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := id category_theory.is_iso.comp_is_iso, μ_is_iso := id (λ (X Y : C), category_theory.is_iso.comp_is_iso)}