Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
448 commits
Select commit Hold shift + click to select a range
aab450c
mostly done
joelriou Oct 16, 2025
be4e3ff
whitespace
joelriou Oct 16, 2025
1b28b7a
typo
joelriou Oct 16, 2025
3356032
wip
joelriou Oct 16, 2025
d02c37f
wip
joelriou Oct 16, 2025
c2dc61c
wip
joelriou Oct 16, 2025
34775f4
sorry free
joelriou Oct 16, 2025
a721f3c
wip
joelriou Oct 16, 2025
6da7d95
fix
joelriou Oct 16, 2025
84436ae
fixed references.bib
joelriou Oct 16, 2025
5ed0d36
Merge remote-tracking branch 'origin/master' into refactor-object-pro…
joelriou Oct 16, 2025
72af181
cleaning up
joelriou Oct 16, 2025
3827cdd
cleaning up
joelriou Oct 17, 2025
d0a2a09
feat(SetTheory): more API for HasCardinalLT
joelriou Oct 17, 2025
1abd47e
feat(CategoryTheory): κ-filtered categories are stable under products
joelriou Oct 17, 2025
f33c54b
stacks tags
joelriou Oct 17, 2025
1130f7d
Merge remote-tracking branches 'origin/has-cardinal-lt-operations' an…
joelriou Oct 17, 2025
ba18e31
fix
joelriou Oct 17, 2025
c37429b
cleaning up
joelriou Oct 17, 2025
7843365
better syntax
joelriou Oct 17, 2025
432e1b9
feat(Order/Category): partial orders with order embeddings as morphisms
joelriou Oct 19, 2025
2facfab
feat(Order/Category): PartOrdEmb has filtering colimits
joelriou Oct 19, 2025
ff653e1
sorry free
joelriou Oct 20, 2025
87b99e1
wip
joelriou Oct 20, 2025
a3c1933
Merge remote-tracking branch 'origin/has-cardinal-lt-operations' into…
joelriou Oct 20, 2025
1bb38d5
sorry free
joelriou Oct 20, 2025
a8d9e19
Merge remote-tracking branch 'origin/master' into refactor-object-pro…
joelriou Oct 20, 2025
a5eca07
Merge remote-tracking branch 'origin/refactor-object-property-closed-…
joelriou Oct 20, 2025
8465feb
Merge remote-tracking branch 'origin/master' into refactor-isseparating
joelriou Oct 20, 2025
d66500e
Merge remote-tracking branch 'origin/refactor-isseparating' into stro…
joelriou Oct 20, 2025
122ee58
Merge remote-tracking branch 'origin/strong-generator' into strong-ge…
joelriou Oct 20, 2025
6a97e77
Merge remote-tracking branch 'origin/strong-generator-of-colimit' int…
joelriou Oct 20, 2025
8813a7f
Merge remote-tracking branch 'origin/dense-functor' into refactor-are…
joelriou Oct 20, 2025
25d09d5
Merge remote-tracking branch 'origin/object-property-limits-closure' …
joelriou Oct 20, 2025
01f1e21
Merge remote-tracking branch 'origin/master' into refactor-object-pro…
joelriou Oct 25, 2025
6755b2b
apply (config := { allowSynthFailures := true })
joelriou Oct 25, 2025
fa01e0c
removed unnecessary line
joelriou Oct 25, 2025
be9f65b
Update Mathlib/CategoryTheory/Limits/MorphismProperty.lean
joelriou Oct 27, 2025
cd54e27
Merge remote-tracking branch 'origin/refactor-object-property-closed-…
joelriou Oct 27, 2025
5ca0c28
Merge remote-tracking branch 'origin/master' into object-property-lim…
joelriou Oct 27, 2025
f54dc73
Merge remote-tracking branch 'origin/master' into strong-generator
joelriou Oct 27, 2025
fc280dd
removed braces
joelriou Oct 27, 2025
b25562b
Merge remote-tracking branch 'origin/master' into object-property-lim…
joelriou Oct 28, 2025
e66de9b
Merge remote-tracking branch 'origin/master' into strong-generator
joelriou Oct 28, 2025
b6c0c05
Merge remote-tracking branch 'origin/strong-generator' into strong-ge…
joelriou Oct 28, 2025
91ba2eb
Merge remote-tracking branch 'origin/strong-generator-of-colimit' int…
joelriou Oct 28, 2025
6468978
Merge remote-tracking branch 'origin/dense-functor' into refactor-are…
joelriou Oct 28, 2025
cbe3498
Merge remote-tracking branch 'origin/object-property-limits-closure' …
joelriou Oct 28, 2025
3ff799f
Merge remote-tracking branch 'origin/cardinal-directed' into partial-…
joelriou Oct 28, 2025
ad4c29d
wip
joelriou Oct 28, 2025
f3158c7
Merge remote-tracking branch 'origin/refactor-are-cardinal-filtered-g…
joelriou Oct 28, 2025
cb64b8c
wip
joelriou Oct 28, 2025
edd49b3
Merge remote-tracking branch 'origin/master' into presentable-type
joelriou Oct 29, 2025
2e8d2e1
Merge remote-tracking branch 'origin/master' into presentable-type
joelriou Nov 8, 2025
15387f3
removed unnecessary lemma
joelriou Nov 8, 2025
ad9f067
Merge remote-tracking branch 'origin/master' into cardinal-directed
joelriou Nov 9, 2025
181866c
unused import
joelriou Nov 9, 2025
1162f38
cleaning up
joelriou Nov 9, 2025
f55c700
cleaning up
joelriou Nov 9, 2025
985b232
feat(CategoryTheory): HasCardinalLT for MorphismProperty and ObjectPr…
joelriou Nov 9, 2025
4fb92d2
feat(CategoryTheory): description of the type WalkingMultispan
joelriou Nov 9, 2025
e7a388b
Merge remote-tracking branch 'origin/property-has-cardinal-lt' into c…
joelriou Nov 9, 2025
928e605
added Directed.lean file
joelriou Nov 9, 2025
bdb4a3f
fix
joelriou Nov 9, 2025
4699c87
Merge remote-tracking branch 'origin/master' into presentable-type
joelriou Nov 17, 2025
a4fcafb
better syntax
joelriou Nov 17, 2025
fe0efdd
Merge remote-tracking branch 'origin/master' into presentable-type
joelriou Nov 17, 2025
82c79bf
Merge remote-tracking branch 'origin/master' into cardinal-filtered-0
joelriou Nov 18, 2025
a4d03f7
Merge remote-tracking branch 'origin/cardinal-filtered-0' into cardin…
joelriou Nov 18, 2025
90e7edb
Merge remote-tracking branch 'origin/cardinal-directed' into partial-…
joelriou Nov 18, 2025
f3a284a
wip
joelriou Nov 18, 2025
19cba86
feat(CategoryTheory): a category with a terminal object is κ-filtered
joelriou Nov 18, 2025
6a134b4
better syntax
joelriou Nov 18, 2025
2cc6b4b
Merge remote-tracking branch 'origin/filtered-of-isterminal' into par…
joelriou Nov 18, 2025
ac1066b
wip
joelriou Nov 18, 2025
a98428d
wip
joelriou Nov 18, 2025
c350666
wip
joelriou Nov 18, 2025
fccfe95
wip
joelriou Nov 18, 2025
570d263
Merge remote-tracking branch 'origin/presentable-type' into partial-o…
joelriou Nov 18, 2025
4a752af
sorry free
joelriou Nov 18, 2025
dce5fa6
docstrings
joelriou Nov 18, 2025
3e102a9
wip
joelriou Nov 18, 2025
ac29ff3
wip
joelriou Nov 18, 2025
b31764a
wip
joelriou Nov 18, 2025
83de7c3
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou Dec 26, 2025
a45f833
fix
joelriou Dec 26, 2025
eb67b8b
fix
joelriou Dec 26, 2025
fc6fa63
wip
joelriou Dec 27, 2025
b1f4ff9
wip
joelriou Dec 27, 2025
95cc1ba
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou Dec 29, 2025
573986a
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou May 20, 2026
4dd7919
wip
joelriou May 20, 2026
f2e1561
wip
joelriou May 20, 2026
4d3cb84
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou May 21, 2026
9d989b7
feat(CategoryTheory): the κ-accessible category of κ-directed posets
joelriou May 21, 2026
b72fcff
whitespace
joelriou May 21, 2026
41ee43e
Merge remote-tracking branch 'origin/master' into cardinal-directed-p…
joelriou May 21, 2026
db3987d
characterization of presentable objects
joelriou May 21, 2026
bde3f62
wip
joelriou May 21, 2026
882d14b
feat(CategoryTheory): the category of κ-directed posets
joelriou May 21, 2026
a5a1782
fix
joelriou May 21, 2026
96346f6
leaving out some code here
joelriou May 21, 2026
7db3fe9
Merge remote-tracking branch 'origin/cardinal-directed-poset' into pa…
joelriou May 21, 2026
69d6fc5
Update Mathlib/CategoryTheory/Presentable/CardinalDirectedPoset.lean
joelriou May 21, 2026
7ce5d15
Update Mathlib/CategoryTheory/Presentable/CardinalDirectedPoset.lean
joelriou May 21, 2026
8702bdc
Update Mathlib/CategoryTheory/Presentable/CardinalDirectedPoset.lean
joelriou May 21, 2026
0ca1ff4
wip
joelriou May 21, 2026
4981f8b
suggestions by @dagurtomas
joelriou May 22, 2026
8ffa134
Merge remote-tracking branch 'origin/cardinal-directed-poset0' into c…
joelriou May 22, 2026
f69a6cc
wip
joelriou May 22, 2026
62b59b6
Merge remote-tracking branch 'origin/cardinal-directed-poset' into pa…
joelriou May 22, 2026
a4c0062
fix
joelriou May 22, 2026
d991921
Merge remote-tracking branch 'origin/cardinal-directed-poset' into pa…
joelriou May 22, 2026
8dcfbf0
wip
joelriou May 22, 2026
b979233
wip
joelriou May 23, 2026
0980c2d
wip
joelriou May 23, 2026
fe8d96b
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou May 23, 2026
6982498
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou May 25, 2026
031610c
wip
joelriou May 25, 2026
211cae6
wip
joelriou May 25, 2026
b5cfa6c
wip
joelriou May 25, 2026
5ed6624
wip
joelriou May 25, 2026
72ad7a2
wip
joelriou May 25, 2026
9803a55
wip
joelriou May 25, 2026
49218cf
wip
joelriou May 26, 2026
f2abedb
wip
joelriou May 26, 2026
c611e90
wip
joelriou May 26, 2026
8d5ed96
wip
joelriou May 26, 2026
5e9a019
wip
joelriou May 26, 2026
9d3b459
wip
joelriou May 27, 2026
bd192f2
wip
joelriou May 27, 2026
ddaa305
wip
joelriou May 27, 2026
a63140e
wip
joelriou May 28, 2026
5db982d
wip
joelriou May 28, 2026
d79c8f8
wip
joelriou May 28, 2026
da99237
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou May 28, 2026
5eba214
fix
joelriou May 28, 2026
ed21d1d
Merge remote-tracking branch 'origin/master' into cardinal-directed-p…
joelriou May 29, 2026
8551cfd
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou May 29, 2026
7ef6383
fix name
joelriou May 29, 2026
c433904
docstrings
joelriou May 29, 2026
d30dae8
Merge remote-tracking branch 'origin/cardinal-directed-poset' into pa…
joelriou May 29, 2026
0779d6a
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou Jun 20, 2026
e03a27e
wip
joelriou Jun 20, 2026
b7220d2
wip
joelriou Jun 20, 2026
2445077
removed comment
joelriou Jun 20, 2026
1fbc6a7
wip
joelriou Jun 20, 2026
c3df792
Merge remote-tracking branch 'origin/master' into partial-order-cardi…
joelriou Jun 23, 2026
8a04f2a
feat(CategoryTheory/Presentable): sharply small regular cardinals
joelriou Jun 23, 2026
c8fc9ef
min_imports
joelriou Jun 23, 2026
8b12c83
docstring
joelriou Jun 23, 2026
41ca6b6
Merge remote-tracking branch 'origin/master' into category-theory-acc…
joelriou Jun 23, 2026
f0415c5
fix phrasing
joelriou Jun 24, 2026
1d83224
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jun 24, 2026
23f907e
renames
joelriou Jun 24, 2026
9a32e8a
added docstring
joelriou Jun 24, 2026
1250aa9
Merge remote-tracking branch 'origin/master' into sharply-lt
joelriou Jun 25, 2026
c666158
added docstrings
joelriou Jun 25, 2026
1aae6a5
added comments
joelriou Jun 25, 2026
068b8fc
Merge remote-tracking branch 'origin/master' into comma-accessible
joelriou Jun 26, 2026
e8af20d
fix
joelriou Jun 26, 2026
f1aa914
wip
joelriou Jun 26, 2026
e098a79
Update Mathlib/CategoryTheory/Presentable/CardinalDirectedPoset.lean
joelriou Jun 26, 2026
3f99756
wip
joelriou Jun 26, 2026
f37cbc8
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jun 26, 2026
e000d88
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jun 26, 2026
a4f9543
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jun 26, 2026
ba4de0b
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jun 26, 2026
31c8214
Merge remote-tracking branch 'origin/master' into sharply-lt
joelriou Jun 26, 2026
eb1fa1e
Cardinal.nonempty_ord_toType
joelriou Jun 26, 2026
0fd0c1c
Merge remote-tracking branch 'origin/master' into comma-accessible
joelriou Jun 26, 2026
f46c43b
wip
joelriou Jun 26, 2026
426a730
wip
joelriou Jun 26, 2026
0fc107e
wip
joelriou Jun 26, 2026
4eb980f
wip
joelriou Jun 26, 2026
b2d6c75
wip
joelriou Jun 26, 2026
855adb6
wip
joelriou Jun 26, 2026
3545b35
wip
joelriou Jun 26, 2026
ff1af14
wip
joelriou Jun 29, 2026
ff752df
wip
joelriou Jun 29, 2026
652a870
wip
joelriou Jun 29, 2026
8a9d92b
wip
joelriou Jun 29, 2026
3ab30f0
wip
joelriou Jun 30, 2026
2230adc
wip
joelriou Jun 30, 2026
6c065f7
sorry free
joelriou Jun 30, 2026
bd464a0
fix
joelriou Jun 30, 2026
5d41a35
fix
joelriou Jun 30, 2026
1c6703f
wip
joelriou Jun 30, 2026
9f21a02
feat(CategoryTheory): limits in Comma categories
joelriou Jun 30, 2026
cfe94d2
feat(CategoryTheory/Presentable): new constructor for `IsCardinalFilt…
joelriou Jun 30, 2026
4982e62
feat(CategoryTheory/Presentable): more basic API for κ-filtered categ…
joelriou Jun 30, 2026
f217771
feat(CategoryTheory/Presentable): constructor for `IsCardinalPresenta…
joelriou Jun 30, 2026
ad7f28f
feat(CategoryTheory/Presentable): functors which preserves κ-presenta…
joelriou Jun 30, 2026
8f2e1c3
typo
joelriou Jun 30, 2026
8897225
wip
joelriou Jun 30, 2026
f83f035
Update Mathlib/CategoryTheory/Limits/Comma.lean
joelriou Jun 30, 2026
f3cc4fa
Update Mathlib/CategoryTheory/Limits/Comma.lean
joelriou Jun 30, 2026
02bff9a
Update Mathlib/CategoryTheory/Limits/Comma.lean
joelriou Jun 30, 2026
4cb4841
Update Mathlib/CategoryTheory/Limits/Comma.lean
joelriou Jun 30, 2026
b6e43db
Update Mathlib/CategoryTheory/Limits/Comma.lean
joelriou Jun 30, 2026
20e28cb
Update Mathlib/CategoryTheory/Limits/Comma.lean
joelriou Jun 30, 2026
a5cae98
better syntax
joelriou Jun 30, 2026
9fe16ce
refactored proofs
joelriou Jun 30, 2026
671b09e
Update Mathlib/CategoryTheory/Presentable/PreservesCardinalPresentabl…
joelriou Jun 30, 2026
9287912
Update Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean
joelriou Jun 30, 2026
701d883
suggestions by @smorel394
joelriou Jul 1, 2026
1f15d03
min_imports
joelriou Jul 1, 2026
fa7ab19
added docstrings
joelriou Jul 1, 2026
cf411c9
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jul 1, 2026
8c6e1a1
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jul 1, 2026
5091985
better docstring
joelriou Jul 1, 2026
95dfd69
better docstring
joelriou Jul 1, 2026
4999bd7
feat(CategoryTheory/Presentably): equivalence between the definitions…
joelriou Jul 1, 2026
3bd0a7c
Merge remote-tracking branch 'origin/sharply-lt-2' into partial-order…
joelriou Jul 1, 2026
908028e
wip
joelriou Jul 1, 2026
624ee5c
Merge remote-tracking branch 'origin/master' into iscardinalpresentab…
joelriou Jul 1, 2026
2a2ef18
wip
joelriou Jul 1, 2026
0e85297
Merge remote-tracking branch 'origin/iscardinalfilteredgenerator-mk-p…
joelriou Jul 1, 2026
795cc43
wip
joelriou Jul 1, 2026
31412bf
added Dagur as author
joelriou Jul 2, 2026
87997e6
cleaning up
joelriou Jul 2, 2026
dc12455
Merge remote-tracking branch 'origin/master' into comma-accessible
joelriou Jul 2, 2026
dd1c7cb
Merge remote-tracking branch 'origin/master' into sharply-lt-2
joelriou Jul 3, 2026
894adfb
Merge remote-tracking branch 'origin/master' into sharply-lt-2
joelriou Jul 3, 2026
93ef62c
cleaning up
joelriou Jul 3, 2026
ce1c966
min_imports
joelriou Jul 3, 2026
04be48d
Merge remote-tracking branch 'origin/sharply-lt-2' into partial-order…
joelriou Jul 3, 2026
7a7d17b
wip
joelriou Jul 3, 2026
bb83199
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jul 3, 2026
8d82a45
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jul 3, 2026
4228b2b
Update Mathlib/CategoryTheory/Presentable/SharplyLT/Basic.lean
joelriou Jul 3, 2026
4e417be
better docstrings
joelriou Jul 3, 2026
d461489
better syntax
joelriou Jul 3, 2026
9a1cee4
Merge remote-tracking branch 'origin/sharply-lt-2' into partial-order…
joelriou Jul 3, 2026
b444396
Merge remote-tracking branch 'origin/master' into comma-accessible
joelriou Jul 3, 2026
5ed5801
Merge remote-tracking branch 'origin/master' into accessible-solution…
joelriou Jul 3, 2026
d15963c
Merge remote-tracking branch 'origin/partial-order-cardinal-accessibl…
joelriou Jul 3, 2026
8fd7a11
Merge remote-tracking branch 'origin/comma-accessible' into accessibl…
joelriou Jul 3, 2026
1ef8579
Merge remote-tracking branch 'origin/comma-colimits' into comma-acces…
joelriou Jul 3, 2026
7ad240b
fix
joelriou Jul 3, 2026
024857d
Merge remote-tracking branch 'origin/iscardinalfilteredgenerator-mk-p…
joelriou Jul 3, 2026
458f4a0
Merge remote-tracking branch 'origin/is-cardinal-filtered-more-api' i…
joelriou Jul 3, 2026
45bfb55
Merge remote-tracking branch 'origin/iscardinalpresentable-mk' into c…
joelriou Jul 3, 2026
436bf37
Merge remote-tracking branch 'origin/preserves-cardinal-presentable' …
joelriou Jul 3, 2026
09ddf82
fix
joelriou Jul 3, 2026
8b6a795
Merge remote-tracking branch 'origin/comma-accessible' into accessibl…
joelriou Jul 3, 2026
73951d4
wip
joelriou Jul 3, 2026
f34c1b8
Merge remote-tracking branch 'origin/master' into presentable-is-disc…
joelriou Jul 3, 2026
bb896f3
Merge remote-tracking branch 'origin/presentable-is-discrete' into ac…
joelriou Jul 3, 2026
b0f61e2
wip
joelriou Jul 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -3275,19 +3275,25 @@ public import Mathlib.CategoryTheory.Presentable.Basic
public import Mathlib.CategoryTheory.Presentable.CardinalDirectedPoset
public import Mathlib.CategoryTheory.Presentable.CardinalFilteredPresentation
public import Mathlib.CategoryTheory.Presentable.ColimitPresentation
public import Mathlib.CategoryTheory.Presentable.Comma
public import Mathlib.CategoryTheory.Presentable.Dense
public import Mathlib.CategoryTheory.Presentable.Directed
public import Mathlib.CategoryTheory.Presentable.EssentiallyLarge
public import Mathlib.CategoryTheory.Presentable.Finite
public import Mathlib.CategoryTheory.Presentable.IsCardinalFiltered
public import Mathlib.CategoryTheory.Presentable.IsDiscrete
public import Mathlib.CategoryTheory.Presentable.Limits
public import Mathlib.CategoryTheory.Presentable.LocallyPresentable
public import Mathlib.CategoryTheory.Presentable.OrthogonalReflection
public import Mathlib.CategoryTheory.Presentable.PreservesCardinalPresentable
public import Mathlib.CategoryTheory.Presentable.Presheaf
public import Mathlib.CategoryTheory.Presentable.Retracts
public import Mathlib.CategoryTheory.Presentable.SharplyLT.Basic
public import Mathlib.CategoryTheory.Presentable.SharplyLT.Lemmas
public import Mathlib.CategoryTheory.Presentable.SolutionSetCondition
public import Mathlib.CategoryTheory.Presentable.StrongGenerator
public import Mathlib.CategoryTheory.Presentable.Type
public import Mathlib.CategoryTheory.Presentable.Uniformization
public import Mathlib.CategoryTheory.Products.Associator
public import Mathlib.CategoryTheory.Products.Basic
public import Mathlib.CategoryTheory.Products.Bifunctor
Expand Down
13 changes: 10 additions & 3 deletions Mathlib/CategoryTheory/Comma/CardinalArrow.lean
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@ Authors: Joël Riou
-/
module

