Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat(category_theory/currying): bifunctor version of whiskering_right #15504

Closed
wants to merge 8 commits into from
19 changes: 15 additions & 4 deletions src/category_theory/functor/currying.lean
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ and verify that they provide an equivalence of categories
-/
namespace category_theory

universes v₁ v₂ v₃ u₁ u₂ u₃
universes v₁ v₂ v₃ v₄ u₁ u₂ u₃ u₄

variables {C : Type u₁} [category.{v₁} C]
{D : Type u₂} [category.{v₂} D]
{E : Type u₃} [category.{v₃} E]
variables {B : Type u₁} [category.{v₁} B]
{C : Type u₂} [category.{v₂} C]
{D : Type u₃} [category.{v₃} D]
{E : Type u₄} [category.{v₄} E]

/--
The uncurrying functor, taking a functor `C ⥤ (D ⥤ E)` and producing a functor `(C × D) ⥤ E`.
Expand Down Expand Up @@ -99,4 +100,14 @@ swapping the factors followed by the uncurrying of `F`. -/
def uncurry_obj_flip (F : C ⥤ D ⥤ E) : uncurry.obj F.flip ≅ prod.swap _ _ ⋙ uncurry.obj F :=
nat_iso.of_components (λ p, iso.refl _) (by tidy)

variables (B C D E)

/--
A version of `category_theory.whiskering_right` for bifunctors, obtained by uncurrying,
applying `whiskering_right` and currying back
-/
@[simps] def whiskering_right₂ : (C ⥤ D ⥤ E) ⥤ ((B ⥤ C) ⥤ (B ⥤ D) ⥤ (B ⥤ E)) :=
uncurry ⋙ (whiskering_right _ _ _) ⋙
((whiskering_left _ _ _).obj (prod_functor_to_functor_prod _ _ _)) ⋙ curry

end category_theory