-
Notifications
You must be signed in to change notification settings - Fork 316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(CategoryTheory/Limits): Sifted categories #17554
base: master
Are you sure you want to change the base?
Conversation
PR summary 5f9bb4611bImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
Could you add a |
Co-authored-by: Joël Riou <[email protected]>
I added the n-lab as well as Adámek-Rosický-Vitale’s Algebraic theories. Note that both references take preservations of finite products for the colimit functor as the definition. |
Introduce the class of sifted categories. A category
IsSifted
if it is nonempty and the diagonal functor is a final functor.Type
-valued colimit functor preserves finite products.The proof of the main part (showing the characterization in term of the colimit functor) relies on a computation that rewrites the colimit-to-limit comparison for the product as a composite of "Fubini"-type isomorphisms and of
colimit.pre
for the diagonal functor. I marked the definition and lemmas for this computation as private, because I don’t think they would be useful as standalone lemmas.I also went with the "Monoidal" notations coming from
ChosenFiniteProduct
instances for the computation, because it seemed to work better for the back-and-forth between presheaves and types, but this require introducing an isomorphism that compares it to the usual product, that I also marked as private since it is auxiliary to the computation here.Sadly, I had to prove by hand that tensoring on the left/right preserves colimits (also marked private). This should normally come from the fact that the monoidal structure on types is cartesian closed, but the
CartesianClosed
instance defined inCategoryTheory/Closed/Types
is actually about a different monoidal structure than the one defined inCategoryTheory/Monoidal/Types/Basic
(the former is the one coming frommonoidalOfHasFiniteProducts
, while the latter is the one frommonoidalOChosenFiniteProducts
). If this gets changed then this should trim a bit of noise from the proof.