Skip to content
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): a small colimit of presentable objects is presentable #19955

Open
wants to merge 61 commits into
base: master
Choose a base branch
from

Conversation

joelriou
Copy link
Collaborator

@joelriou joelriou commented Dec 14, 2024

In this PR, we show that κ-accessible functors (to the category of types) are stable under limits indexed by a small category K such that Cardinal.mk (Arrow K) < κ.
In particular, κ-presentable objects are stable by colimits indexed by a category K such that HasCardinalLT (Arrow K) κ.


Open in Gitpod

@joelriou joelriou added WIP Work in progress t-category-theory Category theory labels Dec 14, 2024
Copy link

github-actions bot commented Dec 14, 2024

PR summary bcf2d2fef3

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.SetTheory.Cardinal.HasCardinalLT (new file) 772
Mathlib.CategoryTheory.Presentable.ParallelMaps (new file) 800
Mathlib.CategoryTheory.Comma.CardinalArrow (new file) 821
Mathlib.CategoryTheory.Presentable.IsCardinalFiltered (new file) 854
Mathlib.CategoryTheory.Presentable.Basic (new file) 865
Mathlib.CategoryTheory.Presentable.Limits (new file) 871

Declarations diff

+ Arrow.discreteEquiv
+ Arrow.equivSigma
+ Arrow.ext
+ Arrow.finite
+ Arrow.finite_iff
+ Arrow.opEquiv
+ Arrow.shrinkEquiv
+ Arrow.shrinkHomsEquiv
+ HasCardinalFilteredColimits
+ HasCardinalLT
+ Hom
+ Hom.comp
+ IsCardinalAccessible
+ IsCardinalFiltered
+ IsCardinalPresentable
+ ParallelMaps
+ arrowEquiv
+ cocone
+ coeq
+ coeqHom
+ coeq_condition
+ hasCardinalLT
+ hasCardinalLT_aleph0_iff
+ hasCardinalLT_arrow_discrete_iff
+ hasCardinalLT_arrow_shrinkHoms_iff
+ hasCardinalLT_arrow_shrink_iff
+ hasCardinalLT_iff_cardinal_mk_lt
+ hasCardinalLT_iff_of_equiv
+ hasCardinalLT_of_hasCardinalLT_arrow
+ hasCardinalLT_option_iff
+ hasCardinal_arrow_op_iff
+ injective
+ instance (C : Type u) [Category.{v} C] [Small.{w'} C] [LocallySmall.{w} C] :
+ instance : Category (ParallelMaps T)
+ instance : Fact Cardinal.aleph0.IsRegular
+ instance : PreservesColimit F (uliftFunctor.{w, w'})
+ instance : PreservesColimitsOfShape J (uliftFunctor.{w, w'})
+ instance : PreservesColimitsOfSize.{v₁, u₁} (uliftFunctor.{w, w'})
+ instance : ReflectsColimit F (uliftFunctor.{w, w'})
+ instance : ReflectsColimitsOfShape J (uliftFunctor.{w, w'})
+ instance : ReflectsColimitsOfSize.{v₁, u₁} (uliftFunctor.{w, w'})
+ instance [HasColimitsOfSize.{w, w} C] : HasCardinalFilteredColimits.{w} C κ
+ isCardinalAccessible_of_isLimit
+ isCardinalAccessible_of_iso
+ isCardinalAccessible_of_le
+ isCardinalFiltered_aleph0_iff
+ isCardinalFiltered_preorder
+ isCardinalPresentable_iff_of_isEquivalence
+ isCardinalPresentable_of_equivalence
+ isCardinalPresentable_of_isColimit
+ isCardinalPresentable_of_isColimit'
+ isCardinalPresentable_of_isEquivalence
+ isCardinalPresentable_of_iso
+ isCardinalPresentable_of_le
+ isCardinalPresentable_shrinkHoms_iff
+ isColimitEquiv
+ isColimitMapCocone
+ isColimitOf'
+ isColimit_cocone_iff
+ isColimit_eq_iff'
+ isFiltered_of_isCardinalDirected
+ locallySmall_of_small_arrow
+ max
+ mkFunctor
+ of_equivalence
+ of_injective
+ of_surjective
+ preservesColimitsOfShape_of_isCardinalAccessible
+ preservesColimitsOfShape_of_isCardinalAccessible_of_essentiallySmall
+ preservesColimitsOfShape_of_isCardinalPresentable
+ preservesColimitsOfShape_of_isCardinalPresentable_of_essentiallySmall
+ quotEquiv
+ quotEquiv_comm
+ small
+ small_of_small_arrow
+ surjective
+ toCoeq
+ toMax
++ of_le

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (2.00, 0.00)
Current number Change Type
1516 2 erw

Current commit bcf2d2fef3
Reference commit d5e4a9182e

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib (this label is automatically managed by a bot) label Dec 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked-by-other-PR This PR depends on another PR to Mathlib (this label is automatically managed by a bot) t-category-theory Category theory WIP Work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants