Limits in the category of types. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We show that the category of types has all (co)limits, by providing the usual concrete models.
We also give a characterisation of filtered colimits in Type, via
colimit.ι F i xi = colimit.ι F j xj ↔ ∃ k (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj.
Finally, we prove the category of types has categorical images, and that these agree with the range of a function.
(internal implementation) the limit cone of a functor, implemented as flat sections of a pi type
(internal implementation) the fact that the proposed limit cone is the limit
The category of types has all limits.
The equivalence between a limiting cone of F in Type u and the "concrete" definition as the
sections of F.
The equivalence between the abstract limit of F in Type u
and the "concrete" definition as the sections of F.
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
The relation defining the quotient type which implements the colimit of a functor F : J ⥤ Type u.
See category_theory.limits.types.quot.
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'.
Equations
(internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type
Equations
- category_theory.limits.types.colimit_cocone F = {X := category_theory.limits.types.quot F, ι := {app := λ (j : J) (x : F.obj j), quot.mk (category_theory.limits.types.quot.rel F) ⟨j, x⟩, naturality' := _}}
(internal implementation) the fact that the proposed colimit cocone is the colimit
The category of types has all colimits.
The equivalence between the abstract colimit of F in Type u
and the "concrete" definition as a quotient.
A variant of jointly_surjective for x : colimit F.
An alternative relation on Σ j, F.obj j,
which generates the same equivalence relation as we use to define the colimit in Type above,
but that is more convenient when working with filtered colimits.
Elements in F.obj j and F.obj j' are equivalent if there is some k : J to the right
where their images are equal.
Recognizing filtered colimits of types.
the image of a morphism in Type is just set.range f
Equations
Instances for category_theory.limits.types.image
Equations
the inclusion of image f into the target
Equations
Instances for category_theory.limits.types.image.ι
the universal property for the image factorisation
Equations
- category_theory.limits.types.image.lift F' = λ (x : category_theory.limits.types.image f), F'.e (classical.indefinite_description (λ (y : α), f y = x.val) _).val
the factorisation of any morphism in Type through a mono.
Equations
- category_theory.limits.types.mono_factorisation f = {I := category_theory.limits.types.image f, m := category_theory.limits.types.image.ι f, m_mono := _, e := set.range_factorization f, fac' := _}
the facorisation through a mono has the universal property of the image.
Equations
Equations
- category_theory.limits.types.sort.category_theory.limits.has_image_maps = {has_image_map := category_theory.limits.types.sort.category_theory.limits.has_image_maps._proof_1}