I've seen different intuitive explanations on math SE, but none of them has really clicked for me. I cobbled together pieces of the explanations I've seen and come up with something that feels like it makes more sense to me. Is the following a correct interpretation of why $rank(A^T) = rank(A)$?
Explanation: Suppose that $A \in \mathbb{R}^{n\times m}$ has rank $k$. This means that the image of $A$'s linear transformation is a $k$ dimensional subspace of $\mathbb{R}^n$. $A^T$ must then take this $k$ dimensional subspace to a subspace of $\mathbb{R}^m$ that is of dimension at most $k$. This means that $$rank(A^T) \leq k = rank(A).$$ We can then apply the same result starting with $A^T$ so that $rank((A^T)^T) \leq rank(A^T)$, which means that $rank(A) \leq rank(A^T)$. Taken together, we have $rank(A) = rank(A^T)$.
Question: Does this make sense? What would I need to do to make this more rigorous?
Edit: With the help of @Paweł Czyż and some more digging, this is my updated argument.
If $A^TAx = 0$, then $x^TA^TAx = ||Ax||^2 = 0$ which means that $Ax = 0$ (by properties of norms). This shows that $N(A) = N(A^TA)$. Because $A^TA$ and $A$ have the same input dimension, the rank-nullity theorem tells us that $rank(A) = rank(A^TA)$. This completes the argument because we then have $rank(A^T) = rank((A^TA)^T) = rank(A)$.