Limits in the category of indexed families of objects. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Given a functor F : J ⥤ Π i, C i
into a category of indexed families,
- we can assemble a collection of cones over
F ⋙ pi.eval C i
into a cone overF
- if all those cones are limit cones, the assembled cone is a limit cone, and
- if we have limits for each of
F ⋙ pi.eval C i
, we can produce ahas_limit F
instance
A cone over F : J ⥤ Π i, C i
has as its components cones over each of the F ⋙ pi.eval C i
.
A cocone over F : J ⥤ Π i, C i
has as its components cocones over each of the F ⋙ pi.eval C i
.
Given a family of cones over the F ⋙ pi.eval C i
, we can assemble these together as a cone F
.
Given a family of cocones over the F ⋙ pi.eval C i
,
we can assemble these together as a cocone F
.
Given a family of limit cones over the F ⋙ pi.eval C i
,
assembling them together as a cone F
produces a limit cone.
Equations
- category_theory.pi.cone_of_cone_eval_is_limit P = {lift := λ (s : category_theory.limits.cone F) (i : I), (P i).lift (category_theory.pi.cone_comp_eval s i), fac' := _, uniq' := _}
Given a family of colimit cocones over the F ⋙ pi.eval C i
,
assembling them together as a cocone F
produces a colimit cocone.
Equations
- category_theory.pi.cocone_of_cocone_eval_is_colimit P = {desc := λ (s : category_theory.limits.cocone F) (i : I), (P i).desc (category_theory.pi.cocone_comp_eval s i), fac' := _, uniq' := _}
If we have a functor F : J ⥤ Π i, C i
into a category of indexed families,
and we have limits for each of the F ⋙ pi.eval C i
,
then F
has a limit.
If we have a functor F : J ⥤ Π i, C i
into a category of indexed families,
and colimits exist for each of the F ⋙ pi.eval C i
,
there is a colimit for F
.
As an example, we can use this to construct particular shapes of limits in a category of indexed families.
With the addition of
import category_theory.limits.shapes.types
we can use:
local attribute [instance] has_limit_of_has_limit_comp_eval
example : has_binary_products (I → Type v₁) := ⟨by apply_instance⟩