Is the following proof for; if $a\mid b$ and $b\mid c$ then $a\mid c$ (for $b\neq 0$) sound? 
If $a\mid b$ and $b\mid c$ then $a\mid c$  (for $b\neq 0$)

Given $(a\mid b) \iff (\exists{n} \in \Bbb{Z})\ a \cdot{n} = b$ and $(b\mid c) \iff (\exists{m} \in \Bbb{Z})\ b \cdot{m} = c$,
then $b = a \cdot n$ so substituting for $b$ we have $(a \cdot n) \cdot m = c $ 
which is equivalent to $a \cdot mn = c$. Therefore we have $(a\mid c)$.
 A: It is correct and you can even note that the assumption $b\ne0$ is redundant.
In a different format.
Since $a\mid b$, there exists $m\in\mathbb{Z}$ with $b=am$; since $b\mid c$, there exists $n\in\mathbb{Z}$ with $c=bn$. Therefore
$$
c=bn=(am)n=a(mn)
$$
and we can conclude that $a\mid c$.

What about $b=0$? Stating $a\mid 0$ is not a problem, because it is true for every $a\in\mathbb{Z}$, since $0=a0$.
Stating $0\mid c$, on the other hand, says that $c=0$, because $c=0n$ implies $c=0$. The statement $0\mid 0$ is perfectly correct and there is no division by $0$ involved.
As you see, $a\mid0$ and $0\mid c$ implies $c=0$, and therefore $a\mid c$. But there is no point in making the special case in the general proof.
A: Your logic is sound, and your proof is fairly good, but you can polish up the argument:
Given $(a\mid b) \iff (\exists{n} \in \Bbb{Z})( a \cdot{n} = b),$ and $(b\mid c) \iff (\exists{m} \in \Bbb{Z})( b \cdot{m} = c),$
then $b = a \cdot{n}.$ And by substituting $a \cdot n$ for  $b$, we have $(a \cdot n) \cdot m = c,$ 
which is equivalent to $a \cdot(mn) = c.$ 
Since $m, n \in \mathbb Z$, so too is $mn\in \mathbb Z$.  
Therefore, we have $(a\mid c)$