public import Mathlib.CategoryTheory.Comma.Arrow
public import Mathlib.CategoryTheory.FinCategory.Basic
public import Mathlib.CategoryTheory.EssentiallySmall
public import Mathlib.Data.Set.Finite.Basic
public import Mathlib.CategoryTheory.FinCategory.Basic
public import Mathlib.SetTheory.Cardinal.HasCardinalLT

/-!
Expand Down Expand Up @@ -114,4 +112,13 @@ lemma hasCardinalLT_of_hasCardinalLT_arrow
HasCardinalLT C κ :=
h.of_injective (fun X ↦ Arrow.mk (𝟙 X)) (fun _ _ h ↦ congr_arg Comma.left h)

lemma hasCardinalLT_arrow_iff_of_isThin (C : Type u) [Category.{v} C]
[Quiver.IsThin C] (κ : Cardinal.{w}) (hκ : Cardinal.aleph0 ≤ κ) :
HasCardinalLT (Arrow C) κ ↔ HasCardinalLT C κ :=
⟨hasCardinalLT_of_hasCardinalLT_arrow, fun h ↦
(hasCardinalLT_prod hκ h h).of_injective (fun f ↦ (f.left, f.right))
(fun f g h ↦
Arrow.ext (congr_arg _root_.Prod.fst h) (congr_arg _root_.Prod.snd h)
(by subsingleton))⟩

