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).
This is used in CategoryTheory.Category.Cat.CartesianClosed to equip the category of small
categories Cat.{u, u} with a Cartesian-closed structure.
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 equivalence of functor categories given by flipping.
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.
Equations
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
- F.flipIsoCurrySwapUncurry = CategoryTheory.NatIso.ofComponents (fun (d : D) => CategoryTheory.NatIso.ofComponents (fun (x : C) => CategoryTheory.Iso.refl ((F.flip.obj d).obj x)) ⋯) ⋯
Instances For
The uncurrying of F.flip is isomorphic to
swapping the factors followed by the uncurrying of F.
Equations
- F.uncurryObjFlip = CategoryTheory.NatIso.ofComponents (fun (x : D × C) => CategoryTheory.Iso.refl ((CategoryTheory.Functor.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.
Instances For
Natural isomorphism witnessing comp_flip_uncurry_eq.
Equations
Instances For
Natural isomorphism witnessing comp_flip_curry_eq.
Equations
Instances For
The equivalence of types of bifunctors giving by flipping the arguments.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence of types of bifunctors given by currying.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The flipped equivalence of types of bifunctors given by currying.