[proofplan]
We argue by contradiction. If every fibre of the regressive map is $U$-small, then the complement of each fibre inside $S$ is $U$-large. Normality closes $U$ under diagonal intersections, so there is a $U$-large set of points $\xi$ that avoid the $\alpha$-th fibre for every $\alpha < \xi$. Choosing a nonzero such point contradicts regressiveness, because $f(\xi)$ itself is one of the ordinals below $\xi$.
[/proofplan]
[step:Assume every fibre is $U$-small and form its $U$-large complement]
Suppose, toward a contradiction, that for every $\alpha < \kappa$,
\begin{align*}
f^{-1}(\{\alpha\}) \notin U.
\end{align*}
For each $\alpha < \kappa$, define
\begin{align*}
A_\alpha := S \setminus f^{-1}(\{\alpha\}).
\end{align*}
Since $U$ is an ultrafilter on $\kappa$ and $f^{-1}(\{\alpha\}) \notin U$, its complement $\kappa \setminus f^{-1}(\{\alpha\})$ belongs to $U$. Since $S \in U$, the finite-intersection property of filters gives
\begin{align*}
A_\alpha = S \cap \bigl(\kappa \setminus f^{-1}(\{\alpha\})\bigr) \in U.
\end{align*}
Thus $(A_\alpha)_{\alpha < \kappa}$ is a $\kappa$-sequence of members of $U$.
[guided]
We begin by negating the conclusion. If the theorem were false, then no single ordinal value would appear on a $U$-large set of points. Formally, for every $\alpha < \kappa$,
\begin{align*}
f^{-1}(\{\alpha\}) \notin U.
\end{align*}
To use normality, we want a family of sets that are themselves $U$-large. For each $\alpha < \kappa$, define the complement of the $\alpha$-th fibre inside $S$:
\begin{align*}
A_\alpha := S \setminus f^{-1}(\{\alpha\}).
\end{align*}
Because $U$ is a normal measure, it is in particular an ultrafilter on $\kappa$. Thus if a set is not in $U$, then its complement is in $U$. Applying that to $f^{-1}(\{\alpha\})$, we get $\kappa \setminus f^{-1}(\{\alpha\}) \in U$. Since $S \in U$ as well, closure under finite intersections yields
\begin{align*}
A_\alpha = S \cap \bigl(\kappa \setminus f^{-1}(\{\alpha\})\bigr) \in U.
\end{align*}
So each fibre-complement is $U$-large. That is exactly the input needed for the diagonal-intersection form of normality.
[/guided]
[/step]
[step:Take a diagonal intersection of the complements]
Define
\begin{align*}
D := \Delta_{\alpha < \kappa} A_\alpha = \{\xi < \kappa : \xi \in A_\alpha \text{ for every } \alpha < \xi\}.
\end{align*}
Since $U$ is normal, it is closed under diagonal intersections, and therefore $D \in U$. Because $U$ is nonprincipal, $\kappa \setminus \{0\} \in U$. Hence
\begin{align*}
D \cap (\kappa \setminus \{0\}) \in U.
\end{align*}
In particular, this set is nonempty, so choose $\xi \in D \cap (\kappa \setminus \{0\})$.
[guided]
Normality is used here in its diagonal-intersection form. The family $(A_\alpha)_{\alpha < \kappa}$ has already been shown to lie in $U$, so normality says that the set of points lying in every earlier member of the family is still $U$-large:
\begin{align*}
D := \Delta_{\alpha < \kappa} A_\alpha = \{\xi < \kappa : \xi \in A_\alpha \text{ for every } \alpha < \xi\} \in U.
\end{align*}
We also need a nonzero point, because regressiveness is required only at nonzero elements of $S$. Since a normal measure is nonprincipal, the singleton $\{0\}$ is not in $U$, so its complement $\kappa \setminus \{0\}$ is in $U$. The intersection of two sets in a filter is again in the filter, hence
\begin{align*}
D \cap (\kappa \setminus \{0\}) \in U.
\end{align*}
A $U$-large set cannot be empty, so we may choose a point $\xi$ in this intersection. By construction, $\xi \neq 0$ and $\xi$ belongs to every $A_\alpha$ with $\alpha < \xi$.
[/guided]
[/step]
[step:Read off the value of the regressive map at the chosen point]
Since $\xi \in D$ and $\xi \neq 0$, we have $\xi \in A_0$, because $0 < \xi$. By the definition of $A_0$, this implies $\xi \in S$, so $f(\xi)$ is defined. Because $f:S \to \kappa$ is regressive and $\xi$ is a nonzero element of $S$,
\begin{align*}
f(\xi) < \xi.
\end{align*}
Set $\beta := f(\xi)$. Then $\beta < \xi$, so the definition of $D$ yields $\xi \in A_\beta$. But $A_\beta = S \setminus f^{-1}(\{\beta\})$, so $\xi \notin f^{-1}(\{\beta\})$. This says $f(\xi) \neq \beta$, contradicting the definition of $\beta$.
Therefore the assumption that every fibre is outside $U$ is false. Hence there exists $\alpha < \kappa$ such that
\begin{align*}
f^{-1}(\{\alpha\}) \in U.
\end{align*}
[guided]
We now exploit the choice of $\xi$. Since $\xi \in D$, the defining property of the diagonal intersection says that $\xi$ lies in every $A_\alpha$ with $\alpha < \xi$. Because we also chose $\xi \neq 0$, the index $\alpha = 0$ is allowed, so $\xi \in A_0$. But $A_0 = S \setminus f^{-1}(\{0\})$, and being in $A_0$ already forces $\xi \in S$ because $A_0 \subseteq S$. Thus $f(\xi)$ is defined, and regressiveness applies:
\begin{align*}
f(\xi) < \xi.
\end{align*}
Now set
\begin{align*}
\beta := f(\xi).
\end{align*}
The inequality $f(\xi) < \xi$ means exactly that $\beta < \xi$, so the diagonal-intersection property applies again, now with the index $\beta$. Since $\beta < \xi$, we get $\xi \in A_\beta$. Unpacking the definition of $A_\beta$ gives
\begin{align*}
\xi \notin f^{-1}(\{\beta\}).
\end{align*}
But $\beta$ was defined to be $f(\xi)$, so $\xi \in f^{-1}(\{\beta\})$ by definition. This contradiction shows that our starting assumption was impossible.
Hence some fibre $f^{-1}(\{\alpha\})$ must belong to $U$, which is exactly the conclusion of the theorem.
[/guided]
[/step]