Curry and uncurry, as functors. #
We define curry : ((C × D) ⥤ E) ⥤ (C ⥤ (D ⥤ E)) and uncurry : (C ⥤ (D ⥤ E)) ⥤ ((C × D) ⥤ E),
and verify that they provide an equivalence of categories
currying : (C ⥤ (D ⥤ E)) ≌ ((C × D) ⥤ E).
The uncurrying functor, taking a functor C ⥤ (D ⥤ E) and producing a functor (C × D) ⥤ E.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The object level part of the currying functor. (See curry for the functorial version.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
The currying functor, taking a functor (C × D) ⥤ E and producing a functor C ⥤ (D ⥤ E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence of functor categories given by currying/uncurrying.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor uncurry : (C ⥤ D ⥤ E) ⥤ C × D ⥤ E is fully faithful.
Instances For
Given functors F₁ : C ⥤ D, F₂ : C' ⥤ D' and G : D × D' ⥤ E, this is the isomorphism
between curry.obj ((F₁.prod F₂).comp G) and
F₁ ⋙ curry.obj G ⋙ (whiskeringLeft C' D' E).obj F₂ in the category C ⥤ C' ⥤ E.
Equations
- One or more equations did not get rendered due to their size.
Instances For
F.flip is isomorphic to uncurrying F, swapping the variables, and currying.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The uncurrying of F.flip is isomorphic to
swapping the factors followed by the uncurrying of F.
Equations
- CategoryTheory.uncurryObjFlip F = CategoryTheory.NatIso.ofComponents (fun (x : D × C) => CategoryTheory.Iso.refl ((CategoryTheory.uncurry.obj F.flip).obj x)) ⋯
Instances For
A version of CategoryTheory.whiskeringRight for bifunctors, obtained by uncurrying,
applying whiskeringRight and currying back
Equations
- One or more equations did not get rendered due to their size.