[proofplan]
We prove the identity by comparing coordinates of the two sequences $\iota(f(x))$ and $\sigma(\iota(x))$. For a fixed point $x \in X$ and a fixed index $n \in \mathbb{Z}_{\ge 0}$, the $n$-th coordinate of $\iota(f(x))$ records the partition element containing $f^n(f(x)) = f^{n+1}(x)$. The $n$-th coordinate of $\sigma(\iota(x))$ is, by definition of the left shift, the $(n+1)$-st coordinate of $\iota(x)$, which records the same partition element. Since all coordinates agree for every $x$, the two maps are equal.
[/proofplan]
custom_env
admin
[step:Compute the coordinates of $\iota(f(x))$]Fix $x \in X$ and $n \in \mathbb{Z}_{\ge 0}$. Let $b_n(x) \in A$ denote the $n$-th coordinate of $\iota(f(x))$. By the definition of the itinerary map, $b_n(x)$ is the unique symbol in $A$ satisfying
\begin{align*}
f^n(f(x)) \in P_{b_n(x)}.
\end{align*}
Using the recursive definition $f^{n+1} = f^n \circ f$ on points, this condition is equivalent to
\begin{align*}
f^{n+1}(x) \in P_{b_n(x)}.
\end{align*}
Thus the $n$-th coordinate of $\iota(f(x))$ is the unique symbol whose partition element contains $f^{n+1}(x)$.[/step]
custom_env
admin
[guided]Fix $x \in X$ and fix an index $n \in \mathbb{Z}_{\ge 0}$. We want to understand the sequence $\iota(f(x))$ coordinate by coordinate. Define $b_n(x) \in A$ to be the $n$-th coordinate of $\iota(f(x))$. Since $\iota$ is the itinerary map, this means precisely that $b_n(x)$ is the unique symbol for which the $n$-th iterate of the starting point $f(x)$ lies in the corresponding partition element:
\begin{align*}
f^n(f(x)) \in P_{b_n(x)}.
\end{align*}
The point of starting at $f(x)$ is that its $n$-th iterate under $f$ is the same point as the $(n+1)$-st iterate of the original point $x$. Indeed, by the definition of iterates,
\begin{align*}
f^n(f(x)) = f^{n+1}(x).
\end{align*}
Therefore the condition defining $b_n(x)$ becomes
\begin{align*}
f^{n+1}(x) \in P_{b_n(x)}.
\end{align*}
So the $n$-th coordinate of $\iota(f(x))$ records exactly the symbol of the partition element containing $f^{n+1}(x)$.[/guided]
custom_env
admin
[step:Compute the coordinates of $\sigma(\iota(x))$]
Let $c_n(x) \in A$ denote the $n$-th coordinate of $\sigma(\iota(x))$. By the definition of the left shift,
\begin{align*}
c_n(x) = (\iota(x))_{n+1}.
\end{align*}
By the definition of the itinerary map, $(\iota(x))_{n+1}$ is the unique symbol in $A$ satisfying
\begin{align*}
f^{n+1}(x) \in P_{(\iota(x))_{n+1}}.
\end{align*}
Hence the $n$-th coordinate of $\sigma(\iota(x))$ is also the unique symbol whose partition element contains $f^{n+1}(x)$.
[/step]
custom_env
admin
[step:Use uniqueness of partition symbols to identify the two sequences]
The symbols $b_n(x)$ and $c_n(x)$ both belong to $A$ and both satisfy the defining membership condition
\begin{align*}
f^{n+1}(x) \in P_{b_n(x)}
\end{align*}
and
\begin{align*}
f^{n+1}(x) \in P_{c_n(x)}.
\end{align*}
Since $\mathcal{P} = \{P_a : a \in A\}$ is a partition and the itinerary map is well-defined, the symbol associated to the point $f^{n+1}(x)$ is unique. Therefore
\begin{align*}
b_n(x) = c_n(x).
\end{align*}
Because $n \in \mathbb{Z}_{\ge 0}$ was arbitrary, the sequences $\iota(f(x))$ and $\sigma(\iota(x))$ have the same coordinate at every index, so
\begin{align*}
\iota(f(x)) = \sigma(\iota(x)).
\end{align*}
Because $x \in X$ was arbitrary, this proves
\begin{align*}
\iota \circ f = \sigma \circ \iota.
\end{align*}
[/step]