mathlib documentation

category_theory.limits.cofinal

Cofinal functors

A functor F : C ⥤ D is cofinal if for every d : D, the comma category of morphisms d ⟶ F.obj c is connected.

We prove that when F : C ⥤ D is cofinal, the categories of cocones over G : D ⥤ E and over F ⋙ G are equivalent. (In fact, via an equivalence which does not change the cocone point.)

As a consequence, the functor G : D ⥤ E has a colimit if and only if F ⋙ F does (and in either case, the colimits are isomorphic).

There is a converse which we don't prove here. I think the correct statement is that if colimit.pre G F : colimit (F ⋙ G) ⟶ colimit G is an isomorphism for all functors G : D ⥤ Type v, then F is cofinal. (Unfortunately I don't know a reference that gives the proof.)

Naming

There is some discrepancy in the literature about naming; some say 'final' instead of 'cofinal'. The explanation for this is that the 'co' prefix here is not the usual category-theoretic one indicating duality, but rather indicating the sense of "along with".

While the trend seems to be towards using 'final', for now we go with the bulk of the literature and use 'cofinal'.

References

@[class]
def category_theory.cofinal {C : Type v} [category_theory.small_category C] {D : Type v} [category_theory.small_category D] (F : C D) :
Prop

A functor F : C ⥤ D is cofinal if for every d : D, the comma category of morphisms d ⟶ F.obj c is connected.

See https://stacks.math.columbia.edu/tag/04E6

Equations

When F : C ⥤ D is cofinal, we denote by lift F d an arbitrary choice of object in C such that there exists a morphism d ⟶ F.obj (lift F d).

Equations

When F : C ⥤ D is cofinal, we denote by hom_to_lift an arbitrary choice of morphism d ⟶ F.obj (lift F d).

Equations
theorem category_theory.cofinal.induction {C : Type v} [category_theory.small_category C] {D : Type v} [category_theory.small_category D] (F : C D) [category_theory.cofinal F] {d : D} (Z : Π (X : C), (d F.obj X) → Prop) (h₁ : ∀ (X₁ X₂ : C) (k₁ : d F.obj X₁) (k₂ : d F.obj X₂) (f : X₁ X₂), k₁ F.map f = k₂Z X₁ k₁Z X₂ k₂) (h₂ : ∀ (X₁ X₂ : C) (k₁ : d F.obj X₁) (k₂ : d F.obj X₂) (f : X₁ X₂), k₁ F.map f = k₂Z X₂ k₂Z X₁ k₁) {X₀ : C} {k₀ : d F.obj X₀} (z : Z X₀ k₀) :

We provide an induction principle for reasoning about lift and hom_to_lift. We want to perform some construction (usually just a proof) about the particular choices lift F d and hom_to_lift F d, it suffices to perform that construction for some other pair of choices (denoted X₀ : C and k₀ : d ⟶ F.obj X₀ below), and to show that how to transport such a construction both directions along a morphism between such choices.

Given a cocone over F ⋙ G, we can construct a cocone G with the same cocone point.

Equations

When F is cofinal, and G has a colimit, then F ⋙ G has a colimit also and colimit (F ⋙ G) ≅ colimit G

https://stacks.math.columbia.edu/tag/04E7

Equations

When F is cofinal, and F ⋙ G has a colimit, then G has a colimit also.

We can't make this an instance, because F is not determined by the goal. (Even if this weren't a problem, it would cause a loop with comp_has_colimit.)

When F is cofinal, and F ⋙ G has a colimit, then G has a colimit also and colimit (F ⋙ G) ≅ colimit G

https://stacks.math.columbia.edu/tag/04E7

Equations