Kernel (category theory)

In category theory and its applications to other branches of mathematics, kernels are a generalization of the kernels of group homomorphisms and the kernels of module homomorphisms and certain other kernels from algebra. Intuitively, the kernel of the morphism f : X → Y is the "most general" morphism k : K → X which, when composed with f, yields zero.
Note that kernel pairs and difference kernels (aka binary equalisers) sometimes go by the name "kernel"; while related, these aren't quite the same thing and are not discussed in this article.
Contents 
Definition
Let C be a category. In order to define a kernel in the general categorytheoretical sense, C needs to have zero morphisms. In that case, if f : X → Y is an arbitrary morphism in C, then a kernel of f is an equaliser of f and the zero morphism from X to Y. In symbols:
 ker(f) = eq(f, 0_{XY})
To be more explicit, the following universal property can be used. A kernel of f is any morphism k : K → X such that:
 f o k is the zero morphism from K to Y;
 Given any morphism k′ : K′ → X such that f o k′ is the zero morphism, there is a unique morphism u : K′ → K such that k o u = k'.
Note that in many concrete contexts, one would refer to the object K as the "kernel", rather than the morphism k. In those situations, K would be a subset of X, and that would be sufficient to reconstruct k as an inclusion map; in the nonconcrete case, in contrast, we need the morphism k to describe how K is to be interpreted as a subobject of X. In any case, one can show that k is always a monomorphism (in the categorical sense of the word). One may prefer to think of the kernel as the pair (K,k) rather than as simply K or k alone.
Not every morphism needs to have a kernel, but if it does, then all its kernels are isomorphic in a strong sense: if k : K → X and l : L → X are kernels of f : X → Y, then there exists a unique isomorphism φ : K → L such that l o φ = k.
Examples
Kernels are familiar in many categories from abstract algebra, such as the category of groups or the category of (left) modules over a fixed ring (including vector spaces over a fixed field). To be explicit, if f : X → Y is a homomorphism in one of these categories, and K is its kernel in the usual algebraic sense, then K is a subalgebra of X and the inclusion homomorphism from K to X is a kernel in the categorical sense.
Note that in the category of monoids, categorytheoretic kernels exist just as for groups, but these kernels don't carry sufficient information for algebraic purposes. Therefore, the notion of kernel studied in monoid theory is slightly different. Conversely, in the category of rings, there are no kernels in the categorytheoretic sense; indeed, this category does not even have zero morphisms. Nevertheless, there is still a notion of kernel studied in ring theory. See Relationship to algebraic kernels below for the resolution of this paradox.
We have plenty of algebraic examples; now we should give examples of kernels in categories from topology and functional analysis.
Relation to other categorical concepts
The dual concept to that of kernel is that of cokernel. That is, the kernel of a morphism is its cokernel in the opposite category, and vice versa.
As mentioned above, a kernel is a type of binary equaliser, or difference kernel. Conversely, in a preadditive category, every binary equaliser can be constructed as a kernel. To be specific, the equaliser of the morphisms f and g is the kernel of the difference g − f. In symbols:
 eq (f,g) = ker (g − f).
It is because of this fact that binary equalisers are called "difference kernels", even in nonpreadditive categories where morphisms cannot be subtracted.
Every kernel, like any other equaliser, is a monomorphism. Conversely, a monomorphism is called normal if it is the kernel of some morphism. A category is called normal if every monomorphism is normal.
Abelian categories, in particular, are always normal. In this situation, the kernel of the cokernel of any morphism (which always exists in an abelian category) turns out to be the image of that morphism; in symbols:
 im f = ker coker f (in an abelian category)
When m is a monomorphism, it must be its own image; thus, not only are abelian categories normal, so that every monomorphism is a kernel, but we also know which morphism the monomorphism is a kernel of, to wit, its cokernel. In symbols:
 m = ker (coker m) (for monomorphisms in an abelian category)
Relationship to algebraic kernels
Universal algebra defines a notion of kernel for homomorphisms between two algebraic structures of the same kind. This concept of kernel measures how far the given homomorphism is from being injective. There is some overlap between this algebraic notion and the categorical notion of kernel since both generalize the situation of groups and modules mentioned above. In general, however, the universalalgebraic notion of kernel is more like the categorytheoretic concept of kernel pair. In particular, kernel pairs can be used to interpret kernels in monoid theory or ring theory in categorytheoretic terms.