[proofplan]
We first express the value of the flow as the net amount of flow crossing any $s$-$t$ cut. This follows by summing the flow balance equations over all vertices in the cut and observing that edges internal to the cut cancel. Once this cut identity is obtained, the incoming cut-flow term is nonnegative, so dropping it gives an upper bound by the outgoing cut flow; capacity feasibility then bounds that outgoing flow by the cut capacity.
[/proofplan]
[step:Express the flow value as the net flow crossing the cut]
Define the net outflow function $b_f: V \to \mathbb{R}$ by declaring, for each $v \in V$,
\begin{align*}
b_f(v) = \sum_{vw \in E} f(vw) - \sum_{uv \in E} f(uv).
\end{align*}
By the definition of $|f|$, we have $b_f(s)=|f|$. Since $f$ is feasible, $b_f(v)=0$ for every $v \in V \setminus \{s,t\}$.
Because $s \in S$ and $t \notin S$, every vertex of $S \setminus \{s\}$ lies in $V \setminus \{s,t\}$. Hence
\begin{align*}
\sum_{v \in S} b_f(v) = b_f(s) = |f|.
\end{align*}
Expanding the definition of $b_f$ gives
\begin{align*}
\sum_{v \in S} b_f(v) = \sum_{v \in S}\left(\sum_{vw \in E} f(vw) - \sum_{uv \in E} f(uv)\right).
\end{align*}
Every edge $uv \in E$ with $u \in S$ and $v \in S$ appears once with sign $+$, from the outgoing sum at $u$, and once with sign $-$, from the incoming sum at $v$, so its total contribution is $0$. The only positive surviving terms are the edges in $\delta^+(S)$, and the only negative surviving terms are the edges in $\delta^-(S)$. Therefore
\begin{align*}
|f| = \sum_{uv \in \delta^+(S)} f(uv) - \sum_{uv \in \delta^-(S)} f(uv).
\end{align*}
[guided]
The purpose of this step is to justify the identity that turns a global quantity, the value of the flow, into a cut quantity. Define the net outflow function $b_f: V \to \mathbb{R}$ by declaring, for each $v \in V$,
\begin{align*}
b_f(v) = \sum_{vw \in E} f(vw) - \sum_{uv \in E} f(uv).
\end{align*}
Thus $b_f(v)$ measures the total flow leaving $v$ minus the total flow entering $v$. By the definition of the value of the flow, $b_f(s)$ is the outgoing flow from $s$ minus the incoming flow into $s$. Hence
\begin{align*}
b_f(s)=|f|.
\end{align*}
For every $v \in V \setminus \{s,t\}$, feasibility gives flow conservation:
\begin{align*}
\sum_{uv \in E} f(uv) = \sum_{vw \in E} f(vw),
\end{align*}
so $b_f(v)=0$.
Now sum $b_f$ over the cut side $S$. Since $s \in S$ and $t \notin S$, the set $S$ contains the source but not the sink. Therefore every vertex of $S$ other than $s$ is an intermediate vertex, and its net outflow is $0$. Hence
\begin{align*}
\sum_{v \in S} b_f(v) = b_f(s) = |f|.
\end{align*}
We now expand the left-hand side:
\begin{align*}
\sum_{v \in S} b_f(v) = \sum_{v \in S}\left(\sum_{vw \in E} f(vw) - \sum_{uv \in E} f(uv)\right).
\end{align*}
Consider how an edge contributes to this sum. If both endpoints of an edge $uv$ lie in $S$, then $f(uv)$ appears once positively in the outgoing sum for $u$ and once negatively in the incoming sum for $v$, so those two contributions cancel. If $uv$ leaves $S$, meaning $uv \in \delta^+(S)$, then it appears only as a positive outgoing term. If $uv$ enters $S$, meaning $uv \in \delta^-(S)$, then it appears only as a negative incoming term. Edges with both endpoints outside $S$ do not appear at all. Thus
\begin{align*}
\sum_{v \in S} b_f(v) = \sum_{uv \in \delta^+(S)} f(uv) - \sum_{uv \in \delta^-(S)} f(uv).
\end{align*}
Combining this with $\sum_{v \in S} b_f(v)=|f|$ gives
\begin{align*}
|f| = \sum_{uv \in \delta^+(S)} f(uv) - \sum_{uv \in \delta^-(S)} f(uv).
\end{align*}
[/guided]
[/step]
[step:Discard the nonnegative incoming cut flow]
Since $f:E \to [0,\infty)$, every term $f(uv)$ with $uv \in \delta^-(S)$ is nonnegative. Therefore
\begin{align*}
\sum_{uv \in \delta^-(S)} f(uv) \geq 0.
\end{align*}
Using the cut identity from the previous step, we have
\begin{align*}
|f| = \sum_{uv \in \delta^+(S)} f(uv) - \sum_{uv \in \delta^-(S)} f(uv).
\end{align*}
Since $\sum_{uv \in \delta^-(S)} f(uv) \geq 0$, subtracting this nonnegative quantity gives
\begin{align*}
|f| \leq \sum_{uv \in \delta^+(S)} f(uv).
\end{align*}
[/step]
[step:Bound the outgoing cut flow by the cut capacity]
For every edge $uv \in \delta^+(S)$, feasibility gives
\begin{align*}
f(uv) \leq c(uv).
\end{align*}
Summing this inequality over the finite set $\delta^+(S)$ yields
\begin{align*}
\sum_{uv \in \delta^+(S)} f(uv)
\leq
\sum_{uv \in \delta^+(S)} c(uv)
=
c(S).
\end{align*}
Combining this estimate with the previous step gives
\begin{align*}
|f| \leq c(S).
\end{align*}
This is the desired weak max-flow min-cut inequality.
[/step]