[proofplan]
The proof identifies the tangent bundle of $M$ with the pullback of the tangent bundle of $N$ along the diffeomorphism $f$. Naturality of the characteristic classes then shows that the [characteristic polynomial](/page/Characteristic%20Polynomial) on $TM$ is the pullback of the corresponding characteristic polynomial on $TN$. Finally, orientation preservation gives $f_*[M]_R=[N]_R$, and the naturality of the Kronecker pairing converts the pullback evaluation on $M$ into the original evaluation on $N$.
[/proofplan]
[step:Identify $TM$ with the pullback of $TN$ along the diffeomorphism]
Let $\pi_N:TN\to N$ be the tangent bundle projection, and let $f^*TN\to M$ denote the pullback vector bundle
\begin{align*}
f^*TN=\{(p,w)\in M\times TN:\pi_N(w)=f(p)\}.
\end{align*}
Define a smooth vector bundle map
\begin{align*}
\Phi:TM&\to f^*TN
\end{align*}
by
\begin{align*}
\Phi(v_p)=(p,df_p(v_p))
\end{align*}
for $p\in M$ and $v_p\in T_pM$. Since $f$ is a diffeomorphism, the differential
\begin{align*}
df_p:T_pM\to T_{f(p)}N
\end{align*}
is a linear isomorphism for every $p\in M$. Hence $\Phi$ is a smooth vector bundle isomorphism over $\operatorname{id}_M$.
Because characteristic classes are invariants of smooth vector bundle isomorphism, for every $i\in\{1,\dots,r\}$,
\begin{align*}
c_i(TM)=c_i(f^*TN).
\end{align*}
By the assumed naturality of $c_i$ applied to the smooth map $f:M\to N$ and the vector bundle $TN\to N$,
\begin{align*}
c_i(f^*TN)=f^*c_i(TN).
\end{align*}
Therefore
\begin{align*}
c_i(TM)=f^*c_i(TN)
\end{align*}
for every $i\in\{1,\dots,r\}$.
[/step]
[step:Pull back the whole characteristic polynomial]
Define
\begin{align*}
\alpha_N:=P(c_1(TN),\dots,c_r(TN))\in H^n(N;R)
\end{align*}
and
\begin{align*}
\alpha_M:=P(c_1(TM),\dots,c_r(TM))\in H^n(M;R).
\end{align*}
These classes lie in degree $n$ because $P$ is weighted homogeneous of cohomological degree $n$ and $c_i(TN)$ and $c_i(TM)$ lie in degree $d_i$.
Since pullback in cohomology is an $R$-algebra homomorphism,
\begin{align*}
f^*\alpha_N=P(f^*c_1(TN),\dots,f^*c_r(TN)).
\end{align*}
Using the identities $c_i(TM)=f^*c_i(TN)$ from the previous step, this becomes
\begin{align*}
f^*\alpha_N=P(c_1(TM),\dots,c_r(TM))=\alpha_M.
\end{align*}
[guided]
We now pass from the individual characteristic classes to the polynomial expression. Define
\begin{align*}
\alpha_N:=P(c_1(TN),\dots,c_r(TN))\in H^n(N;R)
\end{align*}
and
\begin{align*}
\alpha_M:=P(c_1(TM),\dots,c_r(TM))\in H^n(M;R).
\end{align*}
The degree condition matters here: if a monomial in $P$ is $X_1^{a_1}\cdots X_r^{a_r}$, then its cohomological degree after substituting characteristic classes is
\begin{align*}
a_1d_1+\cdots+a_rd_r.
\end{align*}
Because $P$ is weighted homogeneous of degree $n$, every monomial that appears contributes to $H^n$ after substitution.
The pullback map
\begin{align*}
f^*:H^*(N;R)\to H^*(M;R)
\end{align*}
is an $R$-algebra homomorphism, so it respects sums, products, and multiplication by coefficients in $R$. Therefore applying $f^*$ to the polynomial expression gives
\begin{align*}
f^*\alpha_N=P(f^*c_1(TN),\dots,f^*c_r(TN)).
\end{align*}
From the tangent bundle identification in the previous step and naturality of the characteristic classes, we have
\begin{align*}
f^*c_i(TN)=c_i(TM)
\end{align*}
for every $i\in\{1,\dots,r\}$. Substituting these identities into the polynomial gives
\begin{align*}
f^*\alpha_N=P(c_1(TM),\dots,c_r(TM))=\alpha_M.
\end{align*}
Thus the tangential characteristic class on $M$ is exactly the pullback of the corresponding tangential characteristic class on $N$.
[/guided]
[/step]
[step:Use orientation preservation to compare fundamental classes]
Because $f:M\to N$ is an orientation-preserving diffeomorphism of closed oriented smooth $n$-manifolds, the induced homology map
\begin{align*}
f_*:H_n(M;R)\to H_n(N;R)
\end{align*}
sends the fundamental class of $M$ to the fundamental class of $N$:
\begin{align*}
f_*[M]_R=[N]_R.
\end{align*}
For disconnected manifolds, this is understood componentwise with the given orientations.
[/step]
[step:Apply naturality of the Kronecker pairing]
The Kronecker pairing is natural with respect to pullback and pushforward: for every cohomology class $\beta\in H^n(N;R)$ and every homology class $z\in H_n(M;R)$,
\begin{align*}
\left\langle f^*\beta,z\right\rangle=\left\langle \beta,f_*z\right\rangle.
\end{align*}
Apply this identity with $\beta=\alpha_N$ and $z=[M]_R$. Using $\alpha_M=f^*\alpha_N$ and $f_*[M]_R=[N]_R$, we obtain
\begin{align*}
\left\langle \alpha_M,[M]_R\right\rangle=\left\langle f^*\alpha_N,[M]_R\right\rangle.
\end{align*}
Naturality of the pairing gives
\begin{align*}
\left\langle f^*\alpha_N,[M]_R\right\rangle=\left\langle \alpha_N,f_*[M]_R\right\rangle.
\end{align*}
Using preservation of the fundamental class,
\begin{align*}
\left\langle \alpha_N,f_*[M]_R\right\rangle=\left\langle \alpha_N,[N]_R\right\rangle.
\end{align*}
Substituting the definitions of $\alpha_M$ and $\alpha_N$ gives
\begin{align*}
\left\langle P(c_1(TM),\dots,c_r(TM)),[M]_R\right\rangle=\left\langle P(c_1(TN),\dots,c_r(TN)),[N]_R\right\rangle.
\end{align*}
This is the desired equality in $R$.
[/step]