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 #
- M. Kashiwara, P. Schapira, Categories and Sheaves, Proposition 3.3.13
- F. Borceux, Handbook of Categorical Algebra 1, Proposition 6.1.2
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) The definition of functorToInterchange
.
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].