Abelian category

In mathematics, an abelian category is a category in which morphisms and objects can be added and in which kernels and cokernels exist and have nice properties. The motivating prototype example of an abelian category is the category of abelian groups, Ab.
Contents 
Definitions
A category is abelian if
 it has a zero object,
 it has all pullbacks and pushouts, and
 all monomorphisms and epimorphisms are normal.
By a theorem of Peter Freyd, this definition is equivalent to the following "piecemeal" definition:
 A category is preadditive if it is enriched over the monoidal category Ab of abelian groups. This means that all homsets are abelian groups and the composition of morphisms is bilinear.
 A preadditive category is additive if every finite set of objects has a biproduct. This means that we can form finite direct sums and direct products.
 An additive category is preabelian if every morphism has both a kernel and a cokernel.
 Finally, a preabelian category is abelian if every monomorphism and every epimorphism is normal. This means that every monomorphism is a kernel of some morphism, and every epimorphism is a cokernel of some morphism.
Note that the enriched structure on homsets is a consequence of the three axioms of the first definition.
Examples
 As mentioned above, the category of all abelian groups is an abelian category. The category of all finitely generated abelian groups is also an abelian category, as is the category of all finite abelian groups.
 If R is a ring, then the category of all left (or right) modules over R is an abelian category. In fact, it can be shown that any abelian category is equivalent to a full subcategory of such a category of modules (Mitchell's embedding theorem).
 If K is a commutative noetherian ring, then the category of finitely generated modules over K is abelian. In this way, abelian categories show up in commutative algebra.
 As special cases of the two previous examples: the category of vector spaces over a fixed field k is abelian, as is the category of finitedimensional vector spaces over k.
 If R is a ring, then the category of all finitely presented left (or right) modules over R is an abelian category. (The category of finitely generated modules over R is not always abelian.)
 If X is a topological space, then the category of all sheaves of abelian groups on X is an abelian category. More generally, the category of sheaves of abelian groups on a Grothendieck site is an abelian category. In this way, abelian categories show up in algebraic topology and algebraic geometry.
 If C is a small category and A is an abelian category, then the category of all functors from C to A forms an abelian category (the morphisms of this category are the natural transformations between functors). If C is small and preadditive, then the category of all additive functors from C to A also forms an abelian category. The latter is a generalization of the Rmodule example, since a ring can be understood as a preadditive category with a single object.
Elementary properties
Given any pair A, B of objects in an abelian category, there is a special zero morphism from A to B. This can be defined as the zero element of the homset Hom(A,B), since this is an abelian group. Alternatively, it can be defined as the unique composition A → 0 → B, where 0 is the zero object of the abelian category.
In an abelian category, every morphism f can be written as the composition of an epimorphism followed by a monomorphism. This epimorphism is called the coimage of f, while the monomorphism is called the image of f.
Subobjects and quotient objects are wellbehaved in abelian categories. For example, the poset of subobjects of any given object A is a bounded lattice.
Every abelian category A is a module over the monoidal category of finitely generated abelian groups; that is, we can form a tensor product of a finitely generated abelian group G and any object A of A. The abelian category is also a comodule; Hom(G,A) can be interpreted as an object of A. If A is complete, then we can remove the requirement that G be finitely generated; most generally, we can form finitary enriched limits in A.
Related concepts
Abelian categories are the most general setting for homological algebra. All of the constructions used in that field are relevant, such as exact sequences, and especially short exact sequences, and derived functors. Important theorems that apply in all abelian categories include the five lemma (and the short five lemma as a special case), as well as the snake lemma (and the nine lemma as a special case).
History
Abelian categories were introduced by Alexander Grothendieck in the middle of the 1950s in order to unify various cohomology theories. At the time, there was a cohomology theory for sheaves, and a cohomology theory for groups. The two were defined completely differently, but they had formally almost identical properties. In fact, much of category theory was developed as a language to study these similarities. Grothendieck managed to unify the two theories: they both arise as derived functors on abelian categories; on the one hand the abelian category of sheaves of abelian groups on a topological space, on the other hand the abelian category of Gmodules for a given group G.
References
 P. Freyd. Abelian Categories, Harper and Row, New York, 1964. Available online. (http://www.tac.mta.ca/tac/reprints/articles/3/tr3abs.html)
 Barry Mitchell: Theory of Categories, New York, Academic Press, 1965.
 N. Popescu: Abelian categories with applications to rings and modules, Academic Press, London, 1973.