-
Notifications
You must be signed in to change notification settings - Fork 356
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
refactor(CategoryTheory/SmallObject): generalization of the definitions #20256
base: master
Are you sure you want to change the base?
Conversation
…iterations of functors in two cases
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
…into small-object-8
PR summary 6e71693232Import changes exceeding 2%
|
File | Base Count | Head Count | Change |
---|---|---|---|
Mathlib.CategoryTheory.SmallObject.Iteration.UniqueHom | 428 | 0 | -428 (-100.00%) |
Mathlib.CategoryTheory.SmallObject.Iteration.Nonempty | 429 | 443 | +14 (+3.26%) |
Mathlib.CategoryTheory.SmallObject.Iteration.Basic | 427 | 440 | +13 (+3.04%) |
Mathlib.CategoryTheory.SmallObject.Iteration.ExtendToSucc | 428 | 441 | +13 (+3.04%) |
Mathlib.CategoryTheory.SmallObject.Iteration.FunctorOfCocone | 428 | 441 | +13 (+3.04%) |
Import changes for all files
Files | Import difference |
---|---|
Mathlib.CategoryTheory.SmallObject.Iteration.UniqueHom |
-428 |
3 filesMathlib.CategoryTheory.SmallObject.Iteration.ExtendToSucc Mathlib.CategoryTheory.SmallObject.Iteration.FunctorOfCocone Mathlib.CategoryTheory.SmallObject.Iteration.Basic |
13 |
Mathlib.CategoryTheory.SmallObject.Iteration.Nonempty |
14 |
Mathlib.CategoryTheory.SmallObject.Iteration.Iteration (new file) |
444 |
Declarations diff
+ HasIterationOfShape
+ MapEq
+ SuccStruct
+ congr_colimit_ι
+ congr_map
+ congr_obj
+ congr_toSucc
+ contains
+ extendToSucc_map
+ extendToSucc_obj_eq
+ extendToSucc_obj_succ_eq
+ functor
+ functor_eq
+ functor_map
+ functor_map_to_top
+ functor_obj
+ functor_obj_eq_colimit
+ hasColimitOfShape_of_isSuccLimit
+ inductiveSystem
+ isColimit
+ isColimitIterationCocone
+ isoBot
+ isoSucc
+ iter
+ iteration
+ iterationCocone
+ iterationCocone_pt
+ iterationFunctor
+ mapEq_of_eq
+ mapEq_rfl
+ mapEq_trans
+ mapObj
+ mapObj_refl
+ mapObj_trans
+ map_succ'
+ nonempty
+ obj_eq
+ obj_succ_eq
+ ofCocone_obj_eq
+ ofCocone_obj_eq_pt
+ ofNatTrans
+ restrictionLT_functor
+ restrictionLT_functor_of_lt
+ subsingleton
- Hom
- comp
- congr_app
- eval
- ext'
- extentToSucc_map
- id
- instance : Category (Iteration ε j)
- instance : Nonempty (iter₁ ⟶ iter₂) := by
- instance : Unique (iter₁ ⟶ iter₂)
- instance {J} {j : J} [PartialOrder J] [OrderBot J] [WellFoundedLT J] [SuccOrder J]
- iso
- iso_refl
- iso_trans
- mapSucc
- mapSucc'
- mapSucc_eq
- mkOfLimitNatTrans
- mkOfLimitNatTransApp
- mkOfLimitNatTransApp_eq_of_lt
- mkOfLimitNatTransApp_naturality_top
- mkOfSuccNatTrans
- mkOfSuccNatTransApp
- mkOfSuccNatTransApp_eq_of_le
- mkOfSuccNatTransApp_succ_eq
- natTrans_comp
- natTrans_id
- natTrans_naturality
- truncFunctor
- truncFunctor_map_natTrans_app
-+- mkOfSucc
--+ mkOfBot
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.
Decrease in tech debt: (relative, absolute) = (4.00, 0.00)
Current number | Change | Type |
---|---|---|
1510 | -4 | erw |
Current commit 6e71693232
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 therelative
value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
The ongoing definition of the iteration of a natural transformation
ε : 𝟭 C ⟶ F
(withF : C ⥤ C
) is generalized to "successor structures" (which shall become a mathlibism), i.e. in a categoryD
, this consists of a zeroth objectX₀
, a successor applicationsucc : D → D
and a maptoSucc X : X → succ X
(which does not have to be natural: it is not always so in some applications). For such aΦ : SuccStruct D
, ifJ
is a well-ordered type, we define theJ
-th iteration ofΦ
. (In the caseJ := ℕ
, this is the colimit ofsucc (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 inX
, the caveat is that the proofs make extensive use of equalities of objects inC
, 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 (fileIteration.Nonempty
), in the terms of data, we only need to provide a functor, and then all the fields are inProp
.This PR supersedes #19264, and overlaps a little bit over the content of #20142.