[proofplan]
We express $\eta_j$ in terms of $(\varepsilon_i)$ by writing $\eta_j = \sum_i S_{ij}\,\varepsilon_i$ for unknown coefficients, then determine $S$ by evaluating both sides at $f_k$ and using the Kronecker condition $\eta_j(f_k) = \delta_{jk}$ together with the change-of-basis relation.
[/proofplan]
[step:Set up the unknown expansion coefficients]
Let $(e_i)$ and $(f_i)$ be bases for $V$ with $f_i = \sum_{k=1}^n P_{ki}\,e_k$.
Let $(\varepsilon_i)$ and $(\eta_i)$ be the corresponding dual bases.
Write $\eta_j = \sum_{i=1}^n S_{ij}\,\varepsilon_i$ for unknown scalars $S_{ij} \in \mathbb{F}$.
[/step]
[step:Determine the coefficients by evaluating at the new basis vectors]
Evaluate $\eta_j = \sum_i S_{ij}\,\varepsilon_i$ at $f_k$:
\begin{align*}
\delta_{jk} = \eta_j(f_k) = \sum_{i=1}^n S_{ij}\,\varepsilon_i(f_k).
\end{align*}
Now compute $\varepsilon_i(f_k) = \varepsilon_i\bigl(\sum_{m=1}^n P_{mk}\,e_m\bigr) = P_{ik}$ by linearity and the Kronecker condition.
Substituting:
\begin{align*}
\delta_{jk} = \sum_{i=1}^n S_{ij}\,P_{ik}.
\end{align*}
In matrix notation, with $(S^\top P)_{jk} = \sum_i S_{ij}\,P_{ik}$, this reads $S^\top P = I$.
Therefore $S^\top = P^{-1}$, giving $S = (P^{-1})^\top$.
[guided]
Let us unpack the matrix identity.
The entry $\delta_{jk} = \sum_i S_{ij} P_{ik}$ can be read as the $(j, k)$-entry of the matrix product $S^\top P$, since $(S^\top)_{ji} = S_{ij}$.
Setting $S^\top P = I$ and solving: $S^\top = P^{-1}$, hence $S = (P^{-1})^\top$.
This means $S_{ij} = ((P^{-1})^\top)_{ij} = (P^{-1})_{ji}$.
Substituting back: $\eta_j = \sum_{i=1}^n (P^{-1})_{ji}\,\varepsilon_i$, confirming the statement.
The contravariancy is visible: the primal basis changes by $P$ (i.e., $f = Pe$ in column notation), while the dual basis changes by $(P^{-1})^\top$.
This is why dual vectors are called "covariant" in physics -- they transform by the inverse transpose.
[/guided]
[/step]