end CategoryTheory
1 change: 0 additions & 1 deletion Mathlib/CategoryTheory/EssentiallySmall.lean
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ the type `Skeleton C` is `w`-small, and `C` is `w`-locally small.

@[expose] public section


universe w w' v v' u u'

open CategoryTheory
Expand Down
88 changes: 58 additions & 30 deletions Mathlib/CategoryTheory/Limits/Comma.lean
Original file line number Diff line number Diff line change
Expand Up @@ -71,25 +71,39 @@ noncomputable def coneOfPreserves [PreservesLimit (F ⋙ snd L R) R] (c₁ : Con
· simp [← c₁.w t]
· simp [← c₂.w t] }

set_option backward.isDefEq.respectTransparency false in
set_option backward.defeqAttrib.useBackward true in
/-- Let `F : J ⥤ Comma L R`. If `R` preserves the limit of
`F ⋙ snd _ _`, then `Comma.fst L R` and `Comma.snd L R` jointly
reflect the limit of `F`, i.e. if `c` is a cone for `F` which
becomes a limit after applying `Comma.fst L R` and `Comma.snd L R`,
then `c` is a limit. -/
def fstSndJointlyReflectLimit {F : J ⥤ Comma L R} {c : Cone F}
[PreservesLimit (F ⋙ snd _ _) R]
(h₁ : IsLimit ((fst _ _).mapCone c))
(h₂ : IsLimit ((snd _ _).mapCone c)) :
IsLimit c where
lift s :=
{ left := h₁.lift ((fst _ _).mapCone s)
right := h₂.lift ((snd _ _).mapCone s)
w := (isLimitOfPreserves R h₂).hom_ext (fun j ↦ by
simp [← Functor.map_comp, ← Functor.map_comp_assoc, ← CommaMorphism.w,
dsimp% h₂.fac ((snd _ _).mapCone s) j,
dsimp% h₁.fac ((fst _ _).mapCone s) j]) }
fac s j := by
ext
· exact h₁.fac ((fst _ _).mapCone s) j
· exact h₂.fac ((snd _ _).mapCone s) j
uniq s _ hm := by
ext
· exact h₁.uniq ((fst _ _).mapCone s) _ (by simp [← hm])
· exact h₂.uniq ((snd _ _).mapCone s) _ (by simp [← hm])

