0 ≤ |x-ly|2 =
(x-ly).(x-ly) =
x.x - 2l(x.y) + l2(y.y)
The inequality becomes equality iff x = ly.
Setting l = 0 or y = 0 gives 0 ≤ x.x, which isn't very interesting, so assume l > 0 and y ≠ 0, and write the following inequality.
2x.y ≤ x.x/l + ly.y
Set l = |x|/|y| and find x.y ≤ |x|×|y|. If x or y is 0 we have equality, and if x = ly we began with an equation, which produces equality. This is cauchy schwarz. The dot product is bounded by the product of the norms, with equality iff one vector is a linear multiple of the other. Remember that 0 is technically a linear multiple of x, and sure enough, 0.x = |0| times |x|.
Let T be S cross S, with the product topology. This is another banach space. The dot product now maps T into R. Select x and y from S such that the ordered pair x,y in T has norm 1. Thus |x| and |y| have norm at most 1 in S. The dot product x.y is bounded by 1. Once again a linear operator on a banach space is bounded, hence continuous. The dot product is a continuous map from S cross S into the reals.