In connection with reading a proof of a theorem in a real-analysis textbook, I've stumbled upon the following theorem.
Theorem. Suppose $C$ is closed with non-empty interior and has a supporting hyperplane at each point of it's boundary. Then it is convex.
I have not studied much convex-analysis, and I've been trying to find a beginner's friendly proof of this theorem. I've looked up Boyd's and Vandenberghe's textbook, and I've seen their proof of this theorem, but I think some parts of it are unclear, as highlighted in this question. From my search, in particular inspired from this answer, I have collected the following "proof", which I would love to see verified (for the definition of a supporting hyperplane, see Wikipedia).
Proof. Suppose the assumptions hold and it is not convex. Then there exists points $p,q$ in the interior of $C$ such that a line segment joining $p,q$ leaves the set somewhere in-between. In particular, the line segment must pass through a boundary point $b$ where's there's a hyperplane separating $p$ and $q$. But that is a contradiction that $C$ has a supporting hyperplane at $b$, namely that $C$ is contained entirely in one side of the two closed half-spaces bounded by the hyperplane. So $C$ must be convex.
Consulting chat, I've been told that any proof that does not use the fact that $C$ has non-empty interior will not work, because it easy to construct counterexamples of sets that will fail if they have empty interior. I'm not sure to what extent this proof makes use of the fact that $C$ has non-empty interior. Moreover, I'm doubting its legitimacy because it's not guaranteed that the points $p,q$ will lie in the interior. If this proof does not work, can it be improved to work?