mathlib3 documentation

category_theory.generator

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:

There are, of course, also the dual notions of coseparating and codetecting sets.

Main results #

We

Future work #

def category_theory.is_separating {C : Type uโ‚} [category_theory.category C] (๐’ข : set C) :
Prop

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.

Equations
def category_theory.is_coseparating {C : Type uโ‚} [category_theory.category C] (๐’ข : set C) :
Prop

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.

Equations
def category_theory.is_detecting {C : Type uโ‚} [category_theory.category C] (๐’ข : set C) :
Prop

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.

Equations
def category_theory.is_codetecting {C : Type uโ‚} [category_theory.category C] (๐’ข : set C) :
Prop

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.

Equations
theorem category_theory.is_separating.mono {C : Type uโ‚} [category_theory.category C] {๐’ข : set C} (h๐’ข : category_theory.is_separating ๐’ข) {โ„‹ : set C} (h๐’ขโ„‹ : ๐’ข โІ โ„‹) :
theorem category_theory.is_coseparating.mono {C : Type uโ‚} [category_theory.category C] {๐’ข : set C} (h๐’ข : category_theory.is_coseparating ๐’ข) {โ„‹ : set C} (h๐’ขโ„‹ : ๐’ข โІ โ„‹) :
theorem category_theory.is_detecting.mono {C : Type uโ‚} [category_theory.category C] {๐’ข : set C} (h๐’ข : category_theory.is_detecting ๐’ข) {โ„‹ : set C} (h๐’ขโ„‹ : ๐’ข โІ โ„‹) :
theorem category_theory.is_codetecting.mono {C : Type uโ‚} [category_theory.category C] {๐’ข : set C} (h๐’ข : category_theory.is_codetecting ๐’ข) {โ„‹ : set C} (h๐’ขโ„‹ : ๐’ข โІ โ„‹) :

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.

theorem category_theory.subobject.eq_of_le_of_is_detecting {C : Type uโ‚} [category_theory.category C] {๐’ข : set C} (h๐’ข : category_theory.is_detecting ๐’ข) {X : C} (P Q : category_theory.subobject X) (hโ‚ : P โ‰ค Q) (hโ‚‚ : โˆ€ (G : C), G โˆˆ ๐’ข โ†’ โˆ€ {f : G โŸถ X}, Q.factors f โ†’ P.factors f) :
P = Q
theorem category_theory.subobject.inf_eq_of_is_detecting {C : Type uโ‚} [category_theory.category C] [category_theory.limits.has_pullbacks C] {๐’ข : set C} (h๐’ข : category_theory.is_detecting ๐’ข) {X : C} (P Q : category_theory.subobject X) (h : โˆ€ (G : C), G โˆˆ ๐’ข โ†’ โˆ€ {f : G โŸถ X}, P.factors f โ†’ Q.factors f) :
P โŠ“ Q = P
theorem category_theory.subobject.eq_of_is_detecting {C : Type uโ‚} [category_theory.category C] [category_theory.limits.has_pullbacks C] {๐’ข : set C} (h๐’ข : category_theory.is_detecting ๐’ข) {X : C} (P Q : category_theory.subobject X) (h : โˆ€ (G : C), G โˆˆ ๐’ข โ†’ โˆ€ {f : G โŸถ X}, P.factors f โ†” Q.factors f) :
P = Q

A category with pullbacks and a small detecting set is well-powered.

def category_theory.is_separator {C : Type uโ‚} [category_theory.category C] (G : C) :
Prop

We say that G is a separator if the functor C(G, -) is faithful.

Equations
def category_theory.is_coseparator {C : Type uโ‚} [category_theory.category C] (G : C) :
Prop

We say that G is a coseparator if the functor C(-, G) is faithful.

Equations
def category_theory.is_detector {C : Type uโ‚} [category_theory.category C] (G : C) :
Prop

We say that G is a detector if the functor C(G, -) reflects isomorphisms.

Equations
def category_theory.is_codetector {C : Type uโ‚} [category_theory.category C] (G : C) :
Prop

We say that G is a codetector if the functor C(-, G) reflects isomorphisms.

Equations
theorem category_theory.is_separator_def {C : Type uโ‚} [category_theory.category C] (G : C) :
category_theory.is_separator G โ†” โˆ€ โฆƒX Y : Cโฆ„ (f g : X โŸถ Y), (โˆ€ (h : G โŸถ X), h โ‰ซ f = h โ‰ซ g) โ†’ f = g
theorem category_theory.is_separator.def {C : Type uโ‚} [category_theory.category C] {G : C} :
category_theory.is_separator G โ†’ โˆ€ โฆƒX Y : Cโฆ„ (f g : X โŸถ Y), (โˆ€ (h : G โŸถ X), h โ‰ซ f = h โ‰ซ g) โ†’ f = g
theorem category_theory.is_coseparator_def {C : Type uโ‚} [category_theory.category C] (G : C) :
category_theory.is_coseparator G โ†” โˆ€ โฆƒX Y : Cโฆ„ (f g : X โŸถ Y), (โˆ€ (h : Y โŸถ G), f โ‰ซ h = g โ‰ซ h) โ†’ f = g
theorem category_theory.is_coseparator.def {C : Type uโ‚} [category_theory.category C] {G : C} :
category_theory.is_coseparator G โ†’ โˆ€ โฆƒX Y : Cโฆ„ (f g : X โŸถ Y), (โˆ€ (h : Y โŸถ G), f โ‰ซ h = g โ‰ซ h) โ†’ f = g
theorem category_theory.is_detector_def {C : Type uโ‚} [category_theory.category C] (G : C) :
category_theory.is_detector G โ†” โˆ€ โฆƒX Y : Cโฆ„ (f : X โŸถ Y), (โˆ€ (h : G โŸถ Y), โˆƒ! (h' : G โŸถ X), h' โ‰ซ f = h) โ†’ category_theory.is_iso f
theorem category_theory.is_detector.def {C : Type uโ‚} [category_theory.category C] {G : C} :
category_theory.is_detector G โ†’ โˆ€ โฆƒX Y : Cโฆ„ (f : X โŸถ Y), (โˆ€ (h : G โŸถ Y), โˆƒ! (h' : G โŸถ X), h' โ‰ซ f = h) โ†’ category_theory.is_iso f