/-- Provided that `R` preserves the appropriate limit, then the cone in `coneOfPreserves` is a
limit. -/
noncomputable def coneOfPreservesIsLimit [PreservesLimit (F ⋙ snd L R) R] {c₁ : Cone (F ⋙ fst L R)}
(t₁ : IsLimit c₁) {c₂ : Cone (F ⋙ snd L R)} (t₂ : IsLimit c₂) :
IsLimit (coneOfPreserves F c₁ t₂) where
lift s :=
{ left := t₁.lift ((fst L R).mapCone s)
right := t₂.lift ((snd L R).mapCone s)
w :=
(isLimitOfPreserves R t₂).hom_ext fun j => by
rw [coneOfPreserves_pt_hom, assoc, assoc, (isLimitOfPreserves R t₂).fac,
limitAuxiliaryCone_π_app, ← L.map_comp_assoc, t₁.fac, R.mapCone_π_app,
← R.map_comp, t₂.fac]
exact (s.π.app j).w }
uniq s m w := by
apply CommaMorphism.ext
· exact t₁.uniq ((fst L R).mapCone s) _ (fun j => by simp [← w])
· exact t₂.uniq ((snd L R).mapCone s) _ (fun j => by simp [← w])
IsLimit (coneOfPreserves F c₁ t₂) :=
fstSndJointlyReflectLimit t₁ t₂

