An arrow in a category can have at most one inverse Regarding the proof of the fact that an arrow in a category can have at most one inverse:
Suppose $f:A\to B$ is an arrow with two inverses $g,h:B\to A$. So we have 


*

*$h\circ f=1_A$

*$f\circ h=1_B$

*$g\circ f=1_A$

*$f\circ g=1_B$
I think the proof only uses $(1)$ and $(4)$:
$$h=h\circ 1_B=h\circ f\circ h=1_A\circ g=g.$$
Are conditions $(2),(3)$ really unnecessary, or am I missing something?
 A: They are really unnecessary. Any morphism with both a left and a right inverse has an inverse, which is equal to both the given left and the right inverse. In fact it is more convenient in certain foundational systems like homotopy type theory to define an isomorphism as a morphism with both a left and a right inverse. 
A: Kevin essentially already said this in an answer, but let me rephrase it (i.e. spell out more explicitly). Let $f: A \to B$ be any arrow, then if $f$ has a left inverse $h: B \to A$ (i.e. $hf = Id_A$) and a right inverse $g: B \to A$ (i.e. $fg = Id_B$) we have that $f$ has an inverse on both sides and this inverse is given by $h=g$ (so they are the same arrow).
The proof of this is what you already gave:
$$
h = h Id_B = hfg = Id_A g = g.
$$
So in particular $gf = hf = Id_A$ and $fh = fg = Id_B$.
So yes, this means that you only need (1) and (4), expressing $h$ being a left inverse and $g$ being a right inverse respectively. By symmetry, you could also do with just (2) and (3).
