Query in the definion of abelian category

I am studying the definition of abelian category..Definition says it is a additive category with

a)every morphism in category has kernel and co-kernel.

b)every monomorphism in the category is the kernel of its co-kernel.

c)every epimorphism is the co-kernel of its kernel.

I am unable to understand condition (b) and (c).My question is what is the role of condition (b) and (c)..Why we are taking these two condition.

• Note that in a category with kernels and cokernels, if a monomorphism is the kernel of some arrow, then it is the kernel of its cokernel. So condition b) states that every monomorphism is a kernel of some arrow. Note that in Grp, this is not true, a subgroup is a kernel if and only if it is normal. We want abelian categories to be normal: en.wikipedia.org/wiki/Normal_morphism – Jakob Werner Dec 24 '14 at 17:01
• @JakobWerner If you gonna give an answer, just put it in the answer box. (So that we can upvote and accept it.) – Pece Dec 24 '14 at 17:24

In categories with kernels and cokernels, you can show that if a monomorphism is the kernel of some arrow, then it is the kernel of its cokernel. One can express this in the formula $\ker\operatorname{coker}\ker f=\ker f$.
So condition b) states that every monomorphism is a kernel of some arrow. A monomorphism which satisfies this condition is called normal. Note that in $\mathbf{Grp}$ for example, not every monomorphism is normal, because not every subgroup of a given group is normal. In abelian categories we would like this to be true.
Finally, one of the most important properties of abelian categories is, that the concept is closed under dualizing, which leads us to condition c) (and of course there are also natural arising categories - instead of $\mathbf{Grp}^{\operatorname{op}}$ - where condition c) fails to be true).