Filtered categories #
A category is filtered if every finite diagram admits a cocone. We give a simple characterisation of this condition as
- for every pair of objects there exists another object "to the right",
- for every pair of parallel morphisms there exists a morphism to the right so the compositions are equal, and
- there exists some object.
Filtered colimits are often better behaved than arbitrary colimits.
See CategoryTheory/Limits/Types
for some details.
Filtered categories are nice because colimits indexed by filtered categories tend to be easier to describe than general colimits (and more often preserved by functors).
In this file we show that any functor from a finite category to a filtered category admits a cocone:
cocone_nonempty [FinCategory J] [IsFiltered C] (F : J ⥤ C) : Nonempty (Cocone F)
More generally, for any finite collection of objects and morphisms between them in a filtered category (even if not closed under composition) there exists some objectZ
receiving maps from all of them, so that all the triangles (one edge from the finite set, two from morphisms toZ
) commute. This formulation is often more useful in practice and is available viasup_exists
, which takes a finset of objects, and an indexed family (indexed by source and target) of finsets of morphisms.
We also prove the converse of cocone_nonempty
as of_cocone_nonempty
.
Furthermore, we give special support for two diagram categories: The bowtie
and the tulip
.
This is because these shapes show up in the proofs that forgetful functors of algebraic categories
(e.g. MonCat
, CommRingCat
, ...) preserve filtered colimits.
All of the above API, except for the bowtie
and the tulip
, is also provided for cofiltered
categories.
See also #
In CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
we show that filtered colimits
commute with finite limits.
There is another characterization of filtered categories, namely that whenever F : J ⥤ C
is a
functor from a finite category, there is X : C
such that Nonempty (limit (F.op ⋙ yoneda.obj X))
.
This is shown in CategoryTheory.Limits.Filtered
.
A category IsFilteredOrEmpty
if
- for every pair of objects there exists another object "to the right", and
- for every pair of parallel morphisms there exists a morphism to the right so the compositions are equal.
for every pair of objects there exists another object "to the right"
- cocone_maps : ∀ ⦃X Y : C⦄ (f g : X ⟶ Y), ∃ (Z : C) (h : Y ⟶ Z), CategoryTheory.CategoryStruct.comp f h = CategoryTheory.CategoryStruct.comp g h
for every pair of parallel morphisms there exists a morphism to the right so the compositions are equal
Instances
for every pair of objects there exists another object "to the right"
for every pair of parallel morphisms there exists a morphism to the right so the compositions are equal
A category IsFiltered
if
- for every pair of objects there exists another object "to the right",
- for every pair of parallel morphisms there exists a morphism to the right so the compositions are equal, and
- there exists some object.
See https://stacks.math.columbia.edu/tag/002V. (They also define a diagram being filtered.)
- cocone_maps : ∀ ⦃X Y : C⦄ (f g : X ⟶ Y), ∃ (Z : C) (h : Y ⟶ Z), CategoryTheory.CategoryStruct.comp f h = CategoryTheory.CategoryStruct.comp g h
- nonempty : Nonempty C
a filtered category must be non empty
Instances
a filtered category must be non empty
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
max j j'
is an arbitrary choice of object to the right of both j
and j'
,
whose existence is ensured by IsFiltered
.
Equations
- CategoryTheory.IsFiltered.max j j' = ⋯.choose
Instances For
leftToMax j j'
is an arbitrary choice of morphism from j
to max j j'
,
whose existence is ensured by IsFiltered
.
Equations
- CategoryTheory.IsFiltered.leftToMax j j' = ⋯.choose
Instances For
rightToMax j j'
is an arbitrary choice of morphism from j'
to max j j'
,
whose existence is ensured by IsFiltered
.
Equations
- CategoryTheory.IsFiltered.rightToMax j j' = ⋯.choose
Instances For
coeq f f'
, for morphisms f f' : j ⟶ j'
, is an arbitrary choice of object
which admits a morphism coeqHom f f' : j' ⟶ coeq f f'
such that
coeq_condition : f ≫ coeqHom f f' = f' ≫ coeqHom f f'
.
Its existence is ensured by IsFiltered
.
Equations
- CategoryTheory.IsFiltered.coeq f f' = ⋯.choose
Instances For
coeqHom f f'
, for morphisms f f' : j ⟶ j'
, is an arbitrary choice of morphism
coeqHom f f' : j' ⟶ coeq f f'
such that
coeq_condition : f ≫ coeqHom f f' = f' ≫ coeqHom f f'
.
Its existence is ensured by IsFiltered
.
Equations
- CategoryTheory.IsFiltered.coeqHom f f' = ⋯.choose
Instances For
coeq_condition f f'
, for morphisms f f' : j ⟶ j'
, is the proof that
f ≫ coeqHom f f' = f' ≫ coeqHom f f'
.
If C
is filtered or empty, and we have a functor R : C ⥤ D
with a left adjoint, then D
is
filtered or empty.
If C
is filtered or empty, and we have a right adjoint functor R : C ⥤ D
, then D
is
filtered or empty.
Being filtered or empty is preserved by equivalence of categories.
Any finite collection of objects in a filtered category has an object "to the right".
Given any Finset
of objects {X, ...}
and
indexed collection of Finset
s of morphisms {f, ...}
in C
,
there exists an object S
, with a morphism T X : X ⟶ S
from each X
,
such that the triangles commute: f ≫ T Y = T X
, for f : X ⟶ Y
in the Finset
.
An arbitrary choice of object "to the right"
of a finite collection of objects O
and morphisms H
,
making all the triangles commute.
Equations
- CategoryTheory.IsFiltered.sup O H = ⋯.choose
Instances For
The morphisms to sup O H
.
Equations
- CategoryTheory.IsFiltered.toSup O H m = ⋯.choose m
Instances For
The triangles of consisting of a morphism in H
and the maps to sup O H
commute.
If we have IsFiltered C
, then for any functor F : J ⥤ C
with FinCategory J
,
there exists a cocone over F
.
An arbitrary choice of cocone over F : J ⥤ C
, for FinCategory J
and IsFiltered C
.
Equations
- CategoryTheory.IsFiltered.cocone F = ⋯.some
Instances For
If C
is filtered, and we have a functor R : C ⥤ D
with a left adjoint, then D
is filtered.
If C
is filtered, and we have a right adjoint functor R : C ⥤ D
, then D
is filtered.
Being filtered is preserved by equivalence of categories.
If every finite diagram in C
admits a cocone, then C
is filtered. It is sufficient to verify
this for diagrams whose shape lives in any one fixed universe.
Equations
- ⋯ = ⋯
For every universe w
, C
is filtered if and only if every finite diagram in C
with shape
in w
admits a cocone.
max₃ j₁ j₂ j₃
is an arbitrary choice of object to the right of j₁
, j₂
and j₃
,
whose existence is ensured by IsFiltered
.
Equations
- CategoryTheory.IsFiltered.max₃ j₁ j₂ j₃ = CategoryTheory.IsFiltered.max (CategoryTheory.IsFiltered.max j₁ j₂) j₃
Instances For
firstToMax₃ j₁ j₂ j₃
is an arbitrary choice of morphism from j₁
to max₃ j₁ j₂ j₃
,
whose existence is ensured by IsFiltered
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
secondToMax₃ j₁ j₂ j₃
is an arbitrary choice of morphism from j₂
to max₃ j₁ j₂ j₃
,
whose existence is ensured by IsFiltered
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
thirdToMax₃ j₁ j₂ j₃
is an arbitrary choice of morphism from j₃
to max₃ j₁ j₂ j₃
,
whose existence is ensured by IsFiltered
.
Equations
Instances For
coeq₃ f g h
, for morphisms f g h : j₁ ⟶ j₂
, is an arbitrary choice of object
which admits a morphism coeq₃Hom f g h : j₂ ⟶ coeq₃ f g h
such that
coeq₃_condition₁
, coeq₃_condition₂
and coeq₃_condition₃
are satisfied.
Its existence is ensured by IsFiltered
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
coeq₃Hom f g h
, for morphisms f g h : j₁ ⟶ j₂
, is an arbitrary choice of morphism
j₂ ⟶ coeq₃ f g h
such that coeq₃_condition₁
, coeq₃_condition₂
and coeq₃_condition₃
are satisfied. Its existence is ensured by IsFiltered
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For every span j ⟵ i ⟶ j'
, there
exists a cocone j ⟶ k ⟵ j'
such that the square commutes.
Given a "bowtie" of morphisms
j₁ j₂
|\ /|
| \/ |
| /\ |
|/ \∣
vv vv
k₁ k₂
in a filtered category, we can construct an object s
and two morphisms from k₁
and k₂
to s
,
making the resulting squares commute.
Given a "tulip" of morphisms
j₁ j₂ j₃
|\ / \ / |
| \ / \ / |
| vv vv |
\ k₁ k₂ /
\ /
\ /
\ /
\ /
v v
l
in a filtered category, we can construct an object s
and three morphisms from k₁
, k₂
and l
to s
, making the resulting squares commute.
A category IsCofilteredOrEmpty
if
- for every pair of objects there exists another object "to the left", and
- for every pair of parallel morphisms there exists a morphism to the left so the compositions are equal.
for every pair of objects there exists another object "to the left"
- cone_maps : ∀ ⦃X Y : C⦄ (f g : X ⟶ Y), ∃ (W : C) (h : W ⟶ X), CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp h g
for every pair of parallel morphisms there exists a morphism to the left so the compositions are equal
Instances
for every pair of objects there exists another object "to the left"
for every pair of parallel morphisms there exists a morphism to the left so the compositions are equal
A category IsCofiltered
if
- for every pair of objects there exists another object "to the left",
- for every pair of parallel morphisms there exists a morphism to the left so the compositions are equal, and
- there exists some object.
See https://stacks.math.columbia.edu/tag/04AZ.
- cone_maps : ∀ ⦃X Y : C⦄ (f g : X ⟶ Y), ∃ (W : C) (h : W ⟶ X), CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp h g
- nonempty : Nonempty C
a cofiltered category must be non empty
Instances
a cofiltered category must be non empty
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
min j j'
is an arbitrary choice of object to the left of both j
and j'
,
whose existence is ensured by IsCofiltered
.
Equations
- CategoryTheory.IsCofiltered.min j j' = ⋯.choose
Instances For
minToLeft j j'
is an arbitrary choice of morphism from min j j'
to j
,
whose existence is ensured by IsCofiltered
.
Equations
- CategoryTheory.IsCofiltered.minToLeft j j' = ⋯.choose
Instances For
minToRight j j'
is an arbitrary choice of morphism from min j j'
to j'
,
whose existence is ensured by IsCofiltered
.
Equations
- CategoryTheory.IsCofiltered.minToRight j j' = ⋯.choose
Instances For
eq f f'
, for morphisms f f' : j ⟶ j'
, is an arbitrary choice of object
which admits a morphism eqHom f f' : eq f f' ⟶ j
such that
eq_condition : eqHom f f' ≫ f = eqHom f f' ≫ f'
.
Its existence is ensured by IsCofiltered
.
Equations
- CategoryTheory.IsCofiltered.eq f f' = ⋯.choose
Instances For
eqHom f f'
, for morphisms f f' : j ⟶ j'
, is an arbitrary choice of morphism
eqHom f f' : eq f f' ⟶ j
such that
eq_condition : eqHom f f' ≫ f = eqHom f f' ≫ f'
.
Its existence is ensured by IsCofiltered
.
Equations
- CategoryTheory.IsCofiltered.eqHom f f' = ⋯.choose
Instances For
eq_condition f f'
, for morphisms f f' : j ⟶ j'
, is the proof that
eqHom f f' ≫ f = eqHom f f' ≫ f'
.
For every cospan j ⟶ i ⟵ j'
,
there exists a cone j ⟵ k ⟶ j'
such that the square commutes.
If C
is cofiltered or empty, and we have a functor L : C ⥤ D
with a right adjoint,
then D
is cofiltered or empty.
If C
is cofiltered or empty, and we have a left adjoint functor L : C ⥤ D
, then D
is
cofiltered or empty.
Being cofiltered or empty is preserved by equivalence of categories.
Any finite collection of objects in a cofiltered category has an object "to the left".
Given any Finset
of objects {X, ...}
and
indexed collection of Finset
s of morphisms {f, ...}
in C
,
there exists an object S
, with a morphism T X : S ⟶ X
from each X
,
such that the triangles commute: T X ≫ f = T Y
, for f : X ⟶ Y
in the Finset
.
An arbitrary choice of object "to the left"
of a finite collection of objects O
and morphisms H
,
making all the triangles commute.
Equations
- CategoryTheory.IsCofiltered.inf O H = ⋯.choose
Instances For
The morphisms from inf O H
.
Equations
- CategoryTheory.IsCofiltered.infTo O H m = ⋯.choose m
Instances For
The triangles consisting of a morphism in H
and the maps from inf O H
commute.
If we have IsCofiltered C
, then for any functor F : J ⥤ C
with FinCategory J
,
there exists a cone over F
.
An arbitrary choice of cone over F : J ⥤ C
, for FinCategory J
and IsCofiltered C
.
Equations
- CategoryTheory.IsCofiltered.cone F = ⋯.some
Instances For
If C
is cofiltered, and we have a functor L : C ⥤ D
with a right adjoint,
then D
is cofiltered.
If C
is cofiltered, and we have a left adjoint functor L : C ⥤ D
, then D
is cofiltered.
Being cofiltered is preserved by equivalence of categories.
If every finite diagram in C
admits a cone, then C
is cofiltered. It is sufficient to
verify this for diagrams whose shape lives in any one fixed universe.
Equations
- ⋯ = ⋯
For every universe w
, C
is filtered if and only if every finite diagram in C
with shape
in w
admits a cocone.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
If Cᵒᵖ is filtered or empty, then C is cofiltered or empty.
If Cᵒᵖ is cofiltered or empty, then C is filtered or empty.
If Cᵒᵖ is filtered, then C is cofiltered.
If Cᵒᵖ is cofiltered, then C is filtered.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