In category theory, a branch of mathematics, the concept of an injective cogenerator is drawn from examples such as Pontryagin duality. Generators are objects which cover other objects as an approximation, and cogenerators are objects which envelope other objects as an approximation. More precisely:
A generator of a category with a zero object is an object G such that for every nonzero object H there exists a nonzero morphism f:G → H.
A cogenerator is an object C such that for every nonzero object H there exists a nonzero morphism f:H → C..
Assuming one has a category like that of abelian groups, one can in fact form direct sums of copies of G until the morphism is surjective; and one can form direct products of C until the morphism is injective. For example, the integers are a generator of the category of abelian groups. This is the origin of the term generator. The approximation here is normally described as generators and relations. As an example of a cogenerator in the same category, we have Q/Z, the rationals modulo the integers, which is a divisible abelian group. Given any abelian group A, there is an isomorphic copy of A contained inside the product of |A| copies of Q/Z. This approximation is close to what is called the divisible envelope - the true envelope is subject to a minimality condition.
General theory
Finding a generator of an abelian category allows one to express every object as a quotient of a direct sum of copies of the generator. Finding a cogenerator allows one to express every object as a subobject of a direct product of copies of the cogenerator. One is often interested in projective generators and minimal injective cogenerators. Both examples above have these extra properties. The cogenerator Q/Z is useful in the study of modules over general rings. If H is a left module over the ringR, one forms the character moduleH* consisting of all abelian group homomorphisms from H to Q/Z. H* is then a right R-module. Q/Z being a cogenerator says precisely that H* is 0 if and only ifH is 0. Even more is true: the * operation takes a homomorphism to a homomorphism and f* is 0 if and only if f is 0. It is thus a faithfulcontravariant functor from left R-modules to right R-modules. Every H* is pure-injective. One can often consider a problem after applying the * to simplify matters. All of this can also be done for continuous modulesH: one forms the topological character module of continuous group homomorphisms from H to the circle group R/Z.