[proofplan]
Since the [weak topology](/page/Weak%20Topology) $\sigma(X, X^*)$ is coarser than the norm topology, every weakly closed set is norm-closed — this gives one direction without convexity. The substantive direction is the converse: a norm-closed convex set is weakly closed. We prove this by contrapositive. Given $x_0 \notin C$ with $C$ norm-closed and convex, we thicken $C$ to an open convex set $A = C + B(0, \delta/2)$ still missing $x_0$, apply the Hahn-Banach Separation Theorem to obtain $f \in X^*$ with $f(c) < \alpha \le f(x_0)$, sharpen the bound to $\sup_{c \in C} f(c) \le \alpha - \varepsilon_0$ using the thickening, and exhibit the weakly open set $\{x : f(x) > \alpha - \varepsilon_0/2\}$ as a weak neighbourhood of $x_0$ disjoint from $C$.
[/proofplan]
[step:Establish that weakly [closed sets](/page/Closed%20Set) are norm-closed]
The weak topology $\sigma(X, X^*)$ is coarser than the norm topology: every weakly open set is norm-open, since each sub-basic set $f^{-1}(U)$ with $f \in X^*$ and $U \subset \mathbb{R}$ open is norm-open by norm-[continuity](/page/Continuity) of $f$. Consequently, every weakly closed set is norm-closed. This direction holds for all sets, not just convex ones.
[guided]
The weak topology is defined as the coarsest topology making every $f \in X^*$ continuous. Since each $f \in X^*$ is already norm-continuous, every sub-basic weakly open set $f^{-1}(U)$ (with $U \subset \mathbb{R}$ open) is norm-open. Finite intersections and arbitrary unions of norm-[open sets](/page/Open%20Set) are norm-open, so every weakly open set is norm-open. Taking complements: every weakly closed set is norm-closed.
This implication is purely topological and requires no convexity. The converse fails dramatically for non-convex sets: the unit sphere $\{x : \|x\|_X = 1\}$ in an infinite-dimensional [Banach space](/page/Banach%20Space) is norm-closed but never weakly closed.
[/guided]
[/step]
[step:Separate $x_0 \notin C$ from the norm-closed convex set $C$ by a continuous linear functional]
Let $C \subset X$ be convex and norm-closed, and let $x_0 \in X \setminus C$. Since $C$ is norm-closed, $\delta := \operatorname{dist}(x_0, C) = \inf_{c \in C} \|x_0 - c\|_X > 0$.
Define
\begin{align*}
A := C + B(0, \delta/2) = \{c + h : c \in C, \; \|h\|_X < \delta/2\}.
\end{align*}
Then $A$ is open (it equals $\bigcup_{c \in C} B(c, \delta/2)$, a union of open balls), convex (as the Minkowski sum of the convex set $C$ and the convex set $B(0, \delta/2)$), and disjoint from $\{x_0\}$ (if $x_0 = c + h$ with $\|h\| < \delta/2$, then $\|x_0 - c\| < \delta/2 < \delta$, contradicting the definition of $\delta$).
By the [Hahn-Banach Separation Theorem](/theorems/974) applied to the nonempty convex open set $A$ and the nonempty convex set $\{x_0\}$ with $A \cap \{x_0\} = \varnothing$, there exist $f \in X^*$ and $\alpha \in \mathbb{R}$ such that
\begin{align*}
f(a) < \alpha \le f(x_0) \quad \text{for all } a \in A.
\end{align*}
[guided]
We cannot apply the Hahn-Banach Separation Theorem directly to $C$ and $\{x_0\}$ because the theorem requires one of the convex sets to be open. The norm-closed set $C$ is not open in general, so we enlarge it to the open set $A = C + B(0, \delta/2)$. The "buffer" $\delta/2$ is chosen small enough that $x_0$ remains outside $A$.
Verifying the hypotheses of the [Hahn-Banach Separation Theorem](/theorems/974): (i) $X$ is a real [normed space](/page/Normed%20Vector%20Space) — given; (ii) $A$ is open, nonempty, and convex — verified above; (iii) $\{x_0\}$ is nonempty and convex — a singleton is convex; (iv) $A \cap \{x_0\} = \varnothing$ — verified by the distance argument.
The conclusion gives strict separation: $f$ lies strictly below $\alpha$ on all of $A$, and $f(x_0) \ge \alpha$. Note that $f \neq 0$ since $f(a) < \alpha$ for all $a \in A$ while $f(x_0) \ge \alpha$, so $f$ is non-constant.
[/guided]
[/step]
[step:Sharpen the separation to a quantitative gap between $C$ and $x_0$]
We extract a quantitative gap. Since $C \subset A$, we have $f(c) < \alpha$ for all $c \in C$. We claim
\begin{align*}
\sup_{c \in C} f(c) \le \alpha - \|f\|_{X^*} \cdot \frac{\delta}{2}.
\end{align*}
To see this, fix $c \in C$. For any $h \in B(0, \delta/2)$, the point $c + h \in A$, so $f(c + h) = f(c) + f(h) < \alpha$. Therefore $f(c) < \alpha - f(h)$ for all $h \in B(0, \delta/2)$. Taking the infimum over $h \in B(0, \delta/2)$,
\begin{align*}
f(c) \le \alpha - \sup_{h \in B(0, \delta/2)} f(h).
\end{align*}
Since $f \neq 0$, the supremum $\sup_{\|h\| < \delta/2} f(h) = \|f\|_{X^*} \cdot \delta/2 > 0$ (achieved in the limit by scaling the direction that maximises $f$). Hence
\begin{align*}
f(c) \le \alpha - \|f\|_{X^*} \cdot \frac{\delta}{2} \quad \text{for every } c \in C.
\end{align*}
Define $\varepsilon_0 := \|f\|_{X^*} \cdot \delta/2 > 0$.
[guided]
The thickening trick does more than just make $C$ open — it produces a quantitative gap between $\sup_{c \in C} f(c)$ and $\alpha$. The gap comes from the "room" created by $B(0, \delta/2)$.
For each $c \in C$, the condition $f(c + h) < \alpha$ for all $\|h\| < \delta/2$ is equivalent to $f(c) < \alpha - f(h)$. The most we can extract from this is obtained by choosing $h$ to maximize $f(h)$ on $B(0, \delta/2)$. The supremum of $f$ over the open ball of radius $\delta/2$ equals $\|f\|_{X^*} \cdot \delta/2$ (by definition of the operator norm: $\|f\|_{X^*} = \sup_{\|h\| \le 1} f(h)$, so $\sup_{\|h\| \le \delta/2} f(h) = \|f\|_{X^*} \cdot \delta/2$). This supremum is not attained on the open ball, but the inequality $f(c) < \alpha - f(h)$ for all $h$ in the open ball gives $f(c) \le \alpha - \|f\|_{X^*} \cdot \delta/2$ after taking the infimum of the right-hand side (equivalently, the supremum of $f(h)$).
This gap $\varepsilon_0 = \|f\|_{X^*} \delta/2 > 0$ is what allows us to build a weakly open neighbourhood of $x_0$ that misses $C$ entirely.
[/guided]
[/step]
[step:Construct a weakly open neighbourhood of $x_0$ disjoint from $C$]
Define the set
\begin{align*}
W := \{x \in X : f(x) > \alpha - \varepsilon_0/2\}.
\end{align*}
This set is weakly open (it is the preimage of the open interval $(\alpha - \varepsilon_0/2, \infty)$ under the weakly continuous functional $f$). It contains $x_0$, since $f(x_0) \ge \alpha > \alpha - \varepsilon_0/2$. It is disjoint from $C$: for every $c \in C$,
\begin{align*}
f(c) \le \alpha - \varepsilon_0 < \alpha - \varepsilon_0/2,
\end{align*}
so $c \notin W$.
Therefore $x_0 \notin \overline{C}^{w}$ (the weak closure of $C$), since $W$ is a weak neighbourhood of $x_0$ with $W \cap C = \varnothing$. Since $x_0 \in X \setminus C$ was arbitrary, we conclude $\overline{C}^{w} = C$, i.e., $C$ is weakly closed.
[guided]
The weakly open set $W = f^{-1}((\alpha - \varepsilon_0/2, \infty))$ threads the needle between $x_0$ and $C$. The threshold $\alpha - \varepsilon_0/2$ lies strictly between $\sup_{c \in C} f(c) \le \alpha - \varepsilon_0$ and $f(x_0) \ge \alpha$:
\begin{align*}
\sup_{c \in C} f(c) \le \alpha - \varepsilon_0 < \alpha - \varepsilon_0/2 < \alpha \le f(x_0).
\end{align*}
The left inequality ensures $C \cap W = \varnothing$; the right inequality ensures $x_0 \in W$.
Since no point outside $C$ belongs to the weak closure of $C$, the set $C$ is weakly closed. This completes the proof that norm-closed convex sets are weakly closed.
[/guided]
[/step]
[step:Derive the closure equivalence for arbitrary convex sets]
We prove the "equivalently" formulation: for any convex $C \subset X$, $\overline{C}^{\|\cdot\|} = \overline{C}^{w}$, where $\overline{C}^{\|\cdot\|}$ and $\overline{C}^{w}$ denote the norm closure and weak closure respectively.
Since the weak topology is coarser than the norm topology, every weakly open set is norm-open. Therefore, if $x \in \overline{C}^{\|\cdot\|}$ (every norm-open neighbourhood of $x$ meets $C$), then in particular every weakly open neighbourhood of $x$ meets $C$ (since weakly open sets are norm-open), giving $x \in \overline{C}^{w}$. This shows $\overline{C}^{\|\cdot\|} \subset \overline{C}^{w}$.
For the reverse inclusion, the norm closure $\overline{C}^{\|\cdot\|}$ is norm-closed and convex (the norm closure of a convex set is convex: if $x, y \in \overline{C}^{\|\cdot\|}$ with $x_n \to x$ and $y_n \to y$ with $x_n, y_n \in C$, then $t x_n + (1-t) y_n \in C$ for $t \in [0,1]$, and $t x_n + (1-t) y_n \to t x + (1-t) y$ in norm, so $t x + (1-t) y \in \overline{C}^{\|\cdot\|}$). By the result just proved, $\overline{C}^{\|\cdot\|}$ is weakly closed. Since $C \subset \overline{C}^{\|\cdot\|}$ and $\overline{C}^{w}$ is the smallest weakly closed set containing $C$, we conclude $\overline{C}^{w} \subset \overline{C}^{\|\cdot\|}$.
Therefore $\overline{C}^{\|\cdot\|} = \overline{C}^{w}$.
[/step]