In mathematics, more specifically category theory. A generator (otherwise known as a seperator), or generating family (resp. separating family) is a collection of objects that "see enough" of the category that their perspective is enough to determine the morphisms in the category.
A family of objects in a category is called a generating family if for every pair of morphisms with there is an object and morphism witnessing the difference, that is .
If this family is a single object we say that is a generator. Note that this definition then reduces to saying that the functor is faithful. [1]
The dual of this structure is then referred to as a cogenerator/cogenerating family.
Some older texts may use a different definition by Grothendieck. When he was developing his theory of Grothendieck Categories he used a definition in terms of being able to use to determine subobjects. [2] However these definitions coincide for many practical applications in particular when working in a topos. [3]
The usage of the word "generator" evokes the idea that we can generate the category using these objects. This is true in the following sense.
If our category is locally small with all small coproducts then a set is generating if and only if the map
That acts as f on the part of the coproduct with index f, is an epimorphism. This shows that is generating if and only if every object X admits an epimorphism from some coproduct of elements of
If, in addition, every epimorphism in our category is regular this means that every object of our category is generated by colimits of objects in . This is the case in an Abelian category for example.
Projective generators (and their dual injective cogenerators) are often very powerful tools to have when doing algebra in a category. For example, if an abelian category has small coproducts and a compact projective generator P then it is in fact equivalent to the category of modules over the ring . [4] This is then used to prove Mitchell's embedding theorem. This fact is generally useful as compactness, projectiveness and being a generating family are stable under reasonable sums and taking summands so many categories that aren't equivalent to R-mod can be approximated by R-mod for some R by limiting the "size" of objects and taking the sum of all the "smaller" projective generators
Using the characterisation in terms of projections from coproducts, having a family of projective generators along with the existence of coproducts guarantees the category has "enough projectives".
If we have a category with an injective cogenerator taking the "dualising" functor is faithful and has other desirable properties coming from the injectivity. Taking to be we get the idea of a Character module, a concept useful for studying modules over arbitrary rings