Solution (source code)

= Solution
{c}

The <Gram-Schmidt process> subtracts projections onto directions already constructed and then normalizes. Define recursively
$$
w_k=v_k-\sum_{j<k}\langle v_k,e_j\rangle e_j,\qquad e_k=\frac{w_k}{\|w_k\|},\quad k=1,\ldots,n,
$$
where the empty sum for $k=1$ is zero. Assuming the preceding $e_j$ are <orthonormal>, taking the <inner product> of $w_k$ with $e_i$, $i<k$, gives zero. Moreover $w_k\ne0$: otherwise $v_k$ would belong to the <span> of $v_1,\ldots,v_{k-1}$, contrary to <linear independence>. Normalization is therefore legitimate and produces an <orthonormal basis>. At each stage the first $k$ constructed vectors have the same <span> as the first $k$ original vectors.