Matrices $m_1$ and $m_2$ are over a finite field($GF(2^{8})$ for example).
$m_1$ is a $m\times n$ matrix($n > m$) with $rank(m_1) = m$,
and $m_2$ is a $n\times c$ ($c > n > m$) matrix with $rank(m_2) = n$.
$m_3 = m_1 \cdot m_2$ and the multiplication is over the same finite field.
My question is that is rank of $m_3$ alway equals to $m$? Why?
Yes. Let $F$ be the field. Then $m_1$ corresponds to a surjective linear function from $F^n$ to $F^m$, and $m_2$ corresponds to a surjective linear function from $F^c$ to $F^n$. The composition of surjective functions is surjective, so $m_3=m_1m_2$ must be a surjective linear function from $F^c$ to $F^m$. It follows that $m_3$ has rank $m$.