[proofplan]
We use the assumed weight-space decomposition of $V$ and dualize it explicitly. A functional on $V$ decomposes uniquely into pieces supported on the individual weight spaces $V_\lambda$. The dual action sends the piece supported on $V_\lambda$ to the inverse character $\lambda^{-1}$, and a comparison on each weight space shows that no other weights can occur.
[/proofplan]
custom_env
admin
[step:Decompose the dual space by functionals supported on individual weight spaces]Let
\begin{align*}\Lambda:=\{\lambda:T\to\mathbb C^\times:\lambda\text{ is a character and }V_\lambda\ne 0\}.\end{align*}
Since $V$ is finite-dimensional and
\begin{align*}
V=\bigoplus_{\lambda\in\Lambda}V_\lambda,
\end{align*}
the set $\Lambda$ is finite.
For each $\lambda\in\Lambda$, define
\begin{align*}
E_\lambda:=\{f\in V^*:f(v)=0\text{ for every }v\in V_\nu\text{ and every }\nu\in\Lambda\setminus\{\lambda\}\}.
\end{align*}
Every vector $v\in V$ has a unique decomposition
\begin{align*}
v=\sum_{\lambda\in\Lambda}v_\lambda
\end{align*}
with $v_\lambda\in V_\lambda$ for every $\lambda\in\Lambda$.
For $f\in V^*$, define $f_\lambda\in V^*$ by
\begin{align*}
f_\lambda(v):=f(v_\lambda)
\end{align*}
where $v=\sum_{\nu\in\Lambda}v_\nu$ is the unique weight-space decomposition of $v$. Then $f_\lambda\in E_\lambda$, and
\begin{align*}
f=\sum_{\lambda\in\Lambda}f_\lambda.
\end{align*}
The sum is direct, because if $\sum_{\lambda\in\Lambda}h_\lambda=0$ with $h_\lambda\in E_\lambda$, then evaluating on $v\in V_\eta$ gives $h_\eta(v)=0$ for every $v\in V_\eta$, hence $h_\eta=0$. Therefore
\begin{align*}
V^*=\bigoplus_{\lambda\in\Lambda}E_\lambda.
\end{align*}
Moreover, define $V_\lambda^*:=\operatorname{Hom}_{\mathbb C}(V_\lambda,\mathbb C)$. Restriction to $V_\lambda$ defines a complex-linear isomorphism
\begin{align*}
R_\lambda:E_\lambda\to V_\lambda^*
\end{align*}
for every $\lambda\in\Lambda$: injectivity follows because an element of $E_\lambda$ vanishes on all other summands, and surjectivity follows by extending a functional on $V_\lambda$ by zero on $V_\nu$ for $\nu\ne\lambda$. Hence
\begin{align*}
\dim_{\mathbb C}E_\lambda=\dim_{\mathbb C}V_\lambda.
\end{align*}[/step]
custom_env
admin
[guided]The point of this step is to make the phrase “a functional supported on $V_\lambda$” precise. Let
\begin{align*}\Lambda:=\{\lambda:T\to\mathbb C^\times:\lambda\text{ is a character and }V_\lambda\ne 0\}.\end{align*}
The theorem assumes that $V$ is the [direct sum](/page/Direct%20Sum) of the nonzero weight spaces:
\begin{align*}V=\bigoplus_{\lambda\in\Lambda}V_\lambda.\end{align*}
Since $V$ is finite-dimensional, there can be only finitely many nonzero summands, so $\Lambda$ is finite.
For each $\lambda\in\Lambda$, define
\begin{align*}E_\lambda:=\{f\in V^*:f(v)=0\text{ for every }v\in V_\nu\text{ and every }\nu\in\Lambda\setminus\{\lambda\}\}.\end{align*}
Thus $E_\lambda$ is the subspace of functionals on $V$ that may be nonzero on $V_\lambda$ but vanish on all other weight spaces.
Because the decomposition of $V$ is direct, each $v\in V$ has a unique expression
\begin{align*}
v=\sum_{\lambda\in\Lambda}v_\lambda
\end{align*}
with $v_\lambda\in V_\lambda$. Given $f\in V^*$, define $f_\lambda\in V^*$ by
\begin{align*}
f_\lambda(v):=f(v_\lambda).
\end{align*}
This definition is valid because the component $v_\lambda$ is uniquely determined by $v$. By construction, $f_\lambda$ vanishes on every $V_\nu$ with $\nu\ne\lambda$, so $f_\lambda\in E_\lambda$. Also,
\begin{align*}
f(v)=f\left(\sum_{\lambda\in\Lambda}v_\lambda\right)=\sum_{\lambda\in\Lambda}f(v_\lambda)=\sum_{\lambda\in\Lambda}f_\lambda(v)
\end{align*}
for every $v\in V$, so
\begin{align*}
f=\sum_{\lambda\in\Lambda}f_\lambda.
\end{align*}
The sum is direct. Indeed, suppose $\sum_{\lambda\in\Lambda}h_\lambda=0$ with $h_\lambda\in E_\lambda$. Fix $\eta\in\Lambda$ and take $v\in V_\eta$. Since $h_\lambda$ vanishes on $V_\eta$ for $\lambda\ne\eta$, evaluating the equality on $v$ gives
\begin{align*}
0=\sum_{\lambda\in\Lambda}h_\lambda(v)=h_\eta(v).
\end{align*}
This holds for every $v\in V_\eta$, and $h_\eta$ already vanishes on all $V_\nu$ with $\nu\ne\eta$, so $h_\eta=0$ on all of $V$. Since $\eta$ was arbitrary, every summand is zero. Therefore
\begin{align*}
V^*=\bigoplus_{\lambda\in\Lambda}E_\lambda.
\end{align*}
Finally, restriction gives the dimension of $E_\lambda$. Define $V_\lambda^*:=\operatorname{Hom}_{\mathbb C}(V_\lambda,\mathbb C)$. The map
\begin{align*}
R_\lambda:E_\lambda\to V_\lambda^*
\end{align*}
sending $f$ to $f|_{V_\lambda}$ is injective because an element of $E_\lambda$ is already zero on every other summand. It is surjective because any functional on $V_\lambda$ extends to $V$ by declaring it to be zero on all $V_\nu$ with $\nu\ne\lambda$. Hence this restriction map is an isomorphism, and
\begin{align*}
\dim_{\mathbb C}E_\lambda=\dim_{\mathbb C}V_\lambda.
\end{align*}[/guided]
custom_env
admin
[step:Compute the dual action on each supported functional]Fix $\lambda\in\Lambda$ and $f\in E_\lambda$. Let $t\in T$ and let $v\in V$. Write
\begin{align*}v=\sum_{\nu\in\Lambda}v_\nu\end{align*}
with $v_\nu\in V_\nu$. Since $v_\nu\in V_\nu$, we have
\begin{align*}
t^{-1}\cdot v_\nu=\nu(t^{-1})v_\nu.
\end{align*}
Because $\nu$ is a character,
\begin{align*}
\nu(t^{-1})=\nu(t)^{-1}.
\end{align*}
Therefore
\begin{align*}
(t\cdot f)(v)=f(t^{-1}\cdot v)=f\left(\sum_{\nu\in\Lambda}\nu(t)^{-1}v_\nu\right).
\end{align*}
Since $f\in E_\lambda$, all terms with $\nu\ne\lambda$ vanish under $f$, so
\begin{align*}
(t\cdot f)(v)=\lambda(t)^{-1}f(v_\lambda)=\lambda(t)^{-1}f(v).
\end{align*}
Thus
\begin{align*}
E_\lambda\subset (V^*)_{-\lambda}.
\end{align*}[/step]
custom_env
admin
[guided]We now compute how the dual action transforms a functional supported on one weight space. Fix $\lambda\in\Lambda$ and $f\in E_\lambda$. Let $t\in T$ and let $v\in V$. By the direct-sum decomposition of $V$, there are unique vectors $v_\nu\in V_\nu$ such that
\begin{align*}
v=\sum_{\nu\in\Lambda}v_\nu.
\end{align*}
For each $\nu\in\Lambda$, the defining property of $V_\nu$ gives
\begin{align*}
t^{-1}\cdot v_\nu=\nu(t^{-1})v_\nu.
\end{align*}
Since $\nu:T\to\mathbb C^\times$ is a [group homomorphism](/page/Group%20Homomorphism), $\nu(t^{-1})=\nu(t)^{-1}$. Therefore the dual action gives
\begin{align*}
(t\cdot f)(v)=f(t^{-1}\cdot v)=f\left(\sum_{\nu\in\Lambda}\nu(t)^{-1}v_\nu\right).
\end{align*}
The reason we introduced $E_\lambda$ is precisely that this last expression only remembers the $V_\lambda$-component: $f$ vanishes on every $V_\nu$ with $\nu\ne\lambda$. Hence
\begin{align*}
(t\cdot f)(v)=\lambda(t)^{-1}f(v_\lambda).
\end{align*}
Because $f\in E_\lambda$, we also have $f(v)=f(v_\lambda)$. Thus
\begin{align*}
(t\cdot f)(v)=\lambda(t)^{-1}f(v)
\end{align*}
for every $v\in V$. This proves that $f$ is a $T$-weight vector of weight $-\lambda$, so
\begin{align*}
E_\lambda\subset (V^*)_{-\lambda}.
\end{align*}[/guided]
custom_env
admin
[step:Show that no other dual weights occur]Let $\mu:T\to\mathbb C^\times$ be a character and let $f\in (V^*)_\mu$. Using the direct decomposition of $V^*$ from the first step, write
\begin{align*}
f=\sum_{\lambda\in\Lambda}f_\lambda
\end{align*}
with $f_\lambda\in E_\lambda$. By the previous step, $f_\lambda\in (V^*)_{-\lambda}$ for every $\lambda\in\Lambda$.
Fix $\lambda\in\Lambda$. Since $f\in (V^*)_\mu$, for every $t\in T$,
\begin{align*}
t\cdot f=\mu(t)f.
\end{align*}
On the other hand,
\begin{align*}
t\cdot f=\sum_{\nu\in\Lambda}t\cdot f_\nu=\sum_{\nu\in\Lambda}\nu(t)^{-1}f_\nu.
\end{align*}
By uniqueness of the direct sum decomposition of $V^*$ into the subspaces $E_\nu$,
\begin{align*}
\lambda(t)^{-1}f_\lambda=\mu(t)f_\lambda
\end{align*}
for every $t\in T$.
If $f_\lambda\ne 0$, then there exists $v\in V$ with $f_\lambda(v)\ne 0$. Evaluating the preceding equality at this $v$ gives
\begin{align*}
\lambda(t)^{-1}=\mu(t)
\end{align*}
for every $t\in T$. Hence $\mu=-\lambda$. Therefore a nonzero vector in $(V^*)_\mu$ can have components only in those $E_\lambda$ for which $\mu=-\lambda$.[/step]
custom_env
admin
[guided]Let $\mu:T\to\mathbb C^\times$ be a character and let $f\in (V^*)_\mu$. From the first step, $V^*$ is the direct sum of the subspaces $E_\lambda$, so there are unique elements $f_\lambda\in E_\lambda$ such that
\begin{align*}
f=\sum_{\lambda\in\Lambda}f_\lambda.
\end{align*}
The previous step showed that each component $f_\lambda$ has dual weight $-\lambda$, meaning
\begin{align*}
t\cdot f_\lambda=\lambda(t)^{-1}f_\lambda
\end{align*}
for every $t\in T$.
Now compare this with the assumption that $f$ itself has weight $\mu$. For every $t\in T$,
\begin{align*}
t\cdot f=\mu(t)f.
\end{align*}
Using the decomposition of $f$ and the action on each $f_\nu$, we also have
\begin{align*}
t\cdot f=\sum_{\nu\in\Lambda}t\cdot f_\nu=\sum_{\nu\in\Lambda}\nu(t)^{-1}f_\nu.
\end{align*}
Because the decomposition of $V^*$ into the direct sum of the $E_\nu$ is unique, the $E_\lambda$-component on both sides must agree. Thus
\begin{align*}
\lambda(t)^{-1}f_\lambda=\mu(t)f_\lambda
\end{align*}
for every $t\in T$.
If $f_\lambda\ne 0$, choose $v\in V$ such that $f_\lambda(v)\ne 0$. Evaluating the preceding equality at this vector gives
\begin{align*}
\lambda(t)^{-1}f_\lambda(v)=\mu(t)f_\lambda(v).
\end{align*}
Since $f_\lambda(v)\ne 0$, division in $\mathbb C$ gives
\begin{align*}
\lambda(t)^{-1}=\mu(t)
\end{align*}
for every $t\in T$. Therefore $\mu=-\lambda$. This proves that a nonzero vector of weight $\mu$ can have nonzero components only in the summands $E_\lambda$ whose inverse character equals $\mu$.[/guided]
custom_env
admin
[step:Identify the weight spaces and compare multiplicities]The inclusion $E_\lambda\subset (V^*)_{-\lambda}$ was proved for every $\lambda\in\Lambda$. The previous step shows conversely that every element of $(V^*)_{-\lambda}$ lies in $E_\lambda$, because no component supported on $V_\nu$ with $\nu\ne\lambda$ can have weight $-\lambda$. Hence
\begin{align*}
(V^*)_{-\lambda}=E_\lambda
\end{align*}
for every $\lambda\in\Lambda$.
Since restriction gives an isomorphism $E_\lambda\cong V_\lambda^*$, where $V_\lambda^*=\operatorname{Hom}_{\mathbb C}(V_\lambda,\mathbb C)$, we obtain
\begin{align*}
\dim_{\mathbb C}(V^*)_{-\lambda}=\dim_{\mathbb C}E_\lambda=\dim_{\mathbb C}V_\lambda^*=\dim_{\mathbb C}V_\lambda.
\end{align*}
Thus the weights of $V^*$ are exactly the inverse characters $-\lambda$ with $V_\lambda\ne 0$, and their multiplicities agree with the corresponding multiplicities in $V$.[/step]
custom_env
admin
[guided]For every $\lambda\in\Lambda$, the dual-action computation gave
\begin{align*}
E_\lambda\subset (V^*)_{-\lambda}.
\end{align*}
The previous step gives the converse containment for the weight $-\lambda$: an element of $(V^*)_{-\lambda}$ cannot have a nonzero component in $E_\nu$ unless $-\lambda=-\nu$. In character notation this means $\lambda=\nu$, because two characters are equal exactly when their inverse characters are equal. Hence
\begin{align*}
(V^*)_{-\lambda}=E_\lambda.
\end{align*}
It remains only to compare dimensions. The first step constructed the restriction isomorphism
\begin{align*}
R_\lambda:E_\lambda\to V_\lambda^*,
\end{align*}
where $V_\lambda^*=\operatorname{Hom}_{\mathbb C}(V_\lambda,\mathbb C)$. Therefore
\begin{align*}
\dim_{\mathbb C}(V^*)_{-\lambda}=\dim_{\mathbb C}E_\lambda=\dim_{\mathbb C}V_\lambda^*=\dim_{\mathbb C}V_\lambda.
\end{align*}
Thus the weights of $V^*$ are exactly the inverse characters $-\lambda$ with $V_\lambda\ne 0$, and the multiplicity of $-\lambda$ in $V^*$ equals the multiplicity of $\lambda$ in $V$.[/guided]