[proofplan]
The proof has two independent parts. For the commutation identity, we exploit linearity and continuity of $\varphi$ to interchange $\varphi$ with the limit defining the Riemann integral; the result is the scalar Riemann integral of $\varphi \circ f$, which equals the scalar Lebesgue integral because $\varphi \circ f$ is continuous on $[a, b]$. For the norm bound, we apply $\varphi$ to the vector integral, use the commutation identity to rewrite it as a scalar integral, bound that scalar integral by the standard scalar inequality, and finally select $\varphi$ to be a [Hahn-Banach](/theorems/2629) support functional at $I := \int_a^b f\, d\mathcal{L}^1$, which converts the bound on $|\varphi(I)|$ into a bound on $\|I\|$.
[/proofplan]
[step:Pass $\varphi$ through the Riemann-sum limit defining the vector integral]
Set
\begin{align*}
I := \int_a^b f(t)\, d\mathcal{L}^1(t) = \lim_{n \to \infty} S_n, \qquad S_n := \sum_{j=1}^{k_n} f(t_j^{(n)})\, (t_j^{(n)} - t_{j-1}^{(n)}),
\end{align*}
where the partitions $a = t_0^{(n)} < \cdots < t_{k_n}^{(n)} = b$ have mesh $\delta_n := \max_j (t_j^{(n)} - t_{j-1}^{(n)}) \to 0$. The limit is taken in the norm topology of $X$, so $\|S_n - I\|_X \to 0$.
The functional $\varphi : X \to \mathbb{F}$ (with $\mathbb{F} = \mathbb{R}$ or $\mathbb{C}$) is linear and continuous on $X$. Linearity gives
\begin{align*}
\varphi(S_n) = \varphi\!\left(\sum_{j=1}^{k_n} f(t_j^{(n)})\, (t_j^{(n)} - t_{j-1}^{(n)})\right) = \sum_{j=1}^{k_n} \varphi(f(t_j^{(n)}))\, (t_j^{(n)} - t_{j-1}^{(n)}).
\end{align*}
Continuity of $\varphi$ at $I$ — concretely, $|\varphi(S_n) - \varphi(I)| \le \|\varphi\|_{X^*}\, \|S_n - I\|_X$ — gives $\varphi(S_n) \to \varphi(I)$ in $\mathbb{F}$.
Now consider the scalar function $g := \varphi \circ f : [a, b] \to \mathbb{F}$, $t \mapsto \varphi(f(t))$. The composition of the continuous map $f$ with the continuous functional $\varphi$ is continuous, so $g$ is continuous on $[a, b]$, hence Riemann-integrable. The Riemann sum of $g$ over the partition $(t_j^{(n)})$ with right endpoints $t_j^{(n)}$ is exactly $\varphi(S_n)$. As $\delta_n \to 0$, this Riemann sum converges to the scalar Riemann integral of $g$, which agrees with the Lebesgue integral $\int_a^b g\, d\mathcal{L}^1$ because $g$ is continuous on the compact interval $[a, b]$. Therefore
\begin{align*}
\varphi(I) = \lim_{n \to \infty} \varphi(S_n) = \int_a^b \varphi(f(t))\, d\mathcal{L}^1(t),
\end{align*}
which is the claimed identity.
[guided]
We want to show $\varphi(\int_a^b f\, d\mathcal{L}^1) = \int_a^b \varphi(f)\, d\mathcal{L}^1$. Both sides are limits of Riemann-type sums, so the natural strategy is to compute both as limits of the **same** sequence of Riemann sums and identify them.
**Set up the vector Riemann sums.** Choose any sequence of partitions $a = t_0^{(n)} < t_1^{(n)} < \cdots < t_{k_n}^{(n)} = b$ with mesh $\delta_n := \max_j (t_j^{(n)} - t_{j-1}^{(n)}) \to 0$. By the definition of the vector-valued integral,
\begin{align*}
S_n := \sum_{j=1}^{k_n} f(t_j^{(n)})\, (t_j^{(n)} - t_{j-1}^{(n)}) \xrightarrow{\|\cdot\|_X} I := \int_a^b f(t)\, d\mathcal{L}^1(t).
\end{align*}
Why does this limit exist? Because $f$ is continuous on the compact interval $[a, b]$, hence uniformly continuous; standard arguments then show the Riemann sums form a Cauchy sequence in $X$, and Banach completeness of $X$ provides the limit. (We do not need to redo this; we are taking $I$ as defined.)
**Pass $\varphi$ through the sum.** $\varphi$ is linear, so
\begin{align*}
\varphi(S_n) = \sum_{j=1}^{k_n} \varphi(f(t_j^{(n)}))\, (t_j^{(n)} - t_{j-1}^{(n)}).
\end{align*}
This is now a scalar Riemann sum — exactly the right endpoint Riemann sum for $g := \varphi \circ f$ on the partition $(t_j^{(n)})$.
**Pass $\varphi$ through the limit.** $\varphi$ is continuous (bounded), so $\|S_n - I\|_X \to 0$ implies
\begin{align*}
|\varphi(S_n) - \varphi(I)| = |\varphi(S_n - I)| \le \|\varphi\|_{X^*}\, \|S_n - I\|_X \to 0.
\end{align*}
This is the **only** place continuity of $\varphi$ enters; without it, the limit could be wrong.
**Identify the scalar limit.** The composition $g = \varphi \circ f$ is continuous on $[a, b]$ (composition of continuous maps), hence Riemann-integrable. So $\varphi(S_n)$ — the right-endpoint Riemann sum for $g$ — converges to the Riemann integral of $g$, which equals $\int_a^b g\, d\mathcal{L}^1$ for continuous $g$ on a bounded interval. Thus both
\begin{align*}
\varphi(I) = \lim_n \varphi(S_n) = \int_a^b \varphi(f(t))\, d\mathcal{L}^1(t),
\end{align*}
which is what we wanted to prove. The two limits are computed along the same sequence of partitions, which is what makes the identification work.
[/guided]
[/step]
[step:Bound $|\varphi(I)|$ by the scalar integral of $\|f(t)\|$]
For any $\varphi \in X^*$, the previous step gives $\varphi(I) = \int_a^b \varphi(f(t))\, d\mathcal{L}^1(t)$. The integrand $t \mapsto \varphi(f(t))$ is continuous on $[a, b]$, hence so is $t \mapsto |\varphi(f(t))|$, and the standard scalar triangle inequality for the Riemann/Lebesgue integral on $[a, b]$ gives
\begin{align*}
|\varphi(I)| = \left|\int_a^b \varphi(f(t))\, d\mathcal{L}^1(t)\right| \le \int_a^b |\varphi(f(t))|\, d\mathcal{L}^1(t).
\end{align*}
The boundedness of $\varphi$ gives $|\varphi(f(t))| \le \|\varphi\|_{X^*}\, \|f(t)\|_X$ pointwise. The function $t \mapsto \|f(t)\|_X$ is continuous on $[a, b]$ (composition of $f$ with the continuous norm), hence integrable, and monotonicity of the scalar integral yields
\begin{align*}
|\varphi(I)| \le \|\varphi\|_{X^*}\, \int_a^b \|f(t)\|_X\, d\mathcal{L}^1(t). \tag{$\dagger$}
\end{align*}
[/step]
[step:Choose a support functional at $I$ to upgrade the scalar bound to the norm bound]
If $I = 0$, the norm bound $\|I\|_X = 0 \le \int_a^b \|f(t)\|_X\, d\mathcal{L}^1(t)$ is immediate (the right-hand side is non-negative). Assume $I \neq 0$. By the [Hahn-Banach Theorem (Normed Space Version)](/theorems/2629)(ii), applied to $X$ and the non-zero point $I \in X$, there exists a support functional $\varphi_0 \in X^*$ with
\begin{align*}
\|\varphi_0\|_{X^*} = 1 \qquad \text{and} \qquad \varphi_0(I) = \|I\|_X.
\end{align*}
We have verified the only hypothesis of theorem 2629(ii): the point $I$ is non-zero in the normed space $X$.
Substituting $\varphi = \varphi_0$ into ($\dagger$):
\begin{align*}
\|I\|_X = |\varphi_0(I)| \le \|\varphi_0\|_{X^*}\, \int_a^b \|f(t)\|_X\, d\mathcal{L}^1(t) = \int_a^b \|f(t)\|_X\, d\mathcal{L}^1(t),
\end{align*}
which is the claimed norm bound.
[guided]
We have already shown $|\varphi(I)| \le \|\varphi\|_{X^*}\, \int_a^b \|f(t)\|\, d\mathcal{L}^1(t)$ for **every** $\varphi \in X^*$. The question is: how do we extract a bound on $\|I\|_X$ from a family of bounds on $|\varphi(I)|$?
The dual characterisation of the norm answers this. For any $y \in X$,
\begin{align*}
\|y\|_X = \sup\{|\varphi(y)| : \varphi \in X^*,\ \|\varphi\|_{X^*} \le 1\},
\end{align*}
and this supremum is **attained**: by the [Hahn-Banach Theorem (Normed Space Version)](/theorems/2629)(ii), if $y \neq 0$ there is a support functional $\varphi_0$ with $\|\varphi_0\| = 1$ and $\varphi_0(y) = \|y\|$. Why does this hold? Theorem 2629(ii) requires only $y \neq 0$ in a normed space — both conditions hold for $y = I$ in the case $I \neq 0$. (When $I = 0$, the bound $0 \le \int_a^b \|f\|\, d\mathcal{L}^1$ is automatic and no Hahn-Banach is needed.)
**Apply the support functional.** Take $\varphi = \varphi_0$ in ($\dagger$):
\begin{align*}
\|I\|_X = |\varphi_0(I)| \le \|\varphi_0\|_{X^*}\, \int_a^b \|f(t)\|\, d\mathcal{L}^1(t) = 1 \cdot \int_a^b \|f(t)\|\, d\mathcal{L}^1(t).
\end{align*}
The strategy in the abstract: a Banach-space inequality $\|I\| \le M$ is equivalent to the family of scalar inequalities $|\varphi(I)| \le M\|\varphi\|$ for all $\varphi \in X^*$ (the implication $\Rightarrow$ is the definition of the operator norm; the implication $\Leftarrow$ is exactly the Hahn-Banach trick used here). This template — bound the scalar quantity $\varphi(I)$ for all $\varphi$, then attain the supremum — is the standard reduction-to-scalar technique that recurs whenever an inequality must be proved for vector-valued integrals.
[/guided]
[/step]