Limits in the category of types. #
We show that the category of types has all (co)limits, by providing the usual concrete models.
Next, we prove the category of types has categorical images, and that these agree with the range of a function.
Finally, we give the natural isomorphism between cones on F
with cone point X
and the type
lim Hom(X, F·)
, and similarly the natural isomorphism between cocones on F
with cocone point X
and the type lim Hom(F·, X)
.
Given a section of a functor F into Type*
,
construct a cone over F with PUnit
as the cone point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a cone over a functor F into Type*
and an element in the cone point,
construct a section of F.
Equations
- CategoryTheory.Limits.Types.sectionOfCone c x = ⟨fun (j : J) => c.π.app j x, ⋯⟩
Instances For
The equivalence between a limiting cone of F
in Type u
and the "concrete" definition as the
sections of F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We now provide two distinct implementations in the category of types.
The first, in the CategoryTheory.Limits.Types.Small
namespace,
assumes Small.{u} J
and constructs J
-indexed limits in Type u
.
The second, in the CategoryTheory.Limits.Types.TypeMax
namespace
constructs limits for functors F : J ⥤ TypeMax.{v, u}
, for J : Type v
.
This construction is slightly nicer, as the limit is definitionally just F.sections
,
rather than Shrink F.sections
, which makes an arbitrary choice of u
-small representative.
Hopefully we might be able to entirely remove the TypeMax
constructions,
but for now they are useful glue for the later parts of the library.
(internal implementation) the limit cone of a functor, implemented as flat sections of a pi type
Equations
- One or more equations did not get rendered due to their size.
Instances For
(internal implementation) the fact that the proposed limit cone is the limit
Equations
- One or more equations did not get rendered due to their size.
Instances For
(internal implementation) the limit cone of a functor, implemented as flat sections of a pi type
Equations
- CategoryTheory.Limits.Types.limitCone F = { pt := ↑F.sections, π := { app := fun (j : J) (u : ((CategoryTheory.Functor.const J).obj ↑F.sections).obj j) => ↑u j, naturality := ⋯ } }
Instances For
(internal implementation) the fact that the proposed limit cone is the limit
Equations
- CategoryTheory.Limits.Types.limitConeIsLimit F = { lift := fun (s : CategoryTheory.Limits.Cone F) (v : s.pt) => ⟨fun (j : J) => s.π.app j v, ⋯⟩, fac := ⋯, uniq := ⋯ }
Instances For
The results in this section have a UnivLE.{v, u}
hypothesis,
but as they only use the constructions from the CategoryTheory.Limits.Types.UnivLE
namespace
in their definitions (rather than their statements),
we leave them in the main CategoryTheory.Limits.Types
namespace.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The category of types has all limits.
More specifically, when UnivLE.{v, u}
, the category Type u
has all v
-small limits.
See https://stacks.math.columbia.edu/tag/002U.
Equations
- ⋯ = ⋯
The equivalence between the abstract limit of F
in TypeMax.{v, u}
and the "concrete" definition as the sections of F
.
Equations
Instances For
Construct a term of limit F : Type u
from a family of terms x : Π j, F.obj j
which are "coherent": ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'
.
Equations
- CategoryTheory.Limits.Types.Limit.mk F x h = (CategoryTheory.Limits.Types.limitEquivSections F).symm ⟨x, ⋯⟩
Instances For
In this section we verify that instances are available as expected.
The relation defining the quotient type which implements the colimit of a functor F : J ⥤ Type u
.
See CategoryTheory.Limits.Types.Quot
.
Equations
- CategoryTheory.Limits.Types.Quot.Rel F p p' = ∃ (f : p.fst ⟶ p'.fst), p'.snd = F.map f p.snd
Instances For
A quotient type implementing the colimit of a functor F : J ⥤ Type u
,
as pairs ⟨j, x⟩
where x : F.obj j
, modulo the equivalence relation generated by
⟨j, x⟩ ~ ⟨j', x'⟩
whenever there is a morphism f : j ⟶ j'
so F.map f x = x'
.
Instances For
Equations
- ⋯ = ⋯
Inclusion into the quotient type implementing the colimit.
Equations
- CategoryTheory.Limits.Types.Quot.ι F j x = Quot.mk (CategoryTheory.Limits.Types.Quot.Rel F) ⟨j, x⟩
Instances For
(implementation detail) Part of the universal property of the colimit cocone, but without
assuming that Quot F
lives in the correct universe.
Equations
- CategoryTheory.Limits.Types.Quot.desc c = Quot.lift (fun (x : (j : J) × F.obj j) => c.ι.app x.fst x.snd) ⋯
Instances For
(implementation detail) A function Quot F → α
induces a cocone on F
as long as the universes
work out.
Equations
- CategoryTheory.Limits.Types.toCocone f = { pt := α, ι := { app := fun (j : J) => f ∘ CategoryTheory.Limits.Types.Quot.ι F j, naturality := ⋯ } }
Instances For
(internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type
Equations
- One or more equations did not get rendered due to their size.
Instances For
(internal implementation) the fact that the proposed colimit cocone is the colimit
Equations
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The category of types has all colimits.
See https://stacks.math.columbia.edu/tag/002U.
Equations
- ⋯ = ⋯
(internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type
Equations
- One or more equations did not get rendered due to their size.
Instances For
(internal implementation) the fact that the proposed colimit cocone is the colimit
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between the abstract colimit of F
in Type u
and the "concrete" definition as a quotient.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A variant of jointly_surjective
for x : colimit F
.
If a colimit is nonempty, also its index category is nonempty.
Equations
- CategoryTheory.Limits.Types.instInhabitedImage f = { default := ⟨f default, ⋯⟩ }
the inclusion of Image f
into the target
Equations
- CategoryTheory.Limits.Types.Image.ι f = Subtype.val
Instances For
Equations
- ⋯ = ⋯
the universal property for the image factorisation
Equations
- CategoryTheory.Limits.Types.Image.lift F' x = F'.e ↑(Classical.indefiniteDescription (fun (x_1 : α) => f x_1 = ↑x) ⋯)
Instances For
the factorisation of any morphism in Type through a mono.
Equations
- One or more equations did not get rendered due to their size.
Instances For
the factorisation through a mono has the universal property of the image.
Equations
- CategoryTheory.Limits.Types.isImage f = { lift := CategoryTheory.Limits.Types.Image.lift, lift_fac := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Auxiliary lemma. Use limit_of_surjections_surjective
instead.
Given surjections ⋯ ⟶ Xₙ₊₁ ⟶ Xₙ ⟶ ⋯ ⟶ X₀
, the projection map lim Xₙ ⟶ X₀
is surjective.
Sections of F ⋙ coyoneda.obj (op X)
identify to natural
transformations (const J).obj X ⟶ F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sections of F.op ⋙ yoneda.obj X
identify to natural
transformations F ⟶ (const J).obj X
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sections of F ⋙ yoneda.obj X
identify to natural
transformations (const J).obj X ⟶ F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A cone on F
with cone point X
is the same as an element of lim Hom(X, F·)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A cone on F
with cone point X
is the same as an element of lim Hom(X, F·)
,
naturally in X
.
Equations
Instances For
A cone on F
with cone point X
is the same as an element of lim Hom(X, F·)
,
naturally in F
and X
.
Equations
- CategoryTheory.Limits.whiskeringLimYonedaIsoCones J C = CategoryTheory.NatIso.ofComponents CategoryTheory.Limits.coyonedaCompLimIsoCones ⋯
Instances For
A cocone on F
with cocone point X
is the same as an element of lim Hom(F·, X)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A cocone on F
with cocone point X
is the same as an element of lim Hom(F·, X)
,
naturally in X
.
Equations
Instances For
A cocone on F
with cocone point X
is the same as an element of lim Hom(F·, X)
,
naturally in F
and X
.
Equations
- One or more equations did not get rendered due to their size.