An object $S$ (or family $\mathcal{S}$ of objects) in a category $\mathcal{C}$ is called a separator or generator if generalized elements with domain $S$ (or domain from $\mathcal{S}$) are sufficient to distinguish morphisms in $\mathcal{C}$.
The dual notion is that of a coseparator.
The term โgeneratorโ is slightly more ambiguous because of the use of โgeneratorsโ in generators and relations. That said, there is a link between these two senses provided by theorem 1 (q.v.).
An object $S \in \mathcal{C}$ of a category $\mathcal{C}$ is called a separator or a generator or a separating object or a generating object, or is said to separate morphisms if:
Assuming that $\mathcal{C}$ is locally small category, we have equivalently that $S$ is a separator if the hom functor $Hom(S,-) \colon \mathcal{C} \to$ Set is faithful.
More generally:
A family $\mathcal{S} = (S_a ;|; a\colon A)$ of objects of a category $\mathcal{C}$ is a separating family or a generating family if:
Assuming again that $\mathcal{C}$ is locally small, we have equivalently that $\mathcal{S}$ is a separating family if the family of hom functors $Hom(U_a,-) \colon \mathcal{C} \to$ Set is jointly faithful?.
Since repetition is irrelevant in a separating family, we may also speak of a separating class instead of a separating family.
A separating set is a small separating class.
The notion of separating family can be generalized from categories to fibered categories in such a way that the family fibration? of a category $\mathbf{C}$ has a separating family if and only if $\mathbf{C}$ has a small separating family.
A separating family in a fibered category $P:\mathbf{E}\to \mathbf{B}$ is an object $S\in \mathbf{E}$ such that for every parallel pair $f,g:A\to B$ in $E$ with $f\neq g$ and $P(f) = P(g)$ there exist arrows $c: X\to S$ and $h:X\to A$ (constituting a span) such that $c$ is $P$-cartesian, and $f h \neq g h$ .
See Definition B2.4.1 in the Elephant.
In Set, any inhabited set is a separator; in particular, the point is a separator.
More generally, in any well-pointed category, any terminal object is a separator. More generally still, in any represented concrete category, the representing object is a separator.
The standard example of a separator in the category of $R$-modules over a ring $R$ is any free module $R^I$ (for $I$ an inhabited set) and $R$ (which is $R^I$ for $I$ a point) in particular. If a separator is a finitely generated projective object in the category of $R$-modules, then one sometimes says (especially in the older literature, e.g. Freydโs Abelian Categories) that the separator is a progenerator. Progenerators are important in classical Morita theory, see Morita equivalence.
The existence of a small separating family is one of the conditions in Giraud's theorem characterizing Grothendieck toposes.
The existence of a small (co)separating family is one of the conditions in one version of the adjoint functor theorem.
If $C$ is locally small and has all small coproducts, then a set $(S_a)_{(a\colon A)}$ is a separating set if and only if, for every $X\in C$, the canonical morphism
is an epimorphism.
This theorem explains a likely origin of the term โgeneratorโ or โgenerating familyโ. For example, in linear algebra, one says that a set of morphisms $f_a: S_a \to X$ spans or generates $X$ if the induced map $\oplus S_a \to X$ maps epimorphically onto $X$.
More generally:
If $\mathcal{E}$ is a subclass of epimorphisms, we say that $(S_a)_{(a\colon A)}$ is an $\mathcal{E}$-separator or $\mathcal{E}$-generator if each morphism $\varepsilon_X$ (as above) is in $\mathcal{E}$.
The weakest commonly-seen strengthed generator is an extremal separator.
Slightly stronger is a strong separator or strong generator, which is obtained by taking $\mathcal{E}$ to be the class of strong epimorphisms. This can be expressed equivalently, without requiring local smallness or the existence of coproducts, by saying that the family $C(S_a,-)$ is jointly faithful and jointly conservative. Since strong epis are extremal, strong generators are extremal.
Confusingly, some authors use โstrong generatorโ for what we call an extremal separator. In a category with pullbacks, extremal epis reduce to strong ones, and so extremal separators are necessarily strong, and the clash of terminology is resolved.
Stronger still is a regular generator. Since regular epis are strong, regular generators are strong.
Finally, the strongest sort of generator commonly seen is a dense generator. Dense generators donโt fit into our scheme based on classes of epimorphisms, but they do admit a nice functorial definition: a full subcategory $\mathcal{G} \subset \mathcal{C}$ is dense if and only if the functor $\mathcal{C}(i_{\mathcal{G}}, -): \mathcal{C} \to [\mathcal{G}^{\mathrm{op}}, \mathrm{Set}]$ is full and faithful, where $i_{\mathcal{G}}: \mathcal{G} \to \mathcal{C}$ is the inclusion. That is to say, $\mathcal{G}$ is a dense generator if $i_{\mathcal{G}}$ is a dense functor. In a category with coproducts, every dense generator is regular: this can be seen by reformulating denseness in terms of canonical colimits and expressing the relevant colimit as a coequalizer of two coproducts.
Daniel Schaeppi Something seems to be wrong here: strong epimorphisms are extremal, so the notion of extremal generator is weaker than the notion of strong generator. In general, not every strong separator / strong generator is ($Set$-)dense (take the free abelian group on one separator, for example).
Tim Campion: Iโve attempted to fix these errors. Hopefully itโs all right now.