module Cat.Instances.Comma.Limits where
open make-is-limit
open βObj
open βHom
open _=>_
Limits in comma categoriesπ
This short note proves the following fact about limits in comma categories of the form If has a limit for and preserves limits the size of shape then can be made into an object of and this object is the limit of
module
_ {o β o' β'} {C : Precategory o β} {D : Precategory o' β'} {d}
(F : Functor C D) {lo lβ} (F-cont : is-continuous lo lβ F)
{J : Precategory lo lβ} {G : Functor J (d β F)}
where
private
module G = Functor G
module D = Cat D
module C = Cat C
module F = Fr F
: Limit (Cod _ F Fβ G) β Limit G
Cod-lift-limit = to-limit (to-is-limit lim') where
Cod-lift-limit limf module limf = Limit limf
= F-cont limf.has-limit
flimf module flimf = is-limit flimf
The family of maps can be given componentwise, since is a limit in it suffices to give a family of maps at each But sends objects of to pairs which include a map and it does so in a way compatible with by definition.
: β d β F β
apex .x = tt
apex .y = limf.apex
apex .map = flimf.universal (Ξ» j β G.β j .map) Ξ» f β sym (G.β f .sq) β D.elimr refl apex
Similarly short calculations show that we can define maps in into componentwise, and these satisfy the universal property.
: make-is-limit G apex
lim' .Ο j .Ξ± = tt
lim' .Ο j .Ξ² = limf.Ο j
lim' .Ο j .sq = sym (flimf.factors _ _ β D.intror refl)
lim' .commutes f = ext (sym (limf.eps .is-natural _ _ _) β C.elimr limf.Ext.F-id)
lim' .universal eta p .Ξ± = tt
lim' .universal eta p .Ξ² = limf.universal (Ξ» j β eta j .Ξ²) Ξ» f β ap Ξ² (p f)
lim' .universal eta p .sq = D.elimr refl β sym (flimf.unique _ _ _ Ξ» j β F.pulll (limf.factors _ _) β sym (eta j .sq) β D.elimr refl)
lim' .factors eta p = ext (limf.factors _ _)
lim' .unique eta p other q = ext (limf.unique _ _ _ Ξ» j β ap Ξ² (q j)) lim'
As an easy corollary, we get: if is small-complete and small-continuous, then is small-complete as well.
module
_ {o β o' β'} {C : Precategory o β} {D : Precategory o' β'}
(F : Functor C D) (c-compl : is-complete β β C) (F-cont : is-continuous β β F)
where
private
module C = Cat C
module D = Cat D
module F = Fr F
: β {d} β is-complete β β (d β F)
comma-is-complete = Cod-lift-limit F F-cont (c-compl (Cod _ F Fβ G)) comma-is-complete G