I am trying to understand the definition of abelian categories. I have found two different definitions which it seems they are not equivalent. If you think they are equivalent, then how can we prove that? And if they are not equivalent, then what is the right definition of abelian categories?
The first one is: An abelian category is an additive category where (i) every morphism admits a kernel and cokernel, (ii) every monomorphism is a kernel and every epimorphism is a cokernel.
And the second one is: An abelian category is an additive category where (i) every morphism admits a kernel and cokernel, (ii) every monomorphism is the kernel of its cokernel and every epimorphism is the cokernel of its kernel, (iii) every morphism is expressible as the composite of an epimorphism and a monomorphism.