Sajun.org
In
abstract algebra, the '''cokernel''' of a
homomorphism ''f'' : ''X'' → ''Y'' is the
quotient of ''Y'' by the
image of ''f''. In a
topological setting, one typically takes the
closure of the image before passing to the quotient. For instance, if ''f'' : ''H''
1 → ''H''
2 is a
bounded linear operator between
Hilbert spaces, then coker(''f'') is the quotient of ''H''
2 by the closure of the range of ''f''.
== In category theory ==
One can also define the cokernel in the general framework of
category theory. In order for the definition to make sense the category in question must have
zero morphisms. The '''cokernel''' of a
morphism ''f'' : ''X'' → ''Y'' is defined as the
coequalizer of ''f'' and the zero morphism 0
''XY'' : ''X'' → ''Y''.
Explicitly, this means the following. The cokernel of ''f'' : ''X'' → ''Y'' is an object ''Q'' and a
morphism ''q'' : ''Y'' → ''Q'' such that the diagram
commutes. Moreover the morphism ''q'' must be
universal for this diagram, i.e. any other such ''q''′: ''Y'' → ''Q''′ can be obtained by composing ''q'' with a unique morphism ''u'' : ''Q'' to ''Q''′:
As with all universal constructions the cokernel, if it exists, is unique
up to a unique
isomorphism.
Like all
coequalizers, the cokernel ''q'' : ''Y'' → ''Q'' is necessarily an
epimorphism. Conversely an epimorphism is called ''
normal'' (or ''conormal'') if it is the cokernel of some morphism. A category is called ''conormal'' if every epimorphism is normal (e.g. the
category of groups is conormal).
This cokernel is
dual to the
kernels of category theory, hence the name.
=== Examples ===
In the
category of groups, the cokernel of a
group homomorphism ''f'' : ''G'' → ''H'' is the
quotient of ''H'' by the
normal closure of the image of ''f''. In the case of
abelian groups, since every subgroup is normal, the cokernel is just ''H''
modulo the image of ''f'':
:coker(''f'') = ''H'' / im(''f'').
=== Special cases ===
In a
preadditive category, it makes sense to add and subtract morphisms. In such a category, the
coequalizer of two morphisms ''f'' and ''g'' (if it exists) is just the cokernel of their difference:
:coeq(''f'', ''g'') = coker(''g'' - ''f'')
In a
pre-abelian category (a special kind of preadditive category) the existence of kernels and cokernels is guaranteed. In such categories the
image and
coimage of a morphism ''f'' are given by
:im(''f'') = ker(coker ''f'')
:coim(''f'') = coker(ker ''f'')
Abelian categories are even better behaved with respect to cokernels. In particular, every abelian category is conormal (and normal as well). That is, every
epimorphism ''e'' : ''A'' → ''B'' can be written as the cokernel of some morphism. Specifically, ''e'' is the cokernel of its own kernel:
:e = coker(ker ''e'')