I'll give a matrix argument. First a simple question, take a column vector a, what is the rank ? What is the rank of a*a? Same question for a row vector b?
I would suggest writing the dimensions and checking when the condition is true then carry on with singular value decomposition or Cholesky if you like. you might end up with positive SEMI-definite product! but if you modify the definitions of course, you can recover the same result with some caution.
The way I'd approach it is that A*A is self-adjoint, and hence has a spectral decomposition, and hence the sqrt of A*A is [tex]\sum_a\sqrt{a}\left| a\right>\left< a\right|[/tex]. Somehow, this is positive.
This follows from the two following facts/theorems:
1) Every positive operator (on a complex Hilbert space) has a unique positive square root, and
2) A*A is a positive operator.