Reconciling different definitions of left-exact functor I've seen three different definitions of what a left-exact functor is:


*

*Here as a functor that preserves finite limits

*Here as a functor $F$ with the property that if 
$0 \to A \to B \to C \to 0$
is exact then 
$0 \to F(A) \to F(B) \to F(C)$
is exact

*Also here as a functor $F$ with the property that if 
$0 \to A \to B \to C$
is exact then
$0 \to F(A) \to F(B) \to F(C)$
is exact
I'm having a hard time convincing myself that these three definitions are equivalent. Its clear off the bat that any functor with the third property also has the second (since exactness of $0 \to A \to B \to C \to 0$ implies exactness of $0 \to A \to B \to C$); but its not immediately obvious why a functor having the second property should also have the third property? And I'm having trouble seeing the link between the second and third definitions and the first definition too. I'm not looking so much for formal proofs as much as just an intuitive idea as to what exactly 'left-exact functors' are; and why (intuitively) these three definitions should be equivalent?
 A: The first thing to be clear about is the latter two statements are statements about additive functors between Abelian categories.  An arbitrary functor that satisfies those stated properties is not necessarily finite product preserving.
An additive functor is just a functor between additive categories that preserves products. A special fact about additive categories is that they have biproducts, i.e. finite products and coproducts coincide.  In general, for a functor to preserve all (finite) limits you just need to establish that it preserves (finite) products and equalizers because by a standard result in category theory, you can make all (finite) limits from (finite) products and equalizers. An additional property that an additive category has is that it is $\mathbf{Ab}$-enriched which means that the hom-sets form Abelian groups.  For our purposes, this means we can reduce equalizers to kernels. That is, the equalizer of $f$ and $g$ is the kernel of $f-g$. (Going the other way, the kernel of $f$ is the equalizer of $f$ and $0$.)
So, an additive functor that preserves kernels preserves finite limits and vice versa, an arbitrary functor between additive categories that preserves finite limits is additive and preserves kernels. The third statement is just the statement that kernels are preserved, though for "exact sequence" to be appropriately coherent, you likely do need an Abelian category.
In an Abelian category, we have a factorization property where every arrow $f : B \to C$ factors as $f = m\circ e$ where $e : B \twoheadrightarrow\mathsf{im}(f)$ and $m : \mathsf{im}(f)\rightarrowtail C$, where $e$ is an epimorphism and $m$ a monomorphism. So, given an exact sequence $0\to A\to B\stackrel{f}{\to}C$, we can extend it to an exact sequence $0\to A\to B\stackrel{e}{\to} \mathsf{im}(f)\to 0$. The image of that exact sequence is then the exact sequence $0\to F(A)\to F(B)\stackrel{F(e)}{\to} F(\mathsf{im}(f))$. If $F(m)$ was a monomorphism, this would imply that we could replace $F(e)$ with $F(f)=F(m\circ e)=F(m)\circ F(e)$ in the above diagram, but since in an Abelian category monomorphisms are kernels, we can use the same logic we just used to show that monomorphisms are preserved. This doesn't run into the issue we're trying to solve here, because we only need to know that they are kernels of something.
