[step:Compare the terminal flow value with the certifying cut capacity]
For an $s$-$t$ cut $(S,T)$, define its capacity by
\begin{align*}
c(S,T):=\sum_{\{(u,v)\in E:u\in S,\ v\in T\}} c(u,v).
\end{align*}
Summing the conservation law over all vertices in $S\setminus\{s\}$ cancels all contributions from edges with both endpoints in $S$ and gives
\begin{align*}
|f| = \sum_{\{(u,v)\in E:u\in S,\ v\in T\}} f(u,v) - \sum_{\{(u,v)\in E:u\in T,\ v\in S\}} f(u,v).
\end{align*}
By the previous step, every edge from $S$ to $T$ is saturated and every edge from $T$ to $S$ carries zero flow. Therefore
\begin{align*}
|f| = \sum_{\{(u,v)\in E:u\in S,\ v\in T\}} c(u,v) = c(S,T).
\end{align*}
Now let $g:E \to \mathbb{R}_{\geq 0}$ be any feasible $s$-$t$ flow. The same cut identity gives
\begin{align*}
|g| = \sum_{\{(u,v)\in E:u\in S,\ v\in T\}} g(u,v) - \sum_{\{(u,v)\in E:u\in T,\ v\in S\}} g(u,v) \leq \sum_{\{(u,v)\in E:u\in S,\ v\in T\}} g(u,v) \leq \sum_{\{(u,v)\in E:u\in S,\ v\in T\}} c(u,v) = c(S,T).
\end{align*}
Since $|f|=c(S,T)$, every feasible flow $g$ satisfies $|g|\leq |f|$. Thus the terminal flow $f$ is a maximum flow. The induction step already proved that $f$ is integer-valued, so the final flow is an integer-valued maximum $s$-$t$ flow.
[/step]