/-- (Implementation). An auxiliary cocone which is useful in order to construct colimits
in the comma category. -/
Expand Down Expand Up @@ -120,26 +134,40 @@ noncomputable def coconeOfPreserves [PreservesColimit (F ⋙ fst L R) L] {c₁ :
· simp [← c₁.w t]
· simp [← c₂.w t] }

set_option backward.isDefEq.respectTransparency false in
set_option backward.defeqAttrib.useBackward true in
/-- Let `F : J ⥤ Comma L R`. If `L` preserves the colimit of
`F ⋙ fst _ _`, then `Comma.fst L R` and `Comma.snd L R` jointly
reflect the colimit of `F`, i.e. if `c` is a cocone for `F` which
becomes a colimit after applying `Comma.fst L R` and `Comma.snd L R`,
then `c` is a colimit. -/
def fstSndJointlyReflectColimit {F : J ⥤ Comma L R} {c : Cocone F}
[PreservesColimit (F ⋙ fst _ _) L]
(h₁ : IsColimit ((fst _ _).mapCocone c))
(h₂ : IsColimit ((snd _ _).mapCocone c)) :
IsColimit c where
desc s :=
{ left := h₁.desc ((fst _ _).mapCocone s)
right := h₂.desc ((snd _ _).mapCocone s)
w := (isColimitOfPreserves L h₁).hom_ext (fun j ↦ by
simp [← Functor.map_comp_assoc, ← Functor.map_comp,
dsimp% h₁.fac ((fst _ _).mapCocone s) j,
dsimp% h₂.fac ((snd _ _).mapCocone s) j]) }
fac s j := by
ext
· exact h₁.fac ((fst _ _).mapCocone s) j
· exact h₂.fac ((snd _ _).mapCocone s) j
uniq s _ hm := by
ext
· exact h₁.uniq ((fst _ _).mapCocone s) _ (by simp [← hm])
· exact h₂.uniq ((snd _ _).mapCocone s) _ (by simp [← hm])

