Let $A$ is a $n \times n$ matrix, and $B$ is a $n \times m $ matrix and $m\leq n$.
If $rank[A\quad B]=n$, can we get $rank[A\quad B*B']=n$?
I try to prove that $B$ and $B*B'$ have the same range space.
For any vector $x \in range(B*B')$, it can be written as $x = B*B'y$. Therefore, $rang(B*B') \subset range(B)$.
Also based on the result that $rank(B)=rank(B*B')$. Therefore, $B$ and $B*B'$ have the same column space. Is this the proof?
You're right, except that $B.B'$ isn't necessarily invertible. Instead, you can argue by contradiction. Suppose $rank(B)>rank(BB')$, then $dim(ker(BB'))>dim(ker(B))$, where $ker(BB')$ denotes the kernel, i.e. the vector space of vectors $x \in \mathbb{R}^n$ such that $BB'x=0$. It is a well-known fact that $dim(ker(B))=dim(ker(B'))$. Hence $ker(BB')$ is a higher-dimensional subspace of $\mathbb{R}^n$ than $ker(B')$. In particular, there is some vector $x\in ker(BB') \setminus ker(B')$, i.e. some vector such that $BB'x=0$ but $B'x \ne 0$. But $BB'x=0$ implies $x'BB'x=0$, while $B'x \ne 0$ implies $(B'x)'B'x>0$, i.e. $x'BB'x\ne 0$.