Separating and detecting sets #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
There are several non-equivalent notions of a generator of a category. Here, we consider two of them:
- We say that
𝒢
is a separating set if the functorsC(G, -)
forG ∈ 𝒢
are collectively faithful, i.e., ifh ≫ f = h ≫ g
for allh
with domain in𝒢
impliesf = g
. - We say that
𝒢
is a detecting set if the functorsC(G, -)
collectively reflect isomorphisms, i.e., if anyh
with domain in𝒢
uniquely factors throughf
, thenf
is an isomorphism.
There are, of course, also the dual notions of coseparating and codetecting sets.
Main results #
We
- define predicates
is_separating
,is_coseparating
,is_detecting
andis_codetecting
on sets of objects; - show that separating and coseparating are dual notions;
- show that detecting and codetecting are dual notions;
- show that if
C
has equalizers, then detecting implies separating; - show that if
C
has coequalizers, then codetecting implies separating; - show that if
C
is balanced, then separating implies detecting and coseparating implies codetecting; - show that
∅
is separating if and only if∅
is coseparating if and only ifC
is thin; - show that
∅
is detecting if and only if∅
is codetecting if and only ifC
is a groupoid; - define predicates
is_separator
,is_coseparator
,is_detector
andis_codetector
as the singleton counterparts to the definitions for sets above and restate the above results in this situation; - show that
G
is a separator if and only ifcoyoneda.obj (op G)
is faithful (and the dual); - show that
G
is a detector if and only ifcoyoneda.obj (op G)
reflects isomorphisms (and the dual).
Future work #
- We currently don't have any examples yet.
- We will want typeclasses
has_separator C
and similar.
We say that 𝒢
is a separating set if the functors C(G, -)
for G ∈ 𝒢
are collectively
faithful, i.e., if h ≫ f = h ≫ g
for all h
with domain in 𝒢
implies f = g
.
We say that 𝒢
is a coseparating set if the functors C(-, G)
for G ∈ 𝒢
are collectively
faithful, i.e., if f ≫ h = g ≫ h
for all h
with codomain in 𝒢
implies f = g
.
We say that 𝒢
is a detecting set if the functors C(G, -)
collectively reflect isomorphisms,
i.e., if any h
with domain in 𝒢
uniquely factors through f
, then f
is an isomorphism.
We say that 𝒢
is a codetecting set if the functors C(-, G)
collectively reflect
isomorphisms, i.e., if any h
with codomain in G
uniquely factors through f
, then f
is
an isomorphism.
An ingredient of the proof of the Special Adjoint Functor Theorem: a complete well-powered category with a small coseparating set has an initial object.
In fact, it follows from the Special Adjoint Functor Theorem that C
is already cocomplete,
see has_colimits_of_has_limits_of_is_coseparating
.
An ingredient of the proof of the Special Adjoint Functor Theorem: a cocomplete well-copowered category with a small separating set has a terminal object.
In fact, it follows from the Special Adjoint Functor Theorem that C
is already complete, see
has_limits_of_has_colimits_of_is_separating
.
A category with pullbacks and a small detecting set is well-powered.
We say that G
is a separator if the functor C(G, -)
is faithful.
Equations
We say that G
is a coseparator if the functor C(-, G)
is faithful.
Equations
We say that G
is a detector if the functor C(G, -)
reflects isomorphisms.
Equations
We say that G
is a codetector if the functor C(-, G)
reflects isomorphisms.