Whiskering #
Given a functor F : C ⥤ D
and functors G H : D ⥤ E
and a natural transformation α : G ⟶ H
,
we can construct a new natural transformation F ⋙ G ⟶ F ⋙ H
,
called whiskerLeft F α
. This is the same as the horizontal composition of 𝟙 F
with α
.
This operation is functorial in F
, and we package this as whiskeringLeft
. Here
(whiskeringLeft.obj F).obj G
is F ⋙ G
, and
(whiskeringLeft.obj F).map α
is whiskerLeft F α
.
(That is, we might have alternatively named this as the "left composition functor".)
We also provide analogues for composition on the right, and for these operations on isomorphisms.
At the end of the file, we provide the left and right unitors, and the associator, for functor composition. (In fact functor composition is definitionally associative, but very often relying on this causes extremely slow elaboration, so it is better to insert it explicitly.) We also show these natural isomorphisms satisfy the triangle and pentagon identities.
If α : G ⟶ H
then
whiskerLeft F α : (F ⋙ G) ⟶ (F ⋙ H)
has components α.app (F.obj X)
.
Instances For
If α : G ⟶ H
then
whisker_right α F : (G ⋙ F) ⟶ (G ⋙ F)
has components F.map (α.app X)
.
Instances For
Left-composition gives a functor (C ⥤ D) ⥤ ((D ⥤ E) ⥤ (C ⥤ E))
.
(whiskeringLeft.obj F).obj G
is F ⋙ G
, and
(whiskeringLeft.obj F).map α
is whiskerLeft F α
.
Instances For
Right-composition gives a functor (D ⥤ E) ⥤ ((C ⥤ D) ⥤ (C ⥤ E))
.
(whiskeringRight.obj H).obj F
is F ⋙ H
, and
(whiskeringRight.obj H).map α
is whiskerRight α H
.
Instances For
If α : G ≅ H
is a natural isomorphism then
iso_whisker_left F α : (F ⋙ G) ≅ (F ⋙ H)
has components α.app (F.obj X)
.
Instances For
If α : G ≅ H
then
iso_whisker_right α F : (G ⋙ F) ≅ (H ⋙ F)
has components F.map_iso (α.app X)
.
Instances For
The left unitor, a natural isomorphism ((𝟭 _) ⋙ F) ≅ F
.
Instances For
The right unitor, a natural isomorphism (F ⋙ (𝟭 B)) ≅ F
.
Instances For
The associator for functors, a natural isomorphism ((F ⋙ G) ⋙ H) ≅ (F ⋙ (G ⋙ H))
.
(In fact, iso.refl _
will work here, but it tends to make Lean slow later,
and it's usually best to insert explicit associators.)