Rank of product of a matrix and its transpose [duplicate]
This is only true for real matrices. For instance $\begin{bmatrix} 1 & i \\ 0 &0 \end{bmatrix}\begin{bmatrix} 1 & 0 \\ i &0 \end{bmatrix}$ has rank zero. For complex matrices, you'll need to take the conjugate transpose.
Here is a common proof.
All matrices in this note are real. Think of a vector $X$ as an $m\!\times\!1$ matrix. Let $A$ be an $m\!\times\!n$ matrix.
We will prove that $A A^T X = 0$ if and only if $A^T X = 0$.
It is clear that $A^T X = 0$ implies $AA^T X = 0$.
Assume that $AA^T X = 0$ and set $Y = A^T\!X$. Then $X^T\!A\, Y = 0$, and thus $(A^T\!X)^T Y = 0$. That is $Y^T Y = 0$. Setting $Y = [y_1 \cdots y_n]^\top$ we obtain $0 = Y^T Y = y_1^2 + \cdots + y_n^2$. Since the entries of $Y$ are real, for all $k \in \{1,\ldots,n\}$ we have $y_k^2 \geq 0$. Therefore, $Y^T Y = 0$ yields $y_k = 0$ for all $k \in \{1,\ldots,n\}$. Thus $Y = A^T X = 0$.
We just proved that the $m\!\times\!m$ matrix $AA^T$ and the $n\!\times\!m$ matrix $A^T$ have the same null space. Consequently, they have the same nullity. The nullity-rank theorem states that $$ \operatorname{Nul} AA^T + \operatorname{Rank} AA^T = m = \operatorname{Nul} A^T + \operatorname{Rank} A^T. $$
Hence $\operatorname{Rank} AA^T = \operatorname{Rank} A^T$.
It is always true. One of the important theorems one learns in linear algebra is that $$ \mathrm{Nul}(A^T)^{\perp} = \mathrm{Col}(A), \quad \mathrm{Nul}(A)^{\perp} = \mathrm{Col}(A^T).$$
Therefore $\mathrm{Nul}(A^T) \cap \mathrm{Col}(A) = \{0\}$, and so forth. Now consider the matrix $A^TA$. Then $\mathrm{Col}(A^TA) = \{A^TAx\} = \{A^Ty: y \in \mathrm{Col}(A)\}$. But since the null space of $A^T$ only intersects trivially with $\mathrm{Col}(A)$, then $\mathrm{Col}(A^TA)$ must have the same dimension as $\mathrm{Col}(A)$, which gives us the equality of ranks.
We can replace $A$ with $A^T$ to prove the other equality.