In Rudin's Principles of Mathematical Analysis, he gives the following proof:
2.37 Theorem: If $E$ is an infinite subset of a compact set $K$, then $E$ has a limit point in K.
Proof: If no point of $K$ were a limit point of $E$, then each $q\in K$ would have a neighborhood $V_q$ which contains at most one point of $E$. It is clear that no finite subcollection of ${V_q}$ can cover $E$; and the same is true of $K$, since $E\subset K$. This contradicts the compactness of $K$.
The way I understand this proof is as follows: If each $V_q$ is open, then $\cup \{ V_q \}$ would be an open cover for $K$ (and $E$ as well, since $E \subset K$). Since $E$ is an infinite set of points, it follows that no finite subcollection of ${V_q}$ can cover $E$ (since there is at most one point in each ${V_q}$, and a finite collection of points cannot cover an infinite collection of points).
So it seems to me that this whole proof hinges on the fact that each set $V_q$ is an open set? Earlier in Rudin we prove that the union of open sets is open. So to get an open cover for $E$ we would need to take the union of open sets. Why are these single-point sets considered open? I thought single-point sets were closed:
Or is there something I'm missing here?