The morphism comparing a colimit of limits with the corresponding limit of colimits. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
For F : J × K ⥤ C
there is always a morphism $\colim_k \lim_j F(j,k) → \lim_j \colim_k F(j, k)$.
While it is not usually an isomorphism, with additional hypotheses on J
and K
it may be,
in which case we say that "colimits commute with limits".
The prototypical example, proved in category_theory.limits.filtered_colimit_commutes_finite_limit
,
is that when C = Type
, filtered colimits commute with finite limits.
References #
- Borceux, Handbook of categorical algebra 1, Section 2.13
- Stacks: Filtered colimits
The universal morphism $\colim_k \lim_j F(j,k) → \lim_j \colim_k F(j, k)$.
Equations
- category_theory.limits.colimit_limit_to_limit_colimit F = category_theory.limits.limit.lift (category_theory.curry.obj F ⋙ category_theory.limits.colim) {X := (category_theory.limits.colimit.cocone (category_theory.curry.obj (category_theory.prod.swap K J ⋙ F) ⋙ category_theory.limits.lim)).X, π := {app := λ (j : J), category_theory.limits.colimit.desc (category_theory.curry.obj (category_theory.prod.swap K J ⋙ F) ⋙ category_theory.limits.lim) {X := (category_theory.limits.colimit.cocone ((category_theory.curry.obj F).obj j)).X, ι := {app := λ (k : K), category_theory.limits.limit.π ((category_theory.curry.obj (category_theory.prod.swap K J ⋙ F)).obj k) j ≫ category_theory.limits.colimit.ι ((category_theory.curry.obj F).obj j) k, naturality' := _}}, naturality' := _}}
Instances for category_theory.limits.colimit_limit_to_limit_colimit
Since colimit_limit_to_limit_colimit
is a morphism from a colimit to a limit,
this lemma characterises it.
The map colimit_limit_to_limit_colimit
realized as a map of cones.
Equations
- category_theory.limits.colimit_limit_to_limit_colimit_cone G = {hom := category_theory.limits.colim.map (category_theory.limits.limit_iso_swap_comp_lim G).hom ≫ category_theory.limits.colimit_limit_to_limit_colimit (category_theory.uncurry.obj G) ≫ category_theory.limits.lim.map (category_theory.whisker_right (category_theory.currying.unit_iso.app G).inv category_theory.limits.colim), w' := _}