Ind-objects #
For a presheaf A : Cᵒᵖ ⥤ Type v
we define the type IndObjectPresentation A
of presentations
of A
as a small filtered colimit of representable presheaves and define the predicate
IsIndObject A
asserting that there is at least one such presentation.
A presheaf is an ind-object if and only if the category CostructuredArrow yoneda A
is filtered
and finally small. In this way, CostructuredArrow yoneda A
can be thought of the universal
indexing category for the representation of A
as a small filtered colimit of representable
presheaves.
Future work #
There are various useful ways to understand natural transformations between ind-objects in terms of their presentations.
The ind-objects form a locally v
-small category IndCategory C
which has numerous interesting
properties.
Implementation notes #
One might be tempted to introduce another universe parameter and consider being a w
-ind-object
as a property of presheaves C ⥤ TypeMax.{v, w}
. This comes with significant technical hurdles.
The recommended alternative is to consider ind-objects over ULiftHom.{w} C
instead.
References #
The data that witnesses that a presheaf A
is an ind-object. It consists of a small
filtered indexing category I
, a diagram F : I ⥤ C
and the data for a colimit cocone on
F ⋙ yoneda : I ⥤ Cᵒᵖ ⥤ Type v
with cocone point A
.
- I : Type v
The indexing category of the filtered colimit presentation
- ℐ : CategoryTheory.SmallCategory self.I
The indexing category of the filtered colimit presentation
- hI : CategoryTheory.IsFiltered self.I
- F : CategoryTheory.Functor self.I C
The diagram of the filtered colimit presentation
- ι : self.F.comp CategoryTheory.yoneda ⟶ (CategoryTheory.Functor.const self.I).obj A
Use
IndObjectPresentation.cocone
instead. - isColimit : CategoryTheory.Limits.IsColimit { pt := A, ι := self.ι }
Use
IndObjectPresenation.coconeIsColimit
instead.
Instances For
Alternative constructor for IndObjectPresentation
taking a cocone instead of its defining
natural transformation.
Equations
Instances For
Equations
- P.instSmallCategoryI = P.ℐ
The (colimit) cocone with cocone point A
.
Equations
- P.cocone = { pt := A, ι := P.ι }
Instances For
P.cocone
is a colimit cocone.
Equations
- P.coconeIsColimit = P.isColimit
Instances For
If A
and B
are isomorphic, then an ind-object presentation of A
can be extended to an
ind-object presentation of B
.
Equations
- P.extend η = CategoryTheory.Limits.IndObjectPresentation.ofCocone (P.cocone.extend η) (CategoryTheory.Limits.IsColimit.extendIso η P.coconeIsColimit)
Instances For
The canonical comparison functor between the indexing category of the presentation and the
comma category CostructuredArrow yoneda A
. This functor is always final.
Equations
- P.toCostructuredArrow = P.cocone.toCostructuredArrow.comp (CategoryTheory.CostructuredArrow.pre P.F CategoryTheory.yoneda P.cocone.pt)
Instances For
Representable presheaves are (trivially) ind-objects.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A presheaf is called an ind-object if it can be written as a filtered colimit of representable presheaves.
- mk' :: (
- nonempty_presentation : Nonempty (CategoryTheory.Limits.IndObjectPresentation A)
- )
Instances For
Representable presheaves are (trivially) ind-objects.
Pick a presentation for an ind-object using choice.
Equations
- ⋯.presentation = P.some
Instances For
The recognition theorem for ind-objects: A : Cᵒᵖ ⥤ Type v
is an ind-object if and only if
CostructuredArrow yoneda A
is filtered and finally v
-small.
Theorem 6.1.5 of [KS06]
If a limit already exists in C
, then the limit of the image of the diagram under the Yoneda
embedding is an ind-object.