/-- Provided that `L` preserves the appropriate colimit, then the cocone in `coconeOfPreserves` is
a colimit. -/
noncomputable def coconeOfPreservesIsColimit [PreservesColimit (F ⋙ fst L R) L]
{c₁ : Cocone (F ⋙ fst L R)}
(t₁ : IsColimit c₁) {c₂ : Cocone (F ⋙ snd L R)} (t₂ : IsColimit c₂) :
IsColimit (coconeOfPreserves F t₁ c₂) where
desc s :=
{ left := t₁.desc ((fst L R).mapCocone s)
right := t₂.desc ((snd L R).mapCocone s)
w :=
(isColimitOfPreserves L t₁).hom_ext fun j => by
rw [coconeOfPreserves_pt_hom, (isColimitOfPreserves L t₁).fac_assoc,
colimitAuxiliaryCocone_ι_app, assoc, ← R.map_comp, t₂.fac, L.mapCocone_ι_app, ←
L.map_comp_assoc, t₁.fac]
exact (s.ι.app j).w }
uniq s m w := by
apply CommaMorphism.ext
· exact t₁.uniq ((fst L R).mapCocone s) _ (fun j => by simp [← w])
· exact t₂.uniq ((snd L R).mapCocone s) _ (fun j => by simp [← w])
IsColimit (coconeOfPreserves F t₁ c₂) :=
fstSndJointlyReflectColimit t₁ t₂

