Assume first $A$ has independent columns. We have a projection matrix $P$ on the range of $A$, i.e. $P_A = A(A^\top A)^{-1}A^\top$. Consider now a matrix $B$ which has the same range as $A$. We have $B = AC$, where $C$ is an invertible matrix. We also have the following.
$P_B = B(B^\top B)^{-1}B^\top = AC(C^\top A^\top AC )^{-1}C^\top A^\top = ACC^{-1}(A^\top A)^{-1} {C^{\top}}^{-1}C^\top A = P_A$
I am interested in having a similar result for the case where A does not have independent columns. Now, $A^\top A$ isn't invertible and the projection matrix becomes $P_A = A(A^\top A)^{\dagger}A^\top$, where we denote by $(\cdot)^\dagger$ the Moore-Penrose pseudoinverse. Consider now two cases:
- $B$ also has dependent columns and $B = AC$ for some invertible $C$.
- $B$ has independent columns and $B = AC$ for a skinny rectangular matrix $C$ such that $C^\top C = I$, i.e. $C$ selects a minimal subset of columns of $A$ to span the range. Edit: The columns of C are columns of the identity matrix.
In each case, I would like a proof that $A(A^\top A)^{\dagger}A^\top = B(B^\top B)^{\dagger}B^\top$. The problem with the above technique is that I can't simply pull $C$ out of $(C^\top A^\top AC )^{\dagger}$.
Edit: I see that the matrix $A(A^\top A)^{\dagger}A^\top = A A^\dagger$, but again, I don't see how to show that $A A^\dagger = AC (AC)^\dagger$.
Edit: I can also see the following justification: $P_A$ is the projection matrix on the range of $A$, and $P_B$ on the range of $B$. Since the range is the same, they also have to be the same by uniqueness of projection (@martini). But this is ugly, because we have to interpret the matrices as projections. Isn't there an $algebraic$ way to justify this?