[proofplan]
We first compare separated and spanning numbers for the Bowen metrics $d_n$. Then we compare spanning numbers with the open-cover definition of topological entropy. Lebesgue numbers give one direction, and covers by small metric balls give the other direction.
[/proofplan]
[step: Compare separated and spanning numbers]
Fix $n\ge 1$ and $\varepsilon>0$. Since $(X,d_n)$ is compact, every $(n,\varepsilon)$-separated set is finite and a maximal $(n,\varepsilon)$-separated set exists. Such a maximal set is necessarily $(n,\varepsilon)$-spanning; otherwise a point at $d_n$-distance at least $\varepsilon$ from every chosen point could be added. Hence
\begin{align*}
r_n(\varepsilon)\le s_n(\varepsilon).
\end{align*}
If $E$ is $(n,\varepsilon)$-separated and $F$ is $(n,\varepsilon/2)$-spanning, then each $x\in E$ may be assigned some $\pi(x)\in F$ with $d_n(x,\pi(x))<\varepsilon/2$. The map $\pi:E\to F$ is injective, because $\pi(x)=\pi(y)$ would imply
\begin{align*}
d_n(x,y)\le d_n(x,\pi(x))+d_n(\pi(y),y)<\varepsilon,
\end{align*}
contradicting $(n,\varepsilon)$-separation. Therefore
\begin{align*}
s_n(\varepsilon)\le r_n(\varepsilon/2).
\end{align*}
Thus for every $\varepsilon>0$,
\begin{align*}
r_n(\varepsilon)\le s_n(\varepsilon)\le r_n(\varepsilon/2).
\end{align*}
[guided]
For fixed $n\ge 1$ and $\varepsilon>0$, a maximal $(n,\varepsilon)$-separated set is $(n,\varepsilon)$-spanning, so $r_n(\varepsilon)\le s_n(\varepsilon)$. If $F$ is $(n,\varepsilon/2)$-spanning and $E$ is $(n,\varepsilon)$-separated, then choosing $\pi(x)\in F$ with $d_n(x,\pi(x))<\varepsilon/2$ defines an injective map $E\to F$, since $\pi(x)=\pi(y)$ gives $d_n(x,y)<\varepsilon$. Hence $s_n(\varepsilon)\le r_n(\varepsilon/2)$.
[/guided]
[/step]
[step: Deduce equality of the separated and spanning growth rates]
Define maps $S:(0,\infty)\to[0,\infty]$ and $R:(0,\infty)\to[0,\infty]$ by
\begin{align*}
S(\varepsilon)=\limsup_{n\to\infty}\frac{1}{n}\log s_n(\varepsilon),
\qquad
R(\varepsilon)=\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon).
\end{align*}
The inequalities above give
\begin{align*}
R(\varepsilon)\le S(\varepsilon)\le R(\varepsilon/2).
\end{align*}
Since $R(\varepsilon)$ and $S(\varepsilon)$ are nonincreasing as $\varepsilon$ increases, their limits as $\varepsilon\downarrow0$ exist in $[0,\infty]$. Taking $\varepsilon\downarrow0$ in
\begin{align*}
R(\varepsilon)\le S(\varepsilon)\le R(\varepsilon/2)
\end{align*}
shows
\begin{align*}
\lim_{\varepsilon\downarrow0}S(\varepsilon)
=
\lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
[guided]
We now pass from the finite-$n$ comparison to the exponential growth rates. These functions measure the asymptotic logarithmic sizes of optimal separated and spanning families at scale $\varepsilon$.
Set
\begin{align*}
S(\varepsilon)=\limsup_{n\to\infty}\frac{1}{n}\log s_n(\varepsilon)
\end{align*}
and
\begin{align*}
R(\varepsilon)=\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon).
\end{align*}
The pointwise inequalities
\begin{align*}
r_n(\varepsilon)\le s_n(\varepsilon)\le r_n(\varepsilon/2)
\end{align*}
imply
\begin{align*}
R(\varepsilon)\le S(\varepsilon)\le R(\varepsilon/2).
\end{align*}
Because these growth rates are monotone in $\varepsilon$, letting $\varepsilon\downarrow0$ gives
\begin{align*}
\lim_{\varepsilon\downarrow0}S(\varepsilon)
=
\lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
[/guided]
[/step]
[step: Bound cover entropy by spanning growth]
Let $\mathcal U$ be a finite open cover of $X$. For a finite open cover $\mathcal W$, let $N(\mathcal W)$ denote the least cardinality of a finite subcover of $\mathcal W$, and write
\begin{align*}
h_{\mathrm{top}}(T,\mathcal U)
=\lim_{n\to\infty}\frac{1}{n}\log N(\mathcal U_0^{n-1}),
\qquad
\mathcal U_0^{n-1}=\bigvee_{j=0}^{n-1}T^{-j}\mathcal U.
\end{align*}
This limit exists by the standard subadditivity theorem for open-cover entropy. Choose a Lebesgue number $\delta>0$ for $\mathcal U$. For every $n\ge 1$, let $F_n$ be an $(n,\delta/2)$-spanning set with cardinality $r_n(\delta/2)$. For each $x\in F_n$ and each $0\le j<n$, the $d$-ball $B(T^j x,\delta/2)$ has diameter less than $\delta$, so it is contained in some member $U_j(x)\in\mathcal U$. The Bowen ball
\begin{align*}
B_n(x,\delta/2)=\{y\in X:d_n(x,y)<\delta/2\}
\end{align*}
is therefore contained in
\begin{align*}
\bigcap_{j=0}^{n-1}T^{-j}U_j(x),
\end{align*}
which is an element of $\mathcal U_0^{n-1}=\bigvee_{j=0}^{n-1}T^{-j}\mathcal U$. Since the Bowen balls $B_n(x,\delta/2)$ with $x\in F_n$ cover $X$, we have
\begin{align*}
N(\mathcal U_0^{n-1})\le r_n(\delta/2).
\end{align*}
Consequently,
\begin{align*}
h_{\mathrm{top}}(T,\mathcal U)
=\lim_{n\to\infty}\frac{1}{n}\log N(\mathcal U_0^{n-1})
\le R(\delta/2)
\le \lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
Taking the supremum over all finite open covers gives
\begin{align*}
h_{\mathrm{top}}(T)\le \lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
[guided]
For a finite open cover $\mathcal U$, the notation in this step is
\begin{align*}
\mathcal U_0^{n-1}=\bigvee_{j=0}^{n-1}T^{-j}\mathcal U
\end{align*}
and
\begin{align*}
h_{\mathrm{top}}(T,\mathcal U)
=\lim_{n\to\infty}\frac{1}{n}\log N(\mathcal U_0^{n-1}),
\end{align*}
where $N(\mathcal U_0^{n-1})$ is the least cardinality of a finite subcover of $\mathcal U_0^{n-1}$. Choose a Lebesgue number $\delta>0$. If $F_n$ is $(n,\delta/2)$-spanning with
\begin{align*}
|F_n|=r_n(\delta/2),
\end{align*}
then each Bowen ball
\begin{align*}
B_n(x,\delta/2)=\{y\in X:d_n(x,y)<\delta/2\}
\end{align*}
is contained in one member of
\begin{align*}
\mathcal U_0^{n-1}=\bigvee_{j=0}^{n-1}T^{-j}\mathcal U.
\end{align*}
Indeed the corresponding atom has the form
\begin{align*}
\bigcap_{j=0}^{n-1}T^{-j}U_j(x).
\end{align*}
Therefore
\begin{align*}
N(\mathcal U_0^{n-1})\le r_n(\delta/2).
\end{align*}
After taking logarithms and passing to the entropy limit,
\begin{align*}
h_{\mathrm{top}}(T,\mathcal U)
=\lim_{n\to\infty}\frac{1}{n}\log N(\mathcal U_0^{n-1})
\le R(\delta/2)
\le \lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
Taking the supremum over all finite open covers $\mathcal U$ gives
\begin{align*}
h_{\mathrm{top}}(T)\le \lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
[/guided]
[/step]
[step: Bound spanning growth by cover entropy]
Fix $\varepsilon>0$. By compactness choose a finite open cover $\mathcal V$ by $d$-balls of radius $\varepsilon/2$. If $A$ is an element of
\begin{align*}
\mathcal V_0^{n-1}=\bigvee_{j=0}^{n-1}T^{-j}\mathcal V,
\end{align*}
then for every $x,y\in A$ and every $0\le j<n$, the points $T^j x$ and $T^j y$ lie in the same ball of radius $\varepsilon/2$, so
\begin{align*}
d(T^j x,T^j y)<\varepsilon.
\end{align*}
Thus $\operatorname{diam}_{d_n}(A)<\varepsilon$. Choose one point from each nonempty member of a minimal subcover of $\mathcal V_0^{n-1}$. These chosen points form an $(n,\varepsilon)$-spanning set, so
\begin{align*}
r_n(\varepsilon)\le N(\mathcal V_0^{n-1}).
\end{align*}
Taking logarithmic limsups gives
\begin{align*}
R(\varepsilon)\le h_{\mathrm{top}}(T,\mathcal V)\le h_{\mathrm{top}}(T).
\end{align*}
Letting $\varepsilon\downarrow0$ yields
\begin{align*}
\lim_{\varepsilon\downarrow0}R(\varepsilon)\le h_{\mathrm{top}}(T).
\end{align*}
[guided]
For fixed $\varepsilon>0$, choose a finite cover $\mathcal V$ of $X$ by $d$-balls of radius $\varepsilon/2$. Each element of $\mathcal V_0^{n-1}$ has $d_n$-diameter less than $\varepsilon$. Selecting one point from each set in a minimal subcover of $\mathcal V_0^{n-1}$ produces an $(n,\varepsilon)$-spanning set, so $r_n(\varepsilon)\le N(\mathcal V_0^{n-1})$. Therefore $R(\varepsilon)\le h_{\mathrm{top}}(T,\mathcal V)\le h_{\mathrm{top}}(T)$, and $\lim_{\varepsilon\downarrow0}R(\varepsilon)\le h_{\mathrm{top}}(T)$.
[/guided]
[/step]
[step: Combine the separated, spanning, and cover formulas]
The two cover comparisons give
\begin{align*}
h_{\mathrm{top}}(T)=\lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
The separated-spanning comparison gives
\begin{align*}
\lim_{\varepsilon\downarrow0}S(\varepsilon)=\lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
Therefore
\begin{align*}
h_{\mathrm{top}}(T)= \lim_{\varepsilon \downarrow 0}\limsup_{n\to\infty}\frac{1}{n}\log s_n(\varepsilon)
\end{align*}
and
\begin{align*}
h_{\mathrm{top}}(T)= \lim_{\varepsilon \downarrow 0}\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon).
\end{align*}
[guided]
It remains only to combine the two inequalities proved above with the separated-spanning comparison. This identifies the common metric growth rate and then substitutes the definitions of $S(\varepsilon)$ and $R(\varepsilon)$.
The two cover estimates give both inequalities
\begin{align*}
h_{\mathrm{top}}(T)\le \lim_{\varepsilon\downarrow0}R(\varepsilon)
\end{align*}
and
\begin{align*}
\lim_{\varepsilon\downarrow0}R(\varepsilon)\le h_{\mathrm{top}}(T),
\end{align*}
so
\begin{align*}
h_{\mathrm{top}}(T)=\lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
The separated-spanning comparison gives
\begin{align*}
\lim_{\varepsilon\downarrow0}S(\varepsilon)=\lim_{\varepsilon\downarrow0}R(\varepsilon).
\end{align*}
Therefore
\begin{align*}
h_{\mathrm{top}}(T)= \lim_{\varepsilon \downarrow 0}\limsup_{n\to\infty}\frac{1}{n}\log s_n(\varepsilon)
\end{align*}
and also
\begin{align*}
h_{\mathrm{top}}(T)= \lim_{\varepsilon \downarrow 0}\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon).
\end{align*}
[/guided]
[/step]