instance hasLimit (F : J ⥤ Comma L R) [HasLimit (F ⋙ fst L R)] [HasLimit (F ⋙ snd L R)]
[PreservesLimit (F ⋙ snd L R) R] : HasLimit F :=
Expand Down
19 changes: 19 additions & 0 deletions Mathlib/CategoryTheory/ObjectProperty/Small.lean
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@ lemma Small.of_le {P Q : ObjectProperty C} [ObjectProperty.Small.{w} Q] (h : P
ObjectProperty.Small.{w} P :=
small_of_injective (Subtype.map_injective h Function.injective_id)

lemma Small.exists_eq_ofObj (P : ObjectProperty C) [ObjectProperty.Small.{w} P] :
∃ (ι : Type w) (X : ι → C), P = .ofObj X :=
⟨Shrink.{w} (Subtype P), fun i ↦ ((equivShrink _).symm i).val,
le_antisymm (fun X hX ↦ by
rw [ofObj_iff]
exact ⟨equivShrink _ ⟨X, hX⟩, by simp⟩) (by
rw [ofObj_le_iff]
intro i
obtain ⟨X, rfl⟩ := (equivShrink _).surjective i
simpa using X.prop)⟩

instance (P : ObjectProperty C) [ObjectProperty.Small.{w} P] :
ObjectProperty.Small.{w} P.op :=
small_of_injective P.subtypeOpEquiv.injective
Expand Down Expand Up @@ -141,6 +152,14 @@ lemma EssentiallySmall.exists_small (P : ObjectProperty C) [P.IsClosedUnderIsomo
obtain ⟨Q, _, hQ₁, hQ₂⟩ := exists_small_le P
exact ⟨Q, inferInstance, le_antisymm hQ₂ (by rwa [isoClosure_le_iff])⟩

lemma EssentiallySmall.exists_eq_isoClosure_ofObj
(P : ObjectProperty C) [P.IsClosedUnderIsomorphisms]
[ObjectProperty.EssentiallySmall.{w} P] :
∃ (ι : Type w) (X : ι → C), P = (ObjectProperty.ofObj X).isoClosure := by
obtain ⟨P₀, _, h⟩ := exists_small.{w} P
obtain ⟨ι, X, rfl⟩ := Small.exists_eq_ofObj.{w} P₀
exact ⟨ι, X, h⟩

lemma EssentiallySmall.of_le {P Q : ObjectProperty C}
[ObjectProperty.EssentiallySmall.{w} Q] (h : P ≤ Q) :
ObjectProperty.EssentiallySmall.{w} P where
Expand Down
63 changes: 49 additions & 14 deletions Mathlib/CategoryTheory/Presentable/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,8 @@ Authors: Joël Riou
-/
module

public import Mathlib.CategoryTheory.Adjunction.Limits
public import Mathlib.CategoryTheory.Limits.Constructions.EventuallyConstant
public import Mathlib.CategoryTheory.Limits.Preserves.Ulift
public import Mathlib.CategoryTheory.Limits.Types.Filtered
public import Mathlib.CategoryTheory.Presentable.IsCardinalFiltered
public import Mathlib.SetTheory.Cardinal.HasCardinalLT

/-! # Presentable objects

Expand All @@ -22,7 +18,7 @@ a regular cardinal `κ` such that `Functor.IsCardinalAccessible`.

An object `X` of a category is `κ`-presentable (`IsCardinalPresentable`)
if the functor `Hom(X, _)` (i.e. `coyoneda.obj (op X)`) is `κ`-accessible.
Similarly as for accessible functors, we define a type class `IsAccessible`.
Similarly as for accessible functors, we define a type class `IsPresentable`.

## References
* [Adámek, J. and Rosický, J., *Locally presentable and accessible categories*][Adamek_Rosicky_1994]
Expand Down Expand Up @@ -110,18 +106,21 @@ end

section

variable (F : C ⥤ D)

/-- A functor is accessible relative to a universe `w` if
it is `κ`-accessible for some regular `κ : Cardinal.{w}`. -/
@[pp_with_univ]
class IsAccessible : Prop where
exists_cardinal : ∃ (κ : Cardinal.{w}) (_ : Fact κ.IsRegular), IsCardinalAccessible F κ
class IsAccessible (F : C ⥤ D) : Prop where
exists_cardinal (F) : ∃ (κ : Cardinal.{w}) (_ : Fact κ.IsRegular), IsCardinalAccessible F κ

variable (F : C ⥤ D)

lemma isAccessible_of_isCardinalAccessible (κ : Cardinal.{w}) [Fact κ.IsRegular]
[IsCardinalAccessible F κ] : IsAccessible.{w} F where
exists_cardinal := ⟨κ, inferInstance, inferInstance⟩

instance : IsAccessible.{w} (𝟭 C) :=
⟨.aleph0, Cardinal.fact_isRegular_aleph0, inferInstance⟩

instance {E : Type u₃} [Category.{v₃} E] (F : C ⥤ D) (G : D ⥤ E) [IsAccessible.{w} F]
[IsAccessible.{w} G] : IsAccessible.{w} (F ⋙ G) := by
obtain ⟨κF, _, _⟩ := IsAccessible.exists_cardinal (F := F)
Expand Down Expand Up @@ -150,7 +149,7 @@ abbrev IsCardinalPresentable : Prop := (coyoneda.obj (op X)).IsCardinalAccessibl

variable (C) in
/-- The property of objects that are `κ`-presentable. -/
def isCardinalPresentable : ObjectProperty C := fun X ↦ IsCardinalPresentable X κ
abbrev isCardinalPresentable : ObjectProperty C := fun X ↦ IsCardinalPresentable X κ

instance (X : (isCardinalPresentable C κ).FullSubcategory) :
IsCardinalPresentable X.obj κ :=
Expand Down Expand Up @@ -237,6 +236,33 @@ lemma isCardinalPresentable_iff_of_isEquivalence
· intro
infer_instance

variable {X κ} in
set_option backward.isDefEq.respectTransparency false in
set_option backward.defeqAttrib.useBackward true in
open IsFiltered in
lemma IsCardinalPresentable.mk
(hX : ∀ (J : Type w) [SmallCategory J] [IsCardinalFiltered J κ]
(F : J ⥤ C) (c : Cocone F) (_ : IsColimit c),
(∀ (g : X ⟶ c.pt), ∃ (j : J) (f : X ⟶ F.obj j), f ≫ c.ι.app j = g) ∧
(∀ (j : J) (f₁ f₂ : X ⟶ F.obj j) (_ : f₁ ≫ c.ι.app j = f₂ ≫ c.ι.app j),
∃ (j' : J) (a : j ⟶ j'), f₁ ≫ F.map a = f₂ ≫ F.map a)) :
IsCardinalPresentable X κ where
preservesColimitOfShape J _ _ :=
⟨fun {F} ↦ ⟨fun {c} hc ↦ by
have := isFiltered_of_isCardinalFiltered J κ
rw [Types.isColimit_iff_coconeTypesIsColimit]
refine ⟨fun f₁ f₂ hf ↦ ?_, fun g ↦ ?_⟩
· obtain ⟨j₁, f₁, rfl⟩ := Functor.ιColimitType_jointly_surjective _ f₁
obtain ⟨j₂, f₂, rfl⟩ := Functor.ιColimitType_jointly_surjective _ f₂
dsimp at f₁ f₂ hf
obtain ⟨j', a, ha⟩ := (hX J F c hc).2 _ (f₁ ≫ F.map (leftToMax j₁ j₂))
(f₂ ≫ F.map (rightToMax j₁ j₂)) (by simpa)
simp only [Category.assoc] at ha
exact Functor.ιColimitType_eq_of_map_eq_map _ _ _
(leftToMax j₁ j₂ ≫ a) (rightToMax j₁ j₂ ≫ a) (by simpa)
· obtain ⟨j, f, rfl⟩ := (hX J F c hc).1 g
exact ⟨Functor.ιColimitType _ j f, rfl⟩⟩⟩

section

variable {J : Type*} [Category* J] {D : J ⥤ C}
Expand Down Expand Up @@ -344,18 +370,27 @@ end

section

variable (C) (κ : Cardinal.{w}) [Fact κ.IsRegular]

/-- A category has `κ`-filtered colimits if it has colimits of shape `J`
for any `κ`-filtered category `J`. -/
class HasCardinalFilteredColimits : Prop where
hasColimitsOfShape (J : Type w) [SmallCategory J] [IsCardinalFiltered J κ] :
class HasCardinalFilteredColimits
(C : Type u₁) [Category.{v₁} C] (κ : Cardinal.{w}) [Fact κ.IsRegular] : Prop where
hasColimitsOfShape (C) (κ) (J : Type w) [SmallCategory J] [IsCardinalFiltered J κ] :
HasColimitsOfShape J C := by intros; infer_instance

attribute [instance] HasCardinalFilteredColimits.hasColimitsOfShape

variable (C) (κ : Cardinal.{w}) [Fact κ.IsRegular]

instance [HasColimitsOfSize.{w, w} C] : HasCardinalFilteredColimits.{w} C κ where

variable {κ} in
lemma HasCardinalFilteredColimits.of_le
[HasCardinalFilteredColimits C κ] {κ' : Cardinal.{w}} [Fact κ'.IsRegular] (h : κ ≤ κ') :
HasCardinalFilteredColimits C κ' where
hasColimitsOfShape J _ _ := by
have := IsCardinalFiltered.of_le J h
exact HasCardinalFilteredColimits.hasColimitsOfShape C κ J

end

end CategoryTheory
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ Authors: Joël Riou
-/
module

public import Mathlib.CategoryTheory.ObjectProperty.Small
public import Mathlib.CategoryTheory.Generator.StrongGenerator
public import Mathlib.CategoryTheory.Presentable.Limits
public import Mathlib.CategoryTheory.Presentable.Retracts
public import Mathlib.CategoryTheory.Generator.StrongGenerator

/-!
# Presentable generators
Expand All @@ -33,14 +32,18 @@ such that `P.IsCardinalFilteredGenerator κ` holds.

public section

universe w v u
universe w₁ w₂ w v u

namespace CategoryTheory

variable {C : Type u} [Category.{v} C]

namespace Limits.ColimitPresentation

/-- If an object `X` admits a presentation `p` as a colimit of
a functor `p.diag : J ⥤ C` with values in `κ`-presentable objects,
then `X` is `κ'`-presentable if `κ ≤ κ'` and the cardinality
of `Arrow J` is `< κ'`. -/
lemma isCardinalPresentable {X : C} {J : Type w} [SmallCategory J]
(p : ColimitPresentation J X) (κ : Cardinal.{w}) [Fact κ.IsRegular]
(h : ∀ (j : J), IsCardinalPresentable (p.diag.obj j) κ) [LocallySmall.{w} C]
Expand All @@ -58,6 +61,11 @@ namespace ObjectProperty

variable {P : ObjectProperty C}

/-- If an object `X` admits a presentation `p : P.ColimitsOfShape J X`
as a colimit of a functor `p.diag : J ⥤ C` with values in objects
satisfying a property `P` such that `P ≤ isCardinalPresentable C κ`,
then `X` is `κ'`-presentable if `κ ≤ κ'` and the cardinality
of `Arrow J` is `< κ'`. -/
lemma ColimitOfShape.isCardinalPresentable {X : C} {J : Type w} [SmallCategory J]
(p : P.ColimitOfShape J X) {κ : Cardinal.{w}} [Fact κ.IsRegular]
(hP : P ≤ isCardinalPresentable C κ) [LocallySmall.{w} C]
Expand All @@ -83,6 +91,17 @@ structure IsCardinalFilteredGenerator : Prop where

namespace IsCardinalFilteredGenerator

lemma mk' (h₁ : P ≤ isCardinalPresentable C κ)
(h₂ : ∀ (X : C), ∃ (J : Type w₁) (_ : Category.{w₂} J)
(_ : EssentiallySmall.{w} J) (_ : IsCardinalFiltered J κ), P.colimitsOfShape J X) :
P.IsCardinalFilteredGenerator κ where
le_isCardinalPresentable := h₁
exists_colimitsOfShape X := by
obtain ⟨J, _, _, _, p⟩ := h₂ X
exact ⟨SmallModel.{w} J, inferInstance,
IsCardinalFiltered.of_equivalence κ (equivSmallModel.{w} J),
by rwa [← P.colimitsOfShape_congr (equivSmallModel.{w} J)]⟩

variable (h : P.IsCardinalFilteredGenerator κ) (X : C)

include h in
Expand Down
Loading
Loading