Documentation

Mathlib.CategoryTheory.Limits.Preserves.Presheaf

Finite-limit-preserving presheaves #

In this file we prove that if C is a small finitely cocomplete category and A : Cᵒᵖ ⥤ Type u is a presheaf, then CostructuredArrow yoneda A is filtered (equivalently, the category of elements of A is cofiltered) if and only if A preserves finite limits.

This is one of the keys steps of establishing the equivalence Ind C ≌ (Cᵒᵖ ⥤ₗ Type u) (here, Cᵒᵖ ⥤ₗ Type u is the category of left exact functors) for a small finitely cocomplete category C.

Implementation notes #

In the entire file, we are careful about details like functor associativity to ensure that we do not end up in situations where we have morphisms like colimit.ι F i ≫ f, where the domain of f is colimit G where F and G are definitionally equal but not syntactically equal. In these situations, lemmas about colimit.ι G i ≫ f cannot be applied using rw and simp, forcing the use of erw. In particular, for us this means that HasColimit.isoOfNatIso (Iso.refl _) is better than Iso.refl _ and that we should be very particular about functor associativity.

The theorem is also true for large categories and the proof given here generalizes to this case on paper. However, our infrastructure for commuting finite limits of shape J and filtered colimits of shape K is fundamentally not equipped to deal with the case where not all limits of shape K exist. In fact, not even the definition colimitLimitToLimitColimit can be written down if not all limits of shape K exist. Refactoring this to the level of generality we need would be a major undertaking. Since the application to the category of Ind-objects only require the case where C is small, we leave this as a TODO.

References #

If C is a finitely cocomplete category and A : Cᵒᵖ ⥤ Type u is a presheaf that preserves finite limites, then CostructuredArrow yoneda A is filtered.

One direction of Proposition 3.3.13 of [KS06].

(Implementation) This is the bifunctor we will apply "filtered colimits commute with finite limits" to.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    (Implementation) One way to express the flipped version of our functor. We choose this association because the type of Presheaf.tautologicalCocone is Cocone (CostructuredArrow.proj yoneda P ⋙ yoneda), so this association will show up in the proof.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      (Implementation) A natural isomorphism we will need to construct iso.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        (Implementation) The isomorphism that proves that A preserves finite limits.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          If C is a small finitely cocomplete category and A : Cᵒᵖ ⥤ Type u is a presheaf such that CostructuredArrow yoneda A is filtered, then A preserves finite limits.

          One direction of Proposition 3.3.13 of [KS06].

          If C is a small finitely cocomplete category and A : Cᵒᵖ ⥤ Type u is a presheaf, then CostructuredArrow yoneda A is filtered if and only if A preserves finite limits.

          Proposition 3.3.13 of [KS06].