Skip to content

feat(CategoryTheory/SmallObject/Iteration): existence of objects (limit case)#19264

Closed
joelriou wants to merge 37 commits intomasterfrom
small-object-8
Closed

feat(CategoryTheory/SmallObject/Iteration): existence of objects (limit case)#19264
joelriou wants to merge 37 commits intomasterfrom
small-object-8

Conversation

@joelriou
Copy link
Copy Markdown
Contributor

@joelriou joelriou commented Nov 19, 2024

Given a functor Φ : C ⥤ C and a natural transformation ε : 𝟭 C ⟶ Φ, we show that it is possible to iterate ε to the power j : J for any well ordered set J, provided suitable colimits exists in C.


See #20256 for a refactored approach.

Open in Gitpod

@joelriou joelriou added t-category-theory Category theory WIP Work in progress labels Nov 19, 2024
@github-actions github-actions bot added the large-import Automatically added label for PRs with a significant increase in transitive imports label Nov 19, 2024
@github-actions
Copy link
Copy Markdown

github-actions bot commented Nov 19, 2024

PR summary eeb11676ec

Import changes exceeding 2%

% File
+3.04% Mathlib.CategoryTheory.SmallObject.Iteration.Basic
+4.43% Mathlib.CategoryTheory.SmallObject.Iteration.Nonempty
+3.04% Mathlib.CategoryTheory.SmallObject.Iteration.UniqueHom

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.CategoryTheory.SmallObject.Iteration.Nonempty 429 448 +19 (+4.43%)
Mathlib.CategoryTheory.SmallObject.Iteration.Basic 427 440 +13 (+3.04%)
Mathlib.CategoryTheory.SmallObject.Iteration.UniqueHom 428 441 +13 (+3.04%)
Import changes for all files
Files Import difference
4 files Mathlib.CategoryTheory.SmallObject.Iteration.ExtendToSucc Mathlib.CategoryTheory.SmallObject.Iteration.FunctorOfCocone Mathlib.CategoryTheory.SmallObject.Iteration.UniqueHom Mathlib.CategoryTheory.SmallObject.Iteration.Basic
13
Mathlib.CategoryTheory.SmallObject.Iteration.Nonempty 19

Declarations diff

+ HasIterationOfShape
+ functor
+ hasColimitOfShape_of_isSuccLimit
+ instance [WellFoundedLT J] [HasIterationOfShape C J] (j : J) : Nonempty (Iteration ε j) := by
+ iso_hom_comp_iso_hom
+ map
+ map_comp
+ map_id
+ mkOfLimit
+ restrictionLTFunctorIso
+ restrictionLTFunctorIso_inv_app_map
+ truncFunctor_map_iso_hom
+ trunc_refl
+ trunc_trunc
- iso_trans

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 eeb11676ec
Reference commit 5f24fc48e5

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 (this label is automatically managed by a bot) label Nov 19, 2024
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Nov 30, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 30, 2024
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Nov 30, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 30, 2024
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Dec 21, 2024
@mathlib4-dependent-issues-bot
Copy link
Copy Markdown
Collaborator

@joelriou joelriou removed the WIP Work in progress label Dec 21, 2024
@joelriou joelriou added the WIP Work in progress label Dec 26, 2024
@joelriou
Copy link
Copy Markdown
Contributor Author

Closed as there is a better version in #20256

@joelriou joelriou closed this Dec 26, 2024
mathlib-bors bot pushed a commit that referenced this pull request Feb 3, 2025
…ns (#20256)

The ongoing definition of the iteration of a natural transformation `ε : 𝟭 C ⟶ F` (with `F : C ⥤ C`) is generalized to "successor structures" (which shall become a mathlibism), i.e. in a category `D`, this consists of a zeroth object `X₀`, a successor application `succ : D → D` and, for all `X : D`, a map `toSucc X : X → succ X` (which does not have to be natural: it is not always so in some applications). For such a `Φ : SuccStruct D`, if `J` is a well-ordered type, we define the `J`-th iteration of `Φ`. (In the case `J := ℕ`, this is the colimit of `succ (succ (succ (succ ... X₀)))`.)

The iteration of a functor is a particular case of this constructor with `D := C ⥤ C`.

As `toSucc` does not have to be natural in `X`, the caveat is that the proofs make extensive use of equalities of objects in `C` and `Arrow C`, while my previous construction used comparison isomorphisms. Nevertheless, the proofs look much more clean now. One of the reasons is that in the inductive construction (file `Iteration.Nonempty`), in the terms of data, we only need to provide a functor, and then all the fields are in `Prop`. (In the downstream API, we shall obviously use isomorphisms instead of equalities...)

This PR supersedes #19264. The results are used in #20245 in order to get functorial factorizations in the small object argument.

After refactoring my code, I found that this approach had already been used in 2018 by Reid Barton in his pioneering formalization work in Lean 3 towards the model category structure on topological spaces.



Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@YaelDillies YaelDillies deleted the small-object-8 branch August 17, 2025 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

large-import Automatically added label for PRs with a significant increase in transitive imports t-category-theory Category theory WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants