[proofplan]
The proof is a direct computation from the coordinate expansions. We first evaluate the functional $f$ on the basis vectors $e_i$ by substituting its expansion in the [dual basis](/theorems/414). The defining identity $e_j^*(e_i)=\delta_{ji}$ collapses the resulting sum, and linearity of $f$ then gives the desired pairing formula.
[/proofplan]
[step:Evaluate the functional on each basis vector]
For each $i\in\{1,\ldots,n\}$, the expansion of $f$ in the basis $\mathcal B^*$ gives
\begin{align*}
f(e_i)=\left(\sum_{j=1}^n b_j e_j^*\right)(e_i).
\end{align*}
Since evaluation at $e_i$ is linear on $V^*$, we obtain
\begin{align*}
f(e_i)=\sum_{j=1}^n b_j e_j^*(e_i).
\end{align*}
By the defining property of the dual basis, $e_j^*(e_i)=\delta_{ji}$, where $\delta_{ji}=1$ if $j=i$ and $\delta_{ji}=0$ otherwise. Hence
\begin{align*}
f(e_i)=\sum_{j=1}^n b_j\delta_{ji}=b_i.
\end{align*}
[guided]
Fix an index $i\in\{1,\ldots,n\}$. We want to know the scalar $f(e_i)$, because the vector $v$ is written as a linear combination of the basis vectors $e_i$. The functional $f$ is given in dual coordinates:
\begin{align*}
f=\sum_{j=1}^n b_j e_j^*.
\end{align*}
Evaluating both sides at the vector $e_i$ gives
\begin{align*}
f(e_i)=\left(\sum_{j=1}^n b_j e_j^*\right)(e_i).
\end{align*}
The right-hand side is evaluated in the [vector space](/page/Vector%20Space) $V^*$ of linear functionals. Since scalar multiplication and addition in $V^*$ are defined pointwise, evaluation at $e_i$ distributes over the finite sum:
\begin{align*}
f(e_i)=\sum_{j=1}^n b_j e_j^*(e_i).
\end{align*}
Now we use exactly what it means for $\mathcal B^*=(e_1^*,\ldots,e_n^*)$ to be the dual basis of $\mathcal B=(e_1,\ldots,e_n)$. Its defining property is
\begin{align*}
e_j^*(e_i)=\delta_{ji}.
\end{align*}
Here $\delta_{ji}$ denotes the Kronecker delta: it equals $1$ when $j=i$ and equals $0$ when $j\ne i$. Therefore every term in the sum vanishes except the term with $j=i$, and that surviving term is $b_i$:
\begin{align*}
f(e_i)=\sum_{j=1}^n b_j\delta_{ji}=b_i.
\end{align*}
Thus, for every basis vector $e_i$, the scalar $f(e_i)$ is precisely the $i$-th dual coordinate $b_i$ of $f$.
[/guided]
[/step]
[step:Apply linearity to the coordinate expansion of $v$]
Using the coordinate expansion of $v$ and the linearity of the functional $f:V\to k$, we have
\begin{align*}
f(v)=f\left(\sum_{i=1}^n a_i e_i\right)=\sum_{i=1}^n a_i f(e_i).
\end{align*}
By the previous step, $f(e_i)=b_i$ for each $i\in\{1,\ldots,n\}$. Therefore
\begin{align*}
f(v)=\sum_{i=1}^n a_i b_i.
\end{align*}
Since $k$ is a field, multiplication in $k$ is commutative, so $a_i b_i=b_i a_i$ for each $i$. Hence
\begin{align*}
f(v)=\sum_{i=1}^n b_i a_i.
\end{align*}
This is the desired pairing formula in the coordinates determined by $\mathcal B$ and $\mathcal B^*$.
[/step]