The norm-preserving form of the Hahn-Banach theorem states: if is a linear subspace of a real or complex normed vector space and is a bounded linear functional, there exists with and .
For a real separable , put . The case is immediate. To extend over one vector , choose a real number between
The lower endpoint is no greater than the upper: for any ,
The endpoints are finite because testing zero bounds them between finite numbers. Define . The upper inequality ensures for vectors with positive coefficient, and the lower inequality gives it for negative coefficient; it already holds on . Applying the same bound to gives . Thus the extension preserves the norm.
Now add a countable dense sequence of vectors one at a time. The consistent extensions define a bounded functional of norm on the union of the increasing domains. That union is dense in , so extension by continuity gives the desired functional on all of . This proves the real separable case without a maximality argument.
For the density application, suppose the closed linear span were proper. The Hahn-Banach theorem supplies a nonzero continuous linear functional annihilating . By duality of sequence spaces, it has the form with , not identically zero. Let be the first index with . Writing , annihilation of gives
The tail has absolute value at most . Letting contradicts . Therefore
This is geometric sequences with accumulating ratios span c0.