Gram–Schmidt proof The Gram–Schmidt process takes a finite, linearly independent set $S = {v_1, ..., v_k}$ for $k\le n$ and generates an orthogonal set $S′ = {u_1, ..., u_k}$ that spans the same $k$-dimensional subspace of $R^n$ as $S$.
How can I prove that the scalar products $(u_k|v_k)$ are strictly positive for all $k$ ?
 A: Note that we can describe the Gram-Schmidt process as follows: Let $V_k$ be the span of $\{v_1,\ldots,v_{k-1}\}$ and $V_k^{\perp}$ be the set of vectors $v$ perpendicular to every $w\in V_k$. Let $\pi_k$ be the perpendicular projection on to $V_k^{\perp}$ - that is, it takes a vector $v$ to the vector $\pi_k(v)$ which is perpendicular to every element of $\{v_1,\ldots,v_{k-1}\}$ such that $v-\pi_k(v)$ is in the span of $\{v_1,\ldots,v_{k-1}\}$. Then the equation $u_k=\frac{\pi_k(v_k)}{\|\pi_k(v_k)\|}$ describes the Gram-Schmidt process, so we just need to show that $(v_k|\pi_k(v_k))$ is always positive.
One can check that $\pi_k$ is self-adjoint. That is, for any pair of vectors $v$ and $w$ we have $(v|\pi_k(w))=(\pi_k(v)|\pi_k(w))$. It is also idempotent, meaning $\pi_k(\pi_k(v))=\pi_k(v)$. This is basically what is meant by "orthogonal projection" - and you can check that this is indeed true of any projection onto a subspace. Then you can write
$$(v_k|\pi_k(v_k))=(v_k|\pi_k(\pi_k(v_k)))=(\pi_k(v_k)|\pi_k(v_k))>0$$
where the last term is the dot product of a non-zero vector by itself, thus is positive.
