[guided]We now combine the three ingredients: the exact cylinder factorisation, the intersection-approximation error, and the product-approximation error. Recall that the cylinders $C_0,\ldots,C_{k-1}$ were chosen so that $\mu(A_j\triangle C_j)<\varepsilon/(3k)$ for every $j$.
Apply the cylinder-factorisation step to these cylinders. There exists $R\in\mathbb{N}$ — depending on the cylinder windows $W_0,\ldots,W_{k-1}$ and hence on $\varepsilon$ — such that whenever
\begin{align*}
0=n_0<n_1<\cdots<n_{k-1}\quad\text{and}\quad\min_{1\leq j\leq k-1}(n_j-n_{j-1})\geq R,
\end{align*}
the exact identity
\begin{align*}
I_C(n_0,\ldots,n_{k-1})
=
\prod_{j=0}^{k-1}\mu(C_j)
\end{align*}
holds. For such shifts, the triangle inequality bounds the target error by two pieces that we have already estimated:
\begin{align*}
\left|
I_A(n_0,\ldots,n_{k-1})
-
\prod_{j=0}^{k-1}\mu(A_j)
\right|
&\leq
\left|I_A(n_0,\ldots,n_{k-1})-I_C(n_0,\ldots,n_{k-1})\right|\\
&\quad+
\left|
I_C(n_0,\ldots,n_{k-1})-\prod_{j=0}^{k-1}\mu(C_j)
\right|\\
&\quad+
\left|
\prod_{j=0}^{k-1}\mu(C_j)
-
\prod_{j=0}^{k-1}\mu(A_j)
\right|.
\end{align*}
The middle term vanishes by the cylinder factorisation. The first and third terms are each bounded by $\varepsilon/3$ by the previous two steps. Hence
\begin{align*}
\left|
I_A(n_0,\ldots,n_{k-1})
-
\prod_{j=0}^{k-1}\mu(A_j)
\right|
<
\frac{\varepsilon}{3}+0+\frac{\varepsilon}{3}
=
\frac{2\varepsilon}{3}
<
\varepsilon.
\end{align*}
What does this give us as a limit statement? Fix any sequence of tuples
\begin{align*}
0=n_0^{(r)} < n_1^{(r)} < \cdots < n_{k-1}^{(r)}
\end{align*}
with $\min_{1\leq j\leq k-1}(n_j^{(r)}-n_{j-1}^{(r)})\to\infty$ as $r\to\infty$. For our fixed $\varepsilon$, the constant $R=R(\varepsilon)$ above is finite, so the separation $\min_{1\leq j\leq k-1}(n_j^{(r)}-n_{j-1}^{(r)})$ is eventually at least $R(\varepsilon)$. From that point on,
\begin{align*}
\left|
\mu\left(\bigcap_{j=0}^{k-1}\sigma^{-n_j^{(r)}}A_j\right)
-
\prod_{j=0}^{k-1}\mu(A_j)
\right|
<\varepsilon.
\end{align*}
Since $\varepsilon>0$ was arbitrary, this proves
\begin{align*}
\mu\left(\bigcap_{j=0}^{k-1}\sigma^{-n_j^{(r)}}A_j\right)
\to
\prod_{j=0}^{k-1}\mu(A_j)
\end{align*}
as $r\to\infty$. Since $k\geq 2$ and $A_0,\ldots,A_{k-1}\in\mathcal{B}$ were arbitrary, the Bernoulli shift $(X,\mathcal{B},\mu,\sigma)$ is mixing of all orders.[/guided]