\chapter{Representations of \(\mathfrak{sl}_2(K)\) \& \(\mathfrak{sl}_3(K)\)}\label{ch:sl3}

We are, once again, faced with the daunting task of classifying the
finite-dimensional modules of a given (semisimple) algebra \(\mathfrak{g}\).
Having reduced the problem a great deal, all its left is classifying the simple
\(\mathfrak{g}\)-modules. We have encountered numerous examples of simple
\(\mathfrak{g}\)-modules over the previous chapter, but we have yet to subject
them to any serious scrutiny. In this chapter we begin a systematic
investigation of simple modules by looking at concrete examples. Specifically,
we will classify the simple finite-dimensional modules of certain
low-dimensional semisimple Lie algebras: \(\mathfrak{sl}_2(K)\) and
\(\mathfrak{sl}_3(K)\).

The reason why we chose \(\mathfrak{sl}_2(K)\) is a simple one: throughout the
previous chapters \(\mathfrak{sl}_2(K)\) has afforded us surprisingly
illuminating examples. We begin our analysis by recalling that the elements
\begin{align*}
  e & = \begin{pmatrix} 0 & 1 \\ 0 &  0 \end{pmatrix} &
  f & = \begin{pmatrix} 0 & 0 \\ 1 &  0 \end{pmatrix} &
  h & = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}
\end{align*}
form a basis for \(\mathfrak{sl}_2(K)\) and satisfy
\begin{align*}
  [e, f] & = h & [h, f] & = -2 f & [h, e] = 2 e
\end{align*}

Let \(M\) be a finite-dimensional simple \(\mathfrak{sl}_2(K)\)-module. We now
turn our attention to the action of \(h\) on \(M\), in particular, we
investigate the subspace \(\bigoplus_{\lambda} M_\lambda \subset M\) -- where
\(\lambda\) ranges over the eigenvalues of \(h\!\restriction_M\) and
\(M_\lambda\) is the corresponding eigenspace.

At this point, this is nothing short of a gamble: why look at the eigenvalues
of \(h\)? The short answer is that, as we shall see, this will pay off. We will
postpone the discussion about the real reason of why we chose \(h\), but for
now we may notice that, perhaps surprisingly, the action \(h\!\restriction_M\)
of \(h\) on a finite-dimensional simple \(\mathfrak{sl}_2(K)\)-module \(M\)
is always a diagonalizable operator.

Let \(\lambda\) be any eigenvalue of \(h\!\restriction_M\). Notice
\(M_\lambda\) is in general not a \(\mathfrak{sl}_2(K)\)-submodule of \(M\).
Indeed, if \(m \in M_\lambda\) then the identities
\begin{align*}
  h \cdot (e \cdot m) &=  2e \cdot m + e h \cdot m = (\lambda + 2) e \cdot m \\
  h \cdot (f \cdot m) &= -2f \cdot m + f h \cdot m = (\lambda - 2) f \cdot m
\end{align*}
follow. In other words, \(e\) sends an element of \(M_\lambda\) to an element
of \(M_{\lambda + 2}\), while \(f\) sends it to an element of \(M_{\lambda -
2}\). Visually, we may draw
\begin{center}
  \begin{tikzcd}
    \cdots          \rar[bend left=60]                          &
    M_{\lambda - 2} \rar[bend left=60]{e} \lar[bend left=60]    &
    M_{\lambda}     \rar[bend left=60]{e} \lar[bend left=60]{f} &
    M_{\lambda + 2} \rar[bend left=60]    \lar[bend left=60]{f} &
    \cdots                                \lar[bend left=60]
  \end{tikzcd}
\end{center}

This implies \(\bigoplus_\lambda M_\lambda\) is a
\(\mathfrak{sl}_2(K)\)-submodule, so that \(\bigoplus_\lambda M_\lambda\) is
either \(0\) or the entirety of \(M\) -- recall that \(M\) is simple. Since
\(M\) is finite dimensional, \(h\!\restriction_M\) has at least one eigenvalue
and therefore
\[
  M = \bigoplus_\lambda M_\lambda
\]

Even more so, we have seen that for any eigenvalue \(\lambda \in K\) of
\(h\!\restriction_M\), \(\bigoplus_{k \in \mathbb{Z}} M_{\lambda - 2 k}\) is a
\(\mathfrak{sl}_2(K)\)-invariant subspace, which goes to show
\[
  M = \bigoplus_{k \in \mathbb{Z}} M_{\lambda - 2 k},
\]
and the eigenvalues of \(h\) all have the form \(\lambda - 2 k\) for some
\(k\). By the same token, if \(a\) is the greatest \(k \in \mathbb{Z}\) such
that \(V_{\lambda - 2 k} \ne 0\) and, likewise, \(b\) is the smallest \(k \in
\mathbb{Z}\) such that \(V_{\lambda - 2 k} \ne 0\) then
\[
  M = \bigoplus_{\substack{k \in \mathbb{Z} \\ a \le k \le b}}
      M_{\lambda - 2 k}
\]

The eigenvalues of \(h\) thus form an unbroken string
\[
  \ldots, \lambda - 4, \lambda - 2, \lambda, \lambda + 2, \lambda + 4, \ldots
\]
around \(\lambda\). Our main objective is to show \(M\) is determined by this
string of eigenvalues. To do so, we suppose without any loss in generality that
\(\lambda\) is the right-most eigenvalue of \(h\), fix some nonzero \(m \in
M_\lambda\) and consider the set \(\{m, f \cdot m, f^2 \cdot m, \ldots\}\).

\begin{proposition}\label{thm:basis-of-irr-rep}
  The set \(\{m, f \cdot m, f^2 \cdot m, \ldots\}\) is a basis for \(M\). In
  addition, the action of \(\mathfrak{sl}_2(K)\) on \(M\) is given by the
  formulas
  \begin{equation}\label{eq:irr-rep-of-sl2}
    \begin{aligned}
        f^k \cdot m & \overset{e}{\mapsto} k(\lambda + 1 - k) f^{k - 1} \cdot m
      & f^k \cdot m & \overset{f}{\mapsto} f^{k + 1} \cdot m
      & f^k \cdot m & \overset{h}{\mapsto} (\lambda - 2 k) f^k \cdot m
    \end{aligned}
  \end{equation}
\end{proposition}

\begin{proof}
  First of all, notice \(f^k \cdot m\) lies in \(M_{\lambda - 2 k}\), so that
  \(\{m, f \cdot m, f^2 \cdot m, \ldots\}\) is a set of linearly independent
  vectors. Hence it suffices to show \(M = K \langle m, f \cdot m, f^2 \cdot m,
  \ldots \rangle\), which in light of the fact that \(M\) is simple is the same
  as showing \(K \langle m, f \cdot m, f^2 \cdot m, \ldots \rangle\) is
  invariant under the action of \(\mathfrak{sl}_2(K)\).

  The fact that \(h \cdot (f^k \cdot m) \in K \langle m, f \cdot m, f^2 \cdot
  m, \ldots \rangle\) follows immediately from our previous assertion that
  \(f^k \cdot m \in M_{\lambda - 2 k}\) -- indeed, \(h \cdot (f^k \cdot m) =
  (\lambda - 2 k) f^k \cdot m \in K \langle m, f \cdot m, f^2 \cdot m, \ldots
  \rangle\), which also goes to show one of the formulas in
  (\ref{eq:irr-rep-of-sl2}). Seeing \(e \cdot (f^k \cdot m) \in K \langle m, f
  \cdot m, f^2 \cdot m, \ldots \rangle\) is a bit more complex. Clearly,
  \[
    \begin{split}
      e \cdot (f \cdot m)
      & = h \cdot m + f \cdot (e \cdot m) \\
      \text{(since \(\lambda\) is the right-most eigenvalue)}
      & = h \cdot m + f \cdot 0 \\
      & = \lambda m
    \end{split}
  \]

  Next we compute
  \[
    \begin{split}
      e \cdot (f^2 \cdot m)
      & = (h + fe) \cdot (f \cdot m) \\
      & = h \cdot (f \cdot m) + f \cdot (\lambda m) \\
      & = 2 (\lambda - 1) f \cdot m
    \end{split}
  \]

  The pattern is starting to become clear: \(e\) sends \(f^k \cdot m\) to a
  multiple of \(f^{k - 1} \cdot m\). Explicitly, it is not hard to check by
  induction that
  \[
    e \cdot (f^k \cdot m) = k (\lambda + 1 - k) \cdot f^{k - 1} m,
  \]
  which which is the first formula of (\ref{eq:irr-rep-of-sl2}).
\end{proof}

The significance of Proposition~\ref{thm:basis-of-irr-rep} should be
self-evident: we have just provided a complete description of the action of
\(\mathfrak{sl}_2(K)\) on \(M\). In particular, this goes to show\dots

\begin{corollary}
  Every eigenspace of the action of \(h\) on \(M\) is \(1\)-dimensional.
\end{corollary}

\begin{proof}
  It suffices to note \(\{m, f \cdot m, f^2 \cdot m, \ldots \}\) is a basis for
  \(M\) consisting of eigenvalues of \(h\) and whose only element in
  \(M_{\lambda - 2 k}\) is \(f^k \cdot m\).
\end{proof}

\begin{corollary}\label{thm:sl2-find-weights}
  The eigenvalues of \(h\) in \(M\) form a symmetric, unbroken string of
  integers separated by intervals of length \(2\) whose right-most value is
  \(\dim M - 1\).
\end{corollary}

\begin{proof}
  If \(f^r\) is the lowest power of \(f\) that annihilates \(m\), it follows
  from the formulas in (\ref{eq:irr-rep-of-sl2}) that
  \[
    0 = e \cdot 0 = e \cdot (f^r \cdot m)
    = r (\lambda + 1 - r) f^{r - 1} \cdot m
  \]

  This implies \(\lambda + 1 - r = 0\) -- i.e. \(\lambda = r - 1 \in
  \mathbb{Z}\). Now since \(\{m, f \cdot m, f^2 \cdot m, \ldots, f^{r - 1}
  \cdot m\}\) is a basis for \(M\), \(r = \dim V\). Hence if \(\lambda =
  \dim V - 1\) then the eigenvalues of \(h\) are
  \[
    \ldots, \lambda - 6, \lambda - 4, \lambda - 2, \lambda
  \]

  To see that this string is symmetric around \(0\), simply note that the
  left-most eigenvalue of \(h\) is precisely \(\lambda - 2 (r - 1) =
  -\lambda\).
\end{proof}

Visually, the situation it thus
\begin{center}
  \begin{tikzcd}
    M_{-\lambda}      \rar[bend left=60]{e}                       &
    M_{- \lambda + 2} \rar[bend left=60]{e} \lar[bend left=60]{f} &
    M_{- \lambda + 4} \rar[bend left=60]    \lar[bend left=60]{f} &
    \cdots            \rar[bend left=60]    \lar[bend left=60]    &
    M_{\lambda - 4}   \rar[bend left=60]{e} \lar[bend left=60]    &
    M_{\lambda - 2}   \rar[bend left=60]{e} \lar[bend left=60]{f} &
    M_\lambda                               \lar[bend left=60]{f}
  \end{tikzcd}
\end{center}

Corollary~\ref{thm:sl2-find-weights} can be used to find the eigenvalues of the
action of \(h\) on an arbitrary finite-dimensional
\(\mathfrak{sl}_2(K)\)-module. Namely, if \(M\) and \(N\) are
\(\mathfrak{sl}_2(K)\)-modules, \(m \in M_\mu\) and \(n \in N_\mu\) then by
computing
\[
  h \cdot (m + n) = h \cdot m + h \cdot n = \mu (m + n)
\]
we can see that \((M \oplus N)_\mu = M_\mu + N_\mu\). Hence the set of
eigenvalues of \(h\) in a \(\mathfrak{sl}_2(K)\)-module \(M\) is the union of
the sets of eigenvalues in its simple components, and the corresponding
eigenspaces are the direct sums of the eigenspaces of such simple components.

In particular, if the eigenvalues of \(M\) all have the same parity -- i.e.
they are either all even integers or all odd integers -- and the dimension of
each eigenspace is no greater than \(1\) then \(M\) must be simple, for if \(N,
L \subset M\) are submodules with \(M = N \oplus L\) then either \(N_\lambda =
0\) for all \(\lambda\) or \(L_\lambda = 0\) for all \(\lambda \in
\mathfrak{h}^*\). To conclude our analysis all it is left is to show that for
each \(\lambda \in \mathbb{Z}\) with \(\lambda \ge 0\) there is some
finite-dimensional simple \(M\) whose highest weight is \(\lambda\).
Surprisingly, we have already encountered such a \(M\).

\begin{theorem}\label{thm:sl2-exist-unique}
  For each \(\lambda \ge 0\), \(\lambda \in \mathbb{Z}\), there exists a unique
  simple \(\mathfrak{sl}_2(K)\)-module whose left-most eigenvalue of \(h\) is
  \(\lambda\).
\end{theorem}

\begin{proof}
  Let \(M = K[x, y]^{(\lambda)}\) be the \(\mathfrak{sl}_2(K)\)-module of
  homogeneous polynomials of degree \(\lambda\) in two variables, as in
  Example~\ref{ex:sl2-polynomial-subrep}. A simple calculation shows \(M_{n - 2
  k} = K x^{\lambda - k} y^k\) for \(k = 0, \ldots, \lambda\) and \(M_\mu = 0\)
  otherwise. In particular, the right-most eigenvalue of \(M\) is \(\lambda\).
  Alternatively, one can readily check that if \(K^2\) is the natural
  \(\mathfrak{sl}_2(K)\)-module, then \(M = \operatorname{Sym}^\lambda K^2\)
  satisfies the relations of (\ref{eq:irr-rep-of-sl2}). Indeed, the map
  \begin{align*}
    K[x, y]^{(\lambda)} & \to     \operatorname{Sym}^\lambda K^2 \\
             x^k y^\ell & \mapsto e_1^k \cdot e_2^\ell
  \end{align*}
  is an isomorphism.

  Either way, by the previous observation that a finite-dimensional
  \(\mathfrak{sl}_2(K)\)-module whose eigenvalues all have the same parity and
  whose corresponding eigenspace are all \(1\)-dimensional must be simple,
  \(M\) is simple. As for the uniqueness of \(M\), it suffices to notice that
  if \(N\) is a finite-dimensional simple \(\mathfrak{sl}_2(K)\)-module with
  right-most eigenvalue \(\lambda\) and \(n \in N_\lambda\) is nonzero then
  relations (\ref{eq:irr-rep-of-sl2}) imply the map
  \begin{align*}
              M & \to     N           \\
    f^k \cdot m & \mapsto f^k \cdot n
  \end{align*}
  is an isomorphism -- this is, in effect, precisely how the isomorphism \(K[x,
  y]^{(\lambda)} \isoto \operatorname{Sym}^\lambda K^2\) was constructed.
\end{proof}

Our initial gamble of studying the eigenvalues of \(h\) may have seemed
arbitrary at first, but it payed off: we have \emph{completely} described
\emph{all} simple \(\mathfrak{sl}_2(K)\)-modules. It is not yet clear, however,
if any of this can be adapted to a general setting. In the following section we
shall double down on our gamble by trying to reproduce some of these results
for \(\mathfrak{sl}_3(K)\), hoping this will somehow lead us to a general
solution. In the process of doing so we will find some important clues on why
\(h\) was a sure bet and the race was fixed all along.

\section{Representations of \(\mathfrak{sl}_{2 + 1}(K)\)}\label{sec:sl3-reps}

The study of representations of \(\mathfrak{sl}_2(K)\) reminds me of the
difference between the derivative of a function \(\mathbb{R} \to \mathbb{R}\)
and that of a smooth map between manifolds: it is a simpler case of something
greater, but in some sense it is too simple of a case, and the intuition we
acquire from it can be a bit misleading in regards to the general setting. For
instance, I distinctly remember my Calculus I teacher telling the class ``the
derivative of the composition of two functions is not the composition of their
derivatives'' -- which is, of course, the \emph{correct} formulation of the
chain rule in the context of smooth manifolds.

The same applies to \(\mathfrak{sl}_2(K)\). It is a simple and beautiful
example, but unfortunately the general picture, modules of arbitrary semisimple
algebras, lacks its simplicity. The general purpose of this section is to
investigate to which extent the framework we developed for
\(\mathfrak{sl}_2(K)\) can be generalized to other semisimple Lie algebras. Of
course, the algebra \(\mathfrak{sl}_3(K)\) stands as a natural candidate for
potential generalizations: \(\mathfrak{sl}_3(K) = \mathfrak{sl}_{2 + 1}(K)\)
after all.

Our approach is very straightforward: we will fix some simple
\(\mathfrak{sl}_3(K)\)-module \(M\) and proceed step by step, at each point
asking ourselves how we could possibly adapt the framework we laid out for
\(\mathfrak{sl}_2(K)\). The first obvious question is one we have already asked
ourselves: why \(h\)?  More specifically, why did we choose to study its
eigenvalues and is there an analogue of \(h\) in \(\mathfrak{sl}_3(K)\)?

The answer to the former question is one we will discuss at length in the next
chapter, but for now we note that perhaps the most fundamental property of
\(h\) is that \emph{there exists an eigenvector \(m\) of \(h\) that is
annihilated by \(e\)} -- that being the generator of the right-most eigenspace
of \(h\). This was instrumental to our explicit description of the simple
\(\mathfrak{sl}_2(K)\)-modules culminating in
Theorem~\ref{thm:sl2-exist-unique}.

Our first task is to find some analogue of \(h\) in \(\mathfrak{sl}_3(K)\), but
it is still unclear what exactly we are looking for. We could say we are
looking for an element of \(M\) that is annihilated by some analogue of \(e\),
but the meaning of \emph{some analogue of \(e\)} is again unclear. In fact, as
we shall see, no such analogue exists and neither does such element. Instead,
the actual way to proceed is to consider the subalgebra
\[
  \mathfrak{h}
  = \left\{
    X \in
    \begin{pmatrix} K & 0 & 0 \\ 0 & K & 0 \\ 0 & 0 & K \end{pmatrix}
    : \operatorname{Tr}(X) = 0
    \right\}
\]

The choice of \(\mathfrak{h}\) may seem like an odd choice at the moment, but
the point is we will later show that there exists some \(m \in M\) that is
simultaneously an eigenvector of each \(H \in \mathfrak{h}\) and annihilated by
half of the remaining elements of \(\mathfrak{sl}_3(K)\). This is exactly
analogous to the situation we found in \(\mathfrak{sl}_2(K)\): \(h\)
corresponds to the subalgebra \(\mathfrak{h}\), and the eigenvalues of \(h\) in
turn correspond to linear functions \(\lambda : \mathfrak{h} \to k\) such that
\(H \cdot m = \lambda(H) m\) for each \(H \in \mathfrak{h}\) and some nonzero
\(m \in M\). We call such functionals \(\lambda\) \emph{eigenvalues of
\(\mathfrak{h}\)}, and we say \emph{\(m\) is an eigenvector of
\(\mathfrak{h}\)}.

Once again, we will pay special attention to the eigenvalue decomposition
\begin{equation}\label{eq:weight-module}
  M = \bigoplus_\lambda M_\lambda
\end{equation}
where \(\lambda\) ranges over all eigenvalues of \(\mathfrak{h}\) and
\(M_\lambda = \{ m \in M : H \cdot m = \lambda(H) m, \forall H \in \mathfrak{h}
\}\). We should note that the fact that (\ref{eq:weight-module}) holds is not
at all obvious. This is because in general \(M_\lambda\) is not the eigenspace
associated with an eigenvalue of any particular operator \(H \in
\mathfrak{h}\), but instead the eigenspace of the action of the entire algebra
\(\mathfrak{h}\). Fortunately for us, (\ref{eq:weight-module}) always holds,
but we will postpone its proof to the next chapter.

Next we turn our attention to the remaining elements of \(\mathfrak{sl}_3(K)\).
In our analysis of \(\mathfrak{sl}_2(K)\) we saw that the eigenvalues of \(h\)
differed from one another by multiples of \(2\). A possible way to interpret
this is to say \emph{the eigenvalues of \(h\) differ from one another by
integral linear combinations of the eigenvalues of the adjoint action of
\(h\)}. In English, since
\begin{align*}
  \operatorname{ad}(h) e & = 2 e  &
  \operatorname{ad}(h) f & = -2 f &
  \operatorname{ad}(h) h & = 0,
\end{align*}
the eigenvalues of the adjoint actions of \(h\) are \(0\) and \(\pm 2\), and
the eigenvalues of the action of \(h\) on a simple
\(\mathfrak{sl}_2(K)\)-module differ from one another by integral multiples of
\(2\).

In the case of \(\mathfrak{sl}_3(K)\), a simple calculation shows that if \([H,
X]\) is scalar multiple of \(X\) for all \(H \in \mathfrak{h}\) then all but
one entry of \(X\) are zero. Hence the eigenvectors of the adjoint action of
\(\mathfrak{h}\) are \(E_{i j}\) and its eigenvalues are \(\epsilon_i -
\epsilon_j\), where
\[
  \epsilon_i
  \begin{pmatrix}
    a_1 &   0 &   0 \\
      0 & a_2 &   0 \\
      0 &   0 & a_3
  \end{pmatrix}
  = a_i
\]

Visually we may draw

\begin{figure}[h]
  \centering
  \begin{tikzpicture}[scale=2]
    \begin{rootSystem}{A}
      \filldraw[black] \weight{0}{0} circle (.5pt);
      \node[black, above right] at \weight{0}{0} {\small$0$};
      \wt[black]{-1}{2}
      \wt[black]{-2}{1}
      \wt[black]{1}{1}
      \wt[black]{-1}{-1}
      \wt[black]{2}{-1}
      \wt[black]{1}{-2}
      \node[above] at \weight{-1}{2}  {$\epsilon_2 - \epsilon_3$};
      \node[left]  at \weight{-2}{1}  {$\epsilon_2 - \epsilon_1$};
      \node[right] at \weight{1}{1}   {$\epsilon_1 - \epsilon_3$};
      \node[left]  at \weight{-1}{-1} {$\epsilon_3 - \epsilon_1$};
      \node[right] at \weight{2}{-1}  {$\epsilon_1 - \epsilon_2$};
      \node[below] at \weight{1}{-2}  {$\epsilon_3 - \epsilon_1$};
      \node[black, above] at \weight{1}{0}  {$\epsilon_1$};
      \node[black, above] at \weight{-1}{1} {$\epsilon_2$};
      \node[black, above] at \weight{0}{-1} {$\epsilon_3$};
      \filldraw[black] \weight{1}{0}  circle (.5pt);
      \filldraw[black] \weight{-1}{1} circle (.5pt);
      \filldraw[black] \weight{0}{-1} circle (.5pt);
    \end{rootSystem}
  \end{tikzpicture}
\end{figure}

If we denote the eigenspace of the adjoint action of \(\mathfrak{h}\) on
\(\mathfrak{sl}_3(K)\) associated to \(\alpha\) by
\(\mathfrak{sl}_3(K)_\alpha\) and fix some \(X \in \mathfrak{sl}_3(K)_\alpha\),
\(H \in \mathfrak{h}\) and \(m \in M_\lambda\) then
\[
  \begin{split}
    H \cdot (X \cdot m)
    & = X \cdot (H \cdot m) + [H, X] \cdot m \\
    & = X \cdot (\lambda(H) m) + \alpha(H) X \cdot m \\
    & = (\lambda + \alpha)(H) X \cdot m
  \end{split}
\]
so that \(X\) carries \(m\) to \(M_{\lambda + \alpha}\). In other words,
\(\mathfrak{sl}_3(k)_\alpha\) \emph{acts on \(M\) by translating vectors
between eigenspaces}.

For instance \(\mathfrak{sl}_3(K)_{\epsilon_1 - \epsilon_3}\) will act on the
adjoint \(\mathfrak{sl}_3(K)\)-modules via
\begin{figure}[h]
  \centering
  \begin{tikzpicture}[scale=2]
    \begin{rootSystem}{A}
      \wt[black]{0}{0}
      \wt[black]{-1}{2}
      \wt[black]{-2}{1}
      \wt[black]{1}{1}
      \wt[black]{-1}{-1}
      \wt[black]{2}{-1}
      \wt[black]{1}{-2}
      \draw[-latex, black] \weight{-1.9}{1.1} -- \weight{-1.1}{1.9};
      \draw[-latex, black] \weight{-.9}{-.9} -- \weight{-.1}{-.1};
      \draw[-latex, black] \weight{0.1}{0.1} -- \weight{.9}{.9};
      \draw[-latex, black] \weight{1.1}{-1.9} -- \weight{1.9}{-1.1};
    \end{rootSystem}
  \end{tikzpicture}
\end{figure}

This is again entirely analogous to the situation we observed in
\(\mathfrak{sl}_2(K)\). In fact, we may once more conclude\dots

\begin{theorem}\label{thm:sl3-weights-congruent-mod-root}
  The eigenvalues of the action of \(\mathfrak{h}\) on a simple
  \(\mathfrak{sl}_3(K)\)-module \(M\) differ from one another by integral
  linear combinations of the eigenvalues \(\epsilon_i - \epsilon_j\) of the adjoint
  action of \(\mathfrak{h}\) on \(\mathfrak{sl}_3(K)\).
\end{theorem}

\begin{proof}
  This proof goes exactly as that of the analogous statement for
  \(\mathfrak{sl}_2(K)\): it suffices to note that if we fix some eigenvalue
  \(\lambda\) of \(\mathfrak{h}\) and let \(i\) and \(j\) vary then
  \[
    \bigoplus_{i j} M_{\lambda + \epsilon_i - \epsilon_j}
  \]
  is an invariant subspace of \(M\).
\end{proof}

To avoid confusion we better introduce some notation to differentiate between
eigenvalues of the action of \(\mathfrak{h}\) on \(M\) and eigenvalues of the
adjoint action of \(\mathfrak{h}\).

\begin{definition}\index{weights}
  Given a \(\mathfrak{sl}_3(K)\)-module \(M\), we will call the \emph{nonzero}
  eigenvalues of the action of \(\mathfrak{h}\) on \(M\) \emph{weights of
  \(M\)}. As you might have guessed, we will correspondingly refer to
  eigenvectors and eigenspaces of a given weight by \emph{weight vectors} and
  \emph{weight spaces}.
\end{definition}

It is clear from our previous discussion that the weights of the adjoint
\(\mathfrak{sl}_3(K)\)-module deserve some special attention.

\begin{definition}\index{weights!roots}
  The weights of the adjoint \(\mathfrak{sl}_3(K)\)-module are called
  \emph{roots of \(\mathfrak{sl}_3(K)\)}. Once again, the expressions
  \emph{root vector} and \emph{root space} are self-explanatory.
\end{definition}

Theorem~\ref{thm:sl3-weights-congruent-mod-root} can thus be restated as\dots

\begin{definition}\index{weights!root lattice}
  The lattice \(Q = \mathbb{Z} \langle \epsilon_i - \epsilon_j : i, j = 1, 2, 3
  \rangle\) is called \emph{the root lattice of \(\mathfrak{sl}_3(K)\)}.
\end{definition}

\begin{corollary}
  The weights of a simple \(\mathfrak{sl}_3(K)\)-module \(M\) are all congruent
  modulo the root lattice \(Q\). In other words, the weights of \(M\) all lie
  in a single \(Q\)-coset \(\xi \in \mfrac{\mathfrak{h}^*}{Q}\).
\end{corollary}

At this point we could keep playing the tedious game of reproducing the
arguments from the previous section in the context of \(\mathfrak{sl}_3(K)\).
However, it is more profitable to use our knowledge of
\(\mathfrak{sl}_2(K)\)-modules instead. Notice that the canonical inclusion
\(\mathfrak{gl}_2(K) \to \mathfrak{gl}_3(K)\) -- as described in
Example~\ref{ex:gln-inclusions} -- restricts to an injective homomorphism
\(\mathfrak{sl}_2(K) \to \mathfrak{sl}_3(K)\). In other words,
\(\mathfrak{sl}_2(K)\) is isomorphic to the image \(\mathfrak{s}_{1 2} = K
\langle E_{1 2}, E_{2 1}, [E_{1 2}, E_{2 1}] \rangle \subset
\mathfrak{sl}_3(K)\) of the inclusion \(\mathfrak{sl}_2(K) \to
\mathfrak{sl}_3(K)\). We may thus regard \(M\) as a
\(\mathfrak{sl}_2(K)\)-module by restricting to \(\mathfrak{s}_{1 2}\).

Our first observation is that, since the root spaces act by translation, the
subspace
\[
  \bigoplus_{k \in \mathbb{Z}} M_{\lambda - k (\epsilon_1 - \epsilon_2)},
\]
must be invariant under the action of \(E_{1 2}\) and \(E_{2 1}\) for all
\(\lambda \in \mathfrak{h}^*\). This goes to show \(\bigoplus_k M_{\lambda - k
(\epsilon_1 - \epsilon_2)}\) is a \(\mathfrak{sl}_2(K)\)-submodule of \(M\) for all
weights \(\lambda\) of \(M\). Furthermore, one can easily see that the
eigenspace of the action of \(h\) on \(\bigoplus_{k \in \mathbb{Z}} M_{\lambda
- k (\epsilon_1 - \epsilon_2)}\) associated with the eigenvalue \(\lambda(H) - 2k\)
is precisely the weight space \(M_{\lambda - k (\epsilon_2 - \epsilon_1)}\).

Visually,
\begin{center}
  \begin{tikzpicture}
    \begin{rootSystem}{A}
      \node at \weight{-4}{2} (l) {};
      \node at \weight{-2}{1} (a) {};
      \node at \weight{0}{0}  (b) {};
      \node at \weight{2}{-1} (c) {};
      \node at \weight{4}{-2} (r) {};
      \draw \weight{-3}{1.5} -- \weight{3}{-1.5};
      \draw[dotted] \weight{-3}{1.5} -- (l);
      \draw[dotted] \weight{3}{-1.5} -- (r);
      \foreach \i in {-1, 0, 1}{\wt[black]{-2*\i}{\i}}
      \draw[-latex] (l) to[bend left=40] (a);
      \draw[-latex] (a) to[bend left=40] (b);
      \draw[-latex] (b) to[bend left=40] (c);
      \draw[-latex] (c) to[bend left=40] (r);
      \draw[-latex] (r) to[bend left=40] (c);
      \draw[-latex] (c) to[bend left=40] (b);
      \draw[-latex] (b) to[bend left=40] (a);
      \draw[-latex] (a) to[bend left=40] (l);
      \node[above right] at (b) {\small\(\lambda\)};
      \node[above right=2pt] at \weight{-3}{1.5} {\small\(E_{1 2}\)};
      \node[below left=2pt]  at \weight{-3}{1.5} {\small\(E_{2 1}\)};
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

In general, we find\dots

\begin{proposition}
  Given \(i < j\), the subalgebra \(\mathfrak{s}_{i j} = K \langle E_{i j},
  E_{j i}, [E_{i j}, E_{j i}] \rangle\) is isomorphic to
  \(\mathfrak{sl}_2(K)\). In addition, given a weight \(\lambda \in
  \mathfrak{h}^*\) of \(M\), the space
  \[
    N = \bigoplus_{k \in \mathbb{Z}} M_{\lambda - k (\epsilon_i - \epsilon_j)}
  \]
  is invariant under the action of \(\mathfrak{s}_{i j}\) and
  \[
    M_{\lambda - k (\epsilon_i - \epsilon_j)}
    = N_{\lambda([E_{i j}, E_{j i}]) - 2k}
  \]
\end{proposition}

\begin{proof}
  In effect, if \(i \ne k \ne j\) then \(\mathfrak{s}_{i j}\) is the subalgebra
  of matrices whose \(k\)-th row and \(k\)-th column are nil. For instance, if
  \(i = 1\) and \(j = 3\) then
  \[
    \mathfrak{s}_{1 3}
    = \begin{pmatrix} K & 0 & K \\ 0 & 0 & 0 \\ K & 0 & K \end{pmatrix}
      \cap \mathfrak{sl}_3(K)
  \]

  In this case, the map
  \begin{align*}
    \mathfrak{s}_{1 3} & \to \mathfrak{sl}_2(K) \\
    \begin{pmatrix} a & 0 & b \\ 0 & 0 & 0 \\ c & 0 & -a \end{pmatrix}
    & \mapsto
    \begin{pmatrix}
                  a &    \tm{topA}{0} &              b \\
      \tm{leftA}{0} &               0 & \tm{rightA}{0} \\
                  c & \tm{bottomA}{0} &             -a
    \end{pmatrix}
    = \begin{pmatrix} a & b \\ c & -a \end{pmatrix}
    \DrawVLine[black]{topA}{bottomA}
    \DrawHLine[black]{leftA}{rightA}
  \end{align*}
  is an isomorphism of Lie algebras. In general, the map
  \begin{align*}
    \mathfrak{s}_{i j} & \to     \mathfrak{sl}_2(K) \\
    E_{i j}            & \mapsto e                  \\
    E_{j i}            & \mapsto f                  \\
    [E_{i j}, E_{j i}] & \mapsto h
  \end{align*}
  which ``erases the \(k\)-th row and the \(k\)-th column'' of a matrix is an
  isomorphism.

  To see that \(N\) is invariant under the action of \(\mathfrak{s}_{i j}\), it
  suffices to notice \(E_{i j}\) and \(E_{j i}\) map \(m \in M_{\lambda - k
  (\epsilon_i - \epsilon_j)}\) to \(E_{i j} \cdot m \in M_{\lambda - (k - 1) (\epsilon_i -
  \epsilon_j)}\) and \(E_{j i} \cdot m \in M_{\lambda - (k + 1) (\epsilon_i -
  \epsilon_j)}\), respectively. Moreover,
  \[
    (\lambda - k (\epsilon_i - \epsilon_j))([E_{i j}, E_{j i}])
    = \lambda([E_{i j}, E_{j i}]) - k (1 - (-1))
    = \lambda([E_{i j}, E_{j i}]) - 2 k,
  \]
  which goes to show \(M_{\lambda - k (\epsilon_i - \epsilon_j)} \subset
  N_{\lambda([E_{i j}, E_{j i}]) - 2k}\). On the other hand, if we suppose \(0
  < \dim M_{\lambda - k (\epsilon_i - \epsilon_j)} < \dim N_{\lambda([E_{i j}, E_{j
  i}]) - 2 k}\) for some \(k\) we arrive at
  \[
    \dim N
    = \sum_k \dim M_{\lambda - k (\epsilon_i - \epsilon_j)}
    < \sum_k \dim N_{\lambda([E_{i j}, E_{j i}]) - 2k}
    = \dim N,
  \]
  a contradiction.
\end{proof}

As a first consequence of this, we show\dots

\begin{definition}\index{weights!weight lattice}
  The lattice \(P = \mathbb{Z} \langle \epsilon_1, \epsilon_2, \epsilon_3 \rangle\)
  is called \emph{the weight lattice of \(\mathfrak{sl}_3(K)\)}.
\end{definition}

\begin{corollary}\label{thm:sl3-weights-fit-in-weight-lattice}
  Every weight \(\lambda\) of \(M\) lies in the weight lattice \(P\).
\end{corollary}

\begin{proof}
  It suffices to note \(\lambda([E_{i j}, E_{j i}])\) is an eigenvalue of \(h\)
  in a finite-dimensional \(\mathfrak{sl}_2(K)\)-module, so it must be an
  integer. Now since
  \[
    \lambda
    \begin{pmatrix}
      a & 0 & 0     \\
      0 & b & 0     \\
      0 & 0 & -a -b
    \end{pmatrix}
    =
    \lambda
    \begin{pmatrix}
      a & 0 & 0  \\
      0 & 0 & 0  \\
      0 & 0 & -a
    \end{pmatrix}
    +
    \lambda
    \begin{pmatrix}
      0 & 0 & 0  \\
      0 & b & 0  \\
      0 & 0 & -b
    \end{pmatrix}
    =
    a \lambda([E_{1 3}, E_{3 1}]) + b \lambda([E_{2 3}, E_{3 2}]),
  \]
  which is to say \(\lambda = \lambda([E_{1 3}, E_{3 1}]) \epsilon_1 +
  \lambda([E_{2 3}, E_{3 2}]) \epsilon_2 \in P\).
\end{proof}

There is a clear parallel between the case of \(\mathfrak{sl}_3(K)\) and that
of \(\mathfrak{sl}_2(K)\), where we observed that the eigenvalues of the action
of \(h\) all lied in the lattice \(P = \mathbb{Z}\) and were congruent modulo
the sublattice \(Q = 2 \mathbb{Z}\).

Among other things, this last result goes to show that the diagrams we have
been drawing are in fact consistent with the theory we have developed. Namely,
since all weights lie in the rational span of \(\{\epsilon_1, \epsilon_2,
\epsilon_3\}\), we may as well draw them in the Cartesian plane. In fact, the
attentive reader may notice that \(\kappa(E_{1 2}, E_{2 3}) = - \sfrac{1}{2}\),
so that the angle -- with respect to the Killing form \(\kappa\) -- between the
root vectors \(E_{1 2}\) and \(E_{2 3}\) is precisely the same as the angle
between the points representing their roots \(\epsilon_1 - \epsilon_2\) and
\(\epsilon_2 - \epsilon_3\) in the Cartesian plane. Since \(\epsilon_1 - \epsilon_2\)
and \(\epsilon_2 - \epsilon_3\) span \(\mathfrak{h}^*\), this implies the diagrams
we've been drawing are given by an isometry \(\mathbb{Q} P \isoto
\mathbb{Q}^2\), where \(\mathbb{Q} P\) is endowed with the bilinear form
defined by \((\epsilon_i - \epsilon_j, \epsilon_k - \alpha_\ell) \mapsto \kappa(E_{i
j}, E_{k \ell})\) -- which we denote by \(\kappa\) as well.

To proceed we once more refer to the previously established framework: next we
saw that the eigenvalues of \(h\) form an unbroken string of integers symmetric
around \(0\). To prove this we analyzed the right-most eigenvalues of \(h\) and
their eigenvectors, providing an explicit description of the simple
\(\mathfrak{sl}_2(K)\)-modules in terms of these vectors. We may
reproduce these steps in the context of \(\mathfrak{sl}_3(K)\) by fixing a
direction in the plane an considering the weight lying the furthest in that
direction. 

For instance, let's say we fix the direction
\begin{center}
  \begin{tikzpicture}[scale=2]
    \begin{rootSystem}{A}
      \wt[black]{0}{0}
      \wt[black]{-1}{2}
      \wt[black]{-2}{1}
      \wt[black]{1}{1}
      \wt[black]{-1}{-1}
      \wt[black]{2}{-1}
      \wt[black]{1}{-2}
      \draw[-latex, black, thick] \weight{-1.5}{-.5} -- \weight{1.5}{.5};
    \end{rootSystem}
  \end{tikzpicture}
\end{center}
and let \(\lambda\) be the weight lying the furthest in this direction.

Its easy to see what we mean intuitively by looking at the previous picture,
but its precise meaning is still allusive. Formally this means we will choose a
linear functional \(f : \mathbb{Q} P \to \mathbb{Q}\) and pick the weight that
maximizes \(f\). To avoid any ambiguity we should choose the direction of a
line irrational with respect to the root lattice \(Q\) -- for if \(f\) is not
irrational there may be multiple choices the ``weight lying the furthest''
along this direction.

\begin{definition}
  We say that a root \(\alpha\) is positive if \(f(\alpha) > 0\) -- i.e. if it
  lies to the right of the direction we chose. Otherwise we say \(\alpha\) is
  negative. Notice that \(f(\alpha) \ne 0\) since by definition \(\alpha \ne
  0\) and \(f\) is irrational with respect to the lattice \(Q\).
\end{definition}

The next observation we make is that all others weights of \(M\) must lie in a
sort of \(\frac{1}{3}\)-cone with apex at \(\lambda\), as shown in
\begin{center}
  \begin{tikzpicture}
    \AutoSizeWeightLatticefalse
    \begin{rootSystem}{A}
      \weightLattice{3}
      \fill[gray!50,opacity=.2] (hex cs:x=5,y=-7) -- (hex cs:x=1,y=1) --
      (hex cs:x=-7,y=5) arc (150:270:{7*\weightLength});
      \draw[black, thick] (hex cs:x=5,y=-7) -- (hex cs:x=1,y=1) --
      (hex cs:x=-7,y=5);
      \filldraw[black] (hex cs:x=1,y=1) circle (1pt);
      \node[above right=-2pt] at (hex cs:x=1,y=1) {\small\(\lambda\)};
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

Indeed, if this is not the case then, by definition, \(\lambda\) is not the
weight placed the furthest in the direction we chose. Given our previous
assertion that the root spaces of \(\mathfrak{sl}_3(K)\) act on the weight
spaces of \(M\) via translation, this implies that \(E_{1 2}\), \(E_{1 3}\) and
\(E_{2 3}\) all annihilate \(M_\lambda\), or otherwise one of \(M_{\lambda +
\epsilon_1 - \epsilon_2}\), \(M_{\lambda + \epsilon_1 - \epsilon_3}\) and \(M_{\lambda
+ \epsilon_2 - \epsilon_3}\) would be nonzero -- which contradicts the hypothesis
that \(\lambda\) lies the furthest in the direction we chose. In other
words\dots

\begin{proposition}\label{thm:sl3-mod-is-highest-weight}
  There is a weight vector \(m \in M\) that is annihilated by all positive root
  spaces of \(\mathfrak{sl}_3(K)\).
\end{proposition}

\begin{proof}
  It suffices to note that the positive roots of \(\mathfrak{sl}_3(K)\) are
  precisely \(\epsilon_1 - \epsilon_2\), \(\epsilon_1 - \epsilon_3\) and \(\epsilon_2 -
  \epsilon_3\), with root vectors \(E_{1 2}\), \(E_{1 3}\) and \(E_{2 3}\),
  respectively.
\end{proof}

\index{weights!highest weight}
We call \(\lambda\) \emph{the highest weight of \(M\)}, and we call any nonzero
\(m \in M_\lambda\) \emph{a highest weight vector}. Going back to the case of
\(\mathfrak{sl}_2(K)\), we then constructed an explicit basis for our simple
module in terms of a highest weight vector, which allowed us to provide an
explicit description of the action of \(\mathfrak{sl}_2(K)\) in terms of its
standard basis, and finally we concluded that the eigenvalues of \(h\) must be
symmetrical around \(0\). An analogous procedure could be implemented for
\(\mathfrak{sl}_3(K)\) -- and indeed that's what we will do later down the line
-- but instead we would like to focus on the problem of finding the weights of
\(M\) in the first place.

We will start out by trying to understand the weights in the boundary of
previously drawn cone. As we have just seen, we can get to other weight spaces
from \(M_\lambda\) by successively applying \(E_{2 1}\).
\begin{center}
  \begin{tikzpicture}
    \begin{rootSystem}{A}
      \node at \weight{3}{1}  (a) {};
      \node at \weight{1}{2}  (b) {};
      \node at \weight{-1}{3} (c) {};
      \node at \weight{-3}{4} (d) {};
      \node at \weight{-5}{5} (e) {};
      \draw \weight{3}{1} -- \weight{-4}{4.5};
      \draw[dotted] \weight{-4}{4.5} -- \weight{-5}{5};
      \foreach \i in {1,...,4}{\wt[black]{5-2*\i}{\i}}
      \node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\lambda\)};
      \draw[-latex] (a) to[bend left=40] (b);
      \draw[-latex] (b) to[bend left=40] (c);
      \draw[-latex] (c) to[bend left=40] (d);
      \draw[-latex] (d) to[bend left=40] (e);
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

Notice that \(\lambda([E_{1 2}, E_{2 1}]) \in \mathbb{Z}\) is the right-most
eigenvalue of the \(\mathfrak{sl}_2(K)\)-module \(\bigoplus_{k \in \mathbb{Z}}
M_{\lambda - k (\epsilon_1 - \epsilon_2)}\). In particular, \(\lambda([E_{1 2},
E_{2 1}])\) must be positive. In addition, since the eigenspace of the
eigenvalue \(\lambda([E_{1 2}, E_{2 1}]) - 2k\) of the action of \(h\) on
\(\bigoplus_{k \in \mathbb{N}} M_{\lambda - k (\epsilon_1 - \epsilon_2)}\) is
\(M_{\lambda - k (\epsilon_1 - \epsilon_2)}\), the weights of \(M\) appearing the
string \(\lambda, \lambda + (\epsilon_1 - \epsilon_2), \ldots, \lambda + k
(\epsilon_1 - \epsilon_2), \ldots\) must be symmetric with respect to the line
\(\kappa(\epsilon_1 - \epsilon_2, \alpha) =  0\). The picture is thus
\begin{center}
  \begin{tikzpicture}
    \AutoSizeWeightLatticefalse
    \begin{rootSystem}{A}
      \setlength{\weightRadius}{2pt}
      \weightLattice{4}
      \draw[thick] \weight{3}{1} -- \weight{-3}{4};
      \wt[black]{0}{0}
      \node[above left] at \weight{0}{0} {\small\(0\)};
      \foreach \i in {1,...,4}{\wt[black]{5-2*\i}{\i}}
      \node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\lambda\)};
      \draw[very thick] \weight{0}{-4} -- \weight{0}{4}
      node[above]{\small\(\kappa(\epsilon_1 - \epsilon_2, \alpha) = 0\)};
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

We could apply this same argument to the subspace \(\bigoplus_k M_{\lambda - k
(\epsilon_2 - \epsilon_3)}\), so that the weights in this subspace must be
symmetric with respect to the line \(\kappa(\epsilon_2 - \epsilon_3, \alpha) = 0\).
The picture is now
\begin{center}
  \begin{tikzpicture}
    \AutoSizeWeightLatticefalse
    \begin{rootSystem}{A}
      \setlength{\weightRadius}{2pt}
      \weightLattice{4}
      \draw[thick] \weight{3}{1} -- \weight{-3}{4};
      \draw[thick] \weight{3}{1} -- \weight{4}{-1};
      \wt[black]{0}{0}
      \wt[black]{4}{-1}
      \node[above left] at \weight{0}{0} {\small\(0\)};
      \foreach \i in {1,...,4}{\wt[black]{5-2*\i}{\i}}
      \node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\lambda\)};
      \draw[very thick] \weight{0}{-4} -- \weight{0}{4}
      node[above]{\small\(\kappa(\epsilon_1 - \epsilon_2, \alpha) = 0\)};
      \draw[very thick] \weight{-4}{0} -- \weight{4}{0}
      node[right]{\small\(\kappa(\epsilon_2 - \epsilon_3, \alpha) = 0\)};
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

Needless to say, we could keep applying this method to the weights at the ends
of our string, arriving at
\begin{center}
  \begin{tikzpicture}
    \AutoSizeWeightLatticefalse
    \begin{rootSystem}{A}
      \setlength{\weightRadius}{2pt}
      \weightLattice{5}
      \draw[thick] \weight{3}{1} -- \weight{-3}{4};
      \draw[thick] \weight{3}{1} -- \weight{4}{-1};
      \draw[thick] \weight{-3}{4} -- \weight{-4}{3};
      \draw[thick] \weight{-4}{3} -- \weight{-1}{-3};
      \draw[thick] \weight{1}{-4} -- \weight{4}{-1};
      \draw[thick] \weight{-1}{-3} -- \weight{1}{-4};
      \wt[black]{-4}{3}
      \wt[black]{-3}{1}
      \wt[black]{-2}{-1}
      \wt[black]{-1}{-3}
      \wt[black]{1}{-4}
      \wt[black]{2}{-3}
      \wt[black]{3}{-2}
      \wt[black]{4}{-1}
      \foreach \i in {1,...,4}{\wt[black]{5-2*\i}{\i}}
      \node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\lambda\)};
      \draw[very thick] \weight{-5}{5} -- \weight{5}{-5};
      \draw[very thick] \weight{0}{-5} -- \weight{0}{5};
      \draw[very thick] \weight{-5}{0} -- \weight{5}{0};
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

We claim all dots \(\mu\) lying inside the hexagon we have drawn must also be
weights -- i.e. \(M_\mu \ne 0\). Indeed, by applying the same argument to an
arbitrary weight \(\nu\) in the boundary of the hexagon we get a
\(\mathfrak{sl}_2(K)\)-module whose weights correspond to weights of \(M\)
lying in a string inside the hexagon, and whose right-most weight is precisely
the weight of \(M\) we started with.
\begin{center}
  \begin{tikzpicture}
    \AutoSizeWeightLatticefalse
    \begin{rootSystem}{A}
      \setlength{\weightRadius}{2pt}
      \weightLattice{5}
      \draw[thick] \weight{3}{1}   -- \weight{-3}{4};
      \draw[thick] \weight{3}{1}   -- \weight{4}{-1};
      \draw[thick] \weight{-3}{4}  -- \weight{-4}{3};
      \draw[thick] \weight{-4}{3}  -- \weight{-1}{-3};
      \draw[thick] \weight{1}{-4}  -- \weight{4}{-1};
      \draw[thick] \weight{-1}{-3} -- \weight{1}{-4};
      \wt[black]{-4}{3}
      \wt[black]{-3}{1}
      \wt[black]{-2}{-1}
      \wt[black]{-1}{-3}
      \wt[black]{1}{-4}
      \wt[black]{2}{-3}
      \wt[black]{3}{-2}
      \wt[black]{4}{-1}
      \foreach \i in {1,...,4}{\wt[black]{5-2*\i}{\i}}
      \node[above right=-2pt] at \weight{1}{2} {\small\(\nu\)};
      \node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\lambda\)};
      \draw[very thick] \weight{-5}{5} -- \weight{5}{-5};
      \draw[very thick] \weight{0}{-5} -- \weight{0}{5};
      \draw[very thick] \weight{-5}{0} -- \weight{5}{0};
      \draw[dashed, thick] \weight{1}{2} -- \weight{-2}{-1};
      \wt[black]{1}{2}
      \wt[black]{-2}{-1}
      \wt[black]{0}{1}
      \wt[black]{-1}{0}
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

By construction, \(\nu\) corresponds to the right-most weight of a
\(\mathfrak{sl}_2(K)\)-module, so that all dots lying on the dashed string must
occur in \(\mathfrak{sl}_2(K)\)-module. Hence they must also be weights of
\(M\). The final picture is thus
\begin{center}
  \begin{tikzpicture}
    \AutoSizeWeightLatticefalse
    \begin{rootSystem}{A}
      \setlength{\weightRadius}{2pt}
      \weightLattice{5}
      \draw[thick] \weight{3}{1} -- \weight{-3}{4};
      \draw[thick] \weight{3}{1} -- \weight{4}{-1};
      \draw[thick] \weight{-3}{4} -- \weight{-4}{3};
      \draw[thick] \weight{-4}{3} -- \weight{-1}{-3};
      \draw[thick] \weight{1}{-4} -- \weight{4}{-1};
      \draw[thick] \weight{-1}{-3} -- \weight{1}{-4};
      \wt[black]{-4}{3}
      \wt[black]{-3}{1}
      \wt[black]{-2}{-1}
      \wt[black]{-1}{-3}
      \wt[black]{1}{-4}
      \wt[black]{2}{-3}
      \wt[black]{3}{-2}
      \wt[black]{4}{-1}
      \foreach \i in {1,...,4}{\wt[black]{5-2*\i}{\i}}
      \node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\lambda\)};
      \draw[very thick] \weight{-5}{5} -- \weight{5}{-5};
      \draw[very thick] \weight{0}{-5} -- \weight{0}{5};
      \draw[very thick] \weight{-5}{0} -- \weight{5}{0};
      \wt[black]{-2}{2}
      \wt[black]{0}{1}
      \wt[black]{-1}{0}
      \wt[black]{0}{-2}
      \wt[black]{1}{-1}
      \wt[black]{2}{0}
    \end{rootSystem}
  \end{tikzpicture}
\end{center}

\index{weights!weight diagrams}
This final picture is known as \emph{the weight diagram of \(M\)}. Finally\dots

\begin{theorem}\label{thm:sl3-irr-weights-class}
  The weights of \(M\) are precisely the elements of the weight lattice \(P\)
  congruent to \(\lambda\) module the sublattice \(Q\) and lying inside hexagon
  with vertices the images of \(\lambda\) under the group generated by
  reflections across the lines \(\kappa(\epsilon_i - \epsilon_j, \alpha) = 0\).
\end{theorem}

Having found all of the weights of \(M\), the only thing we are missing is an
existence and uniqueness theorem analogous to
Theorem~\ref{thm:sl2-exist-unique}. It is clear from the symmetries of the
locus of weights found in Theorem~\ref{thm:sl3-irr-weights-class} that if
\(\lambda \in P\) is the highest weight of some finite-dimensional simple
\(\mathfrak{sl}_3(K)\)-module \(M\) then \(\lambda\) lies in the cone
\(\mathbb{N} \langle \epsilon_1, - \epsilon_3 \rangle\). What's perhaps more
surprising is the fact that this condition is sufficient for the existence of
such a \(M\). In other words, our next goal is establishing\dots

\begin{definition}\index{weights!dominant weight}
  An element \(\lambda \in P\) is called \emph{dominant} if it lies in the cone
  \(\mathbb{N} \langle \epsilon_1, - \epsilon_3 \rangle\).
\end{definition}

\begin{theorem}\label{thm:sl3-existence-uniqueness}
  For each dominant \(\lambda \in P\), there exists precisely one
  finite-dimensional simple \(\mathfrak{sl}_3(K)\)-module \(M\) whose highest
  weight is \(\lambda\).
\end{theorem}

To proceed further we once again refer to the approach we employed in the case
of \(\mathfrak{sl}_2(K)\): next we showed in
Proposition~\ref{thm:basis-of-irr-rep} that any simple
\(\mathfrak{sl}_2(K)\)-module is spanned by the images of its highest weight
vector under \(f\). A more abstract way of putting it is to say that a simple
\(\mathfrak{sl}_2(K)\)-module \(M\) of is spanned by the images of its highest
weight vector under successive applications of the action of half of the root
spaces of \(\mathfrak{sl}_2(K)\). The advantage of this alternative formulation
is, of course, that the same holds for \(\mathfrak{sl}_3(K)\).
Specifically\dots

\begin{proposition}\label{thm:sl3-positive-roots-span-all-irr-rep}
  Given a simple \(\mathfrak{sl}_3(K)\)-module \(M\) and a highest weight
  vector \(m \in M\), \(M\) is spanned by the images of \(m\) under successive
  applications of \(E_{2 1}\), \(E_{3 1}\) and \(E_{3 2}\).
\end{proposition}

\begin{proof}
  Given the fact \(M\) is simple, it suffices to show that the subspace \(N\)
  spanned by successive applications of \(E_{2 1}\), \(E_{3 1}\) and \(E_{3
  2}\) to \(m\) is stable under the action of \(\mathfrak{sl}_3(K)\). In
  addition, since \([E_{2 1}, E_{3 1}] = [E_{3 1}, E_{3 2}] = 0\) and \([E_{2
  1}, E_{3 2}] = - E_{3 1}\), all successive product of \(E_{2 1}\), \(E_{3
  1}\) and \(E_{3 2}\) in \(\mathcal{U}(\mathfrak{sl}_3(K))\) can be written as
  \(E_{2 1}^a E_{3 1}^b E_{3 1}^c\) for some \(a\), \(b\) and \(c\), so that
  \(N\) is spanned by the elements \(E_{2 1}^a E_{3 1}^b E_{3 1}^c \cdot m\).

  Recall that \(E_{i j}\) maps \(M_\mu\) to \(M_{\mu + \epsilon_i - \epsilon_j}\).
  In particular, \(E_{2 1}^a E_{3 1}^b E_{3 1}^c \cdot m \in M_{\lambda - a
  (\epsilon_1 - \epsilon_2) - b (\epsilon_1 - \epsilon_3) - c (\epsilon_2 - \epsilon_3)}\).
  In other words,
  \[
    H E_{2 1}^a E_{3 1}^b E_{3 1}^c \cdot m
    = (\lambda - a (\epsilon_1 - \epsilon_2)
               - b (\epsilon_1 - \epsilon_3)
               - c (\epsilon_2 - \epsilon_3))(H)
      E_{2 1}^a E_{3 1}^b E_{3 1}^c \cdot m
      \in N
  \]
  for all \(H \in \mathfrak{h}\) and \(N\) is stable under the action of
  \(\mathfrak{h}\). On the other hand, \(N\) is clearly stable under the action
  of \(E_{2 1}\), \(E_{3 1}\) and \(E_{3 2}\). All it is left is to show \(N\)
  is stable under the action of \(E_{1 2}\), \(E_{1 3}\) and \(E_{2 3}\).

  We begin by analyzing the case of \(E_{1 2}\). We have
  \[
    \begin{split}
      E_{1 2} E_{2 1}^a E_{3 1}^b E_{3 2}^c \cdot m
      & = ([E_{1 2}, E_{2 1}] + E_{2 1} E_{1 2})
          E_{2 1}^{a - 1} E_{3 1}^b E_{3 2}^c \cdot m \\
      & = E_{2 1} ([E_{1 2}, E_{2 1}] + E_{2 1} E_{1 2})
          E_{2 1}^{a - 2} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \phantom{=} \; +
          (\lambda - (a - 1) (\epsilon_1 - \epsilon_2)
                   - b (\epsilon_1 - \epsilon_3)
                   - c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}])
          E_{2 1}^{a - 1} E_{3 1}^b E_{3 2}^c \cdot m \\
      & = E_{2 1}^2 ([E_{1 2}, E_{2 1}] + E_{2 1} E_{1 2})
          E_{2 1}^{a - 3} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \phantom{=} \; +
          (\lambda - (a - 1) (\epsilon_1 - \epsilon_2)
                   - b (\epsilon_1 - \epsilon_3)
                   - c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}])
          E_{2 1}^{a - 1} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \phantom{=} \; +
        (\lambda - (a - 2) (\epsilon_1 - \epsilon_2)
                   - b (\epsilon_1 - \epsilon_3)
                   - c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}])
          E_{2 1}^{a - 2} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \; \; \vdots \\
      & = E_{2 1}^a E_{1 2} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \phantom{=} \; +
          (\lambda - (a - 1) (\epsilon_1 - \epsilon_2)
                   - b (\epsilon_1 - \epsilon_3)
                   - c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}])
          E_{2 1}^{a - 1} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \phantom{=} \; +
        (\lambda - (a - 2) (\epsilon_1 - \epsilon_2)
                   - b (\epsilon_1 - \epsilon_3)
                   - c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}])
          E_{2 1}^{a - 2} E_{3 1}^b E_{3 2}^c \cdot m \\
      & \phantom{=} \; \; \, \vdots \\
      & \phantom{=} \; +
        (\lambda - (a - a) (\epsilon_1 - \epsilon_2)
                   - b (\epsilon_1 - \epsilon_3)
                   - c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}])
          E_{2 1}^{a - a} E_{3 1}^b E_{3 2}^c \cdot m \\
    \end{split}
  \]

  Since \((\lambda - (a - k) (\epsilon_1 - \epsilon_2) - b (\epsilon_1 - \epsilon_3) -
  c (\epsilon_2 - \epsilon_3)) ([E_{1 2}, E_{2 1}]) E_{2 1}^{a - k} E_{3 1}^b
  E_{3 2}^c \cdot m \in N\) for all \(k\), it suffices to show \(E_{2 1}^a E_{1
  2} E_{3 1}^b E_{3 2}^c \cdot m \in N\). But
  \[
    \begin{split}
      E_{1 2} E_{3 1}^b
      & = (E_{3 1} E_{1 2} - E_{3 2}) E_{3 1}^{b - 1} \\
      & = E_{3 1} E_{1 2} E_{3 1}^{b - 1}
        - E_{3 1} E_{3 2} E_{3 1}^{b - 1} \\
      & = E_{3 1} (E_{3 1} E_{1 2} - E_{3 2}) E_{3 1}^{b - 2}
        - E_{3 2} E_{3 1}^b \\
      & \; \; \vdots \\
      & = E_{3 1}^b  E_{1 2} - b E_{3 2} E_{3 1}^b \\
    \end{split},
  \]
  given \([E_{1 2}, E_{3 1}] = - E_{3 2}\) and \([E_{3 2}, E_{3 1}] = 0\).
  It then follows from the fact \(E_{1 2} \cdot m = 0\) that
  \[
    E_{2 1}^a E_{1 2} E_{3 1}^b E_{3 2}^c \cdot m
    = E_{2 1}^a E_{3 1}^b E_{3 2}^c E_{1 2} \cdot m
    - b E_{2 1}^a E_{3 1}^b E_{3 2}^{c + 1} \cdot m
    = - b E_{2 1}^a E_{3 1}^b E_{3 2}^{c + 1} \cdot m \in N,
  \]
  given that \(E_{1 2}\) and \(E_{3 2}\) commute. Hence \(E_{1 2} \cdot (E_{2
  1}^a E_{3 1}^b E_{3 2}^c \cdot m) \in N\). Similarly,
  \[
    E_{1 3} \cdot (E_{2 1}^a E_{3 1}^b E_{3 2}^c \cdot m),
    E_{2 3} \cdot (E_{2 1}^a E_{3 1}^b E_{3 2}^c \cdot m) \in N
  \]
\end{proof}

The same argument also goes to show\dots

\begin{corollary}\label{thm:irr-component-of-high-vec}
  Given a finite-dimensional \(\mathfrak{sl}_3(K)\)-module \(M\) with highest
  weight \(\lambda\) and \(m \in M_\lambda\), the subspace spanned by
  successive applications of \(E_{2 1}\), \(E_{3 1}\) and \(E_{3 2}\) to \(m\)
  is a simple submodule whose highest weight is \(\lambda\).
\end{corollary}

This is very interesting to us since it implies that finding \emph{any}
finite-dimensional module whose highest weight is \(\lambda\) is enough for
establishing the ``existence'' part of
Theorem~\ref{thm:sl3-existence-uniqueness}. Moreover, constructing such a
module turns out to be quite simple.

\begin{proof}[Proof of existence]
  Take \(\lambda = k \epsilon_1 - \ell \epsilon_3 \in P\) with \(k, \ell \ge 0\),
  so that \(\lambda\) is dominant. Consider the natural
  \(\mathfrak{sl}_3(K)\)-module \(K^3\). We claim that the highest weight of
  \(\operatorname{Sym}^k K^3 \otimes \operatorname{Sym}^\ell (K^3)^*\) is
  \(\lambda\).

  First of all, notice that the weight vector of \(K^3\) are the canonical
  basis elements \(e_1\), \(e_2\) and \(e_3\), whose corresponding weights are
  \(\epsilon_1\), \(\epsilon_2\) and \(\epsilon_3\) respectively. Hence the weight
  diagram of \(K^3\) is
  \begin{center}
    \begin{tikzpicture}[scale=2]
      \AutoSizeWeightLatticefalse
      \begin{rootSystem}{A}
        \weightLattice{2}
        \wt[black]{1}{0}
        \wt[black]{-1}{1}
        \wt[black]{0}{-1}
        \node[right] at \weight{1}{0}  {$\epsilon_1$};
        \node[above left] at \weight{-1}{1} {$\epsilon_2$};
        \node[below left] at \weight{0}{-1} {$\epsilon_3$};
      \end{rootSystem}
    \end{tikzpicture}
  \end{center}
  and \(\epsilon_1\) is the highest weight of \(K^3\).

  On the one hand, if \(\{f_1, f_2, f_3\}\) is the dual basis for \(\{e_1, e_2,
  e_3\}\) then \(H \cdot f_i = - \epsilon_i(H) f_i\) for each \(H \in
  \mathfrak{h}\), so that the weights of \((K^3)^*\) are precisely the
  opposites of the weights of \(K^3\). In other words,
  \begin{center}
    \begin{tikzpicture}[scale=2]
      \AutoSizeWeightLatticefalse
      \begin{rootSystem}{A}
        \weightLattice{2}
        \wt[black]{-1}{0}
        \wt[black]{1}{-1}
        \wt[black]{0}{1}
        \node[left]        at \weight{-1}{0} {$-\epsilon_1$};
        \node[below right] at \weight{1}{-1} {$-\epsilon_2$};
        \node[above right] at \weight{0}{1}  {$-\epsilon_3$};
      \end{rootSystem}
    \end{tikzpicture}
  \end{center}
  is the weight diagram of \((K^3)^*\) and \(\epsilon_3\) is the highest weight
  of \((K^3)^*\).

  On the other hand if we fix two \(\mathfrak{sl}_3(K)\)-modules \(N\) and
  \(L\), by computing
  \[
    \begin{split}
      H \cdot (n \otimes l)
      & = H \cdot n \otimes l + n \otimes H \cdot l \\
      & = \lambda(H) n \otimes l + n \otimes \mu(H) l \\
      & = (\lambda + \mu)(H) \, (n \otimes l)
    \end{split}
  \]
  for each \(H \in \mathfrak{h}\), \(n \in N_\lambda\) and \(l \in L_\mu\) we
  can see that the weights of \(N \otimes L\) are precisely the sums of the
  weights of \(N\) with the weights of \(L\).

  This implies that the highest weights of \(\operatorname{Sym}^k K^3\) and
  \(\operatorname{Sym}^\ell (K^3)^*\) are \(k \epsilon_1\) and \(- \ell
  \epsilon_3\) respectively -- with highest weight vectors \(e_1^k\) and
  \(f_3^\ell\). Furthermore, by the same token the highest weight of
  \(\operatorname{Sym}^k K^3 \otimes \operatorname{Sym}^\ell (K^3)^*\) must be
  \(\lambda = k e_1 - \ell e_3\) -- with highest weight vector \(e_1^k \otimes
  f_3^\ell\).
\end{proof}

The ``uniqueness'' part of Theorem~\ref{thm:sl3-existence-uniqueness} is even
simpler than that.

\begin{proof}[Proof of uniqueness]
  Let \(M\) and \(N\) be two simple \(\mathfrak{sl}_3(K)\)-modules with highest
  weight \(\lambda\). By Theorem~\ref{thm:sl3-irr-weights-class}, the weights
  of \(M\) are precisely the same as those of \(N\).

  Now by computing
  \[
    H \cdot (m + n)
    = H \cdot m + H \cdot n
    = \mu(H) m + \mu(H) n
    = \mu(H) (m + n)
  \]
  for each \(H \in \mathfrak{h}\), \(m \in M_\mu\) and \(n \in N_\mu\), we can
  see that the weights of \(M \oplus N\) are same as those of \(M\) and \(N\).
  Hence the highest weight of \(M \oplus N\) is \(\lambda\) -- with highest
  weight vectors given by the sum of highest weight vectors of \(M\) and \(N\).

  Fix some \(m \in M_\lambda\) and \(n \in N_\lambda\) and consider the
  submodule \(L = \mathcal{U}(\mathfrak{sl}_3(K)) \cdot m + n \subset M \oplus
  N\) generated by \(m + n\). Since \(m + n\) is a highest weight of \(M \oplus
  N\), it follows from corollary~\ref{thm:irr-component-of-high-vec} that \(L\)
  is simple. The projection maps \(\pi_1 : L \to M\), \(\pi_2 : L \to N\),
  being nonzero homomorphism between simple \(\mathfrak{sl}_3(K)\)-modules,
  must be isomorphism. Finally,
  \[
    M \cong L \cong N
  \]
\end{proof}

We have been very successful in our pursue for a classification of the simple
modules of \(\mathfrak{sl}_2(K)\) and \(\mathfrak{sl}_3(K)\), but so far we
have mostly postponed the discussion on the motivation behind our methods. In
particular, we did not explain why we chose \(h\) and \(\mathfrak{h}\), and
neither why we chose to look at their eigenvalues. Apart from the obvious fact
we already knew it would work a priory, why did we do all that? In the
following chapter we will attempt to answer this question by looking at what we
did in the last chapter through more abstract lenses and studying the
representations of an arbitrary finite-dimensional semisimple Lie algebra
\(\mathfrak{g}\).
frak{g} = \mathfrak{h} \oplus \bigoplus_\alpha \mathfrak{g}_\alpha
  \]

  We furthermore claim that \(\mathfrak{h} = \mathfrak{g}_0\) is orthogonal to
  \(\mathfrak{g}_\alpha\) with respect to \(B\) for any \(\alpha \ne 0\).
  Indeed, given \(X \in \mathfrak{g}_\alpha\) and \(H_1, H_2 \in \mathfrak{h}\)
  with \(\alpha(H_1) \ne 0\) we have
  \[
    \alpha(H_1) \cdot B(X, H_2)
    = B([H_1, X], H_2)
    = - B([X, H_1], H_2)
    = - B(X, [H_1, H_2])
    = 0
  \]

  Hence the non-degeneracy of \(B\) implies the non-degeneracy of its
  restriction.
\end{proof}

We should point out that the restriction of \(B\) to \(\mathfrak{h}\) is
\emph{not} the Killing form of \(\mathfrak{h}\). In fact, since
\(\mathfrak{h}\) is Abelian, its Killing form is identically zero -- which is
hardly ever a non-degenerate form.

\begin{note}
  Since \(B\) induces an isomorphism \(\mathfrak{h} \isoto \mathfrak{h}^*\), it
  induces a bilinear form \((B(X, \cdot), B(Y, \cdot)) \mapsto B(X, Y)\) in
  \(\mathfrak{h}^*\). We denote this form by \(B\).
\end{note}

We now have most of the necessary tools to reproduce the results of the
previous chapter in a general setting. Let \(\mathfrak{g}\) be a
finite-dimensional semisimple algebra with a Cartan subalgebra \(\mathfrak{h}\)
and let \(V\) be a finite-dimensional irreducible representation of
\(\mathfrak{g}\). We will proceed, as we did before, by generalizing the
results about of the previous two sections in order. By now the pattern should
be starting become clear, so we will mostly omit technical details and proofs
analogous to the ones on the previous sections. Further details can be found in
appendix D of \cite{fulton-harris} and in \cite{humphreys}.

We begin our analysis by remarking that in both \(\mathfrak{sl}_2(K)\) and
\(\mathfrak{sl}_3(K)\), the roots were symmetric about the origin and spanned
all of \(\mathfrak{h}^*\). This turns out to be a general fact, which is a
consequence of the non-degeneracy of the restriction of the Killing form to the
Cartan subalgebra.

\begin{proposition}\label{thm:weights-symmetric-span}
  The eigenvalues \(\alpha\) of the adjoint action of \(\mathfrak{h}\) in
  \(\mathfrak{g}\) are symmetrical about the origin -- i.e. \(- \alpha\) is
  also an eigenvalue -- and they span all of \(\mathfrak{h}^*\).
\end{proposition}

\begin{proof}
  We'll start with the first claim. Let \(\alpha\) and \(\beta\) be two
  eigenvalues of the adjoint action of \(\mathfrak{h}\). Notice
  \([\mathfrak{g}_\alpha, \mathfrak{g}_\beta] \subset \mathfrak{g}_{\alpha +
  \beta}\). Indeed, if \(X \in \mathfrak{g}_\alpha\) and \(Y \in
  \mathfrak{g}_\beta\) then
  \[
    [H [X, Y]]
    = [X, [H, Y]] - [Y, [H, X]]
    = (\alpha + \beta)(H) \cdot [X, Y]
  \]
  for all \(H \in \mathfrak{h}\).

  This implies that if \(\alpha + \beta \ne 0\) then \(\operatorname{ad}(X)
  \operatorname{ad}(Y)\) is nilpotent: if \(Z \in \mathfrak{g}_\gamma\) then
  \[
    (\operatorname{ad}(X) \operatorname{ad}(Y))^n Z
    = [X, [Y, [ \ldots, [X, [Y, Z]]] \ldots ]
    \in \mathfrak{g}_{n \alpha + n \beta + \gamma}
    = 0
  \]
  for \(n\) large enough. In particular, \(B(X, Y) =
  \operatorname{Tr}(\operatorname{ad}(X) \operatorname{ad}(Y)) = 0\). Now if
  \(- \alpha\) is not an eigenvalue we find \(B(X, \mathfrak{g}_\beta) = 0\)
  for all eigenvalues \(\beta\), which contradicts the non-degeneracy of \(B\).
  Hence \(- \alpha\) must be an eigenvalue of the adjoint action of
  \(\mathfrak{h}\).

  For the second statement, note that if the eigenvalues of \(\mathfrak{h}\) do
  not span all of \(\mathfrak{h}^*\) then there is some \(H \in \mathfrak{h}\)
  non-zero such that \(\alpha(H) = 0\) for all eigenvalues \(\alpha\), which is
  to say, \(\operatorname{ad}(H) X = [H, X] = 0\) for all \(X \in
  \mathfrak{g}\). Another way of putting it is to say \(H\) is an element of
  the center \(\mathfrak{z}\) of \(\mathfrak{g}\), which is zero by the
  semisimplicity -- a contradiction.
\end{proof}

Furthermore, as in the case of \(\mathfrak{sl}_2(K)\) and
\(\mathfrak{sl}_3(K)\) one can show\dots

\begin{proposition}\label{thm:root-space-dim-1}
  The eigenspaces \(\mathfrak{g}_\alpha\) are all 1-dimensional.
\end{proposition}

The proof of the first statement of
proposition~\ref{thm:weights-symmetric-span} highlights something interesting:
if we fix some some eigenvalue \(\alpha\) of the adjoint action of
\(\mathfrak{h}\) in \(\mathfrak{g}\) and a eigenvector \(X \in
\mathfrak{g}_\alpha\), then for each \(H \in \mathfrak{h}\) and \(v \in
V_\lambda\) we find
\[
  H (X v)
  = X (H v) + [H, X] v
  = (\lambda + \alpha)(H) \cdot X v
\]
so that \(X\) carries \(v\) to \(V_{\lambda + \alpha}\). We have encountered
this formula twice in this chapter: again, we find \(\mathfrak{g}_\alpha\)
\emph{acts on \(V\) by translating vectors between eigenspaces}. In other
words, if we denote by \(\Delta\) the set of all roots of \(\mathfrak{g}\)
then\dots

\begin{theorem}\label{thm:weights-congruent-mod-root}
  The weights of an irreducible representation \(V\) of \(\mathfrak{g}\) are
  all congruent module the root lattice \(Q = \ZZ \Delta\) of \(\mathfrak{g}\).
\end{theorem}

% TODOO: Turn this into a proper discussion of basis and give the idea of the
% proof of existance of basis?
To proceed further, as in the case of \(\mathfrak{sl}_3(K)\) we have to fix a
direction in \(\mathfrak{h}^*\) -- i.e. we fix a linear function
\(\mathfrak{h}^* \to \QQ\) such that \(Q\) lies outside of its kernel. This
choice induces a partition \(\Delta = \Delta^+ \cup \Delta^-\) of the set of
roots of \(\mathfrak{g}\) and once more we find\dots

\begin{definition}
  The elements of \(\Delta^+\) and \(\Delta^-\) are called \emph{positive} and
  \emph{negative roots}, respectively. The subalgebra \(\mathfrak{b} =
  \mathfrak{h} \oplus \bigoplus_{\alpha \in \Delta^+} \mathfrak{g}_\alpha\) is
  called \emph{the Borel subalgebra associated with \(\mathfrak{h}\)}.
\end{definition}

\begin{theorem}
  There is a weight vector \(v \in V\) that is killed by all positive root
  spaces of \(\mathfrak{g}\).
\end{theorem}

% TODO: Here we may take a weight of maximal height, but why is it unique?
% TODO: We don't really need to talk about height tho, we may simply take a
% weight that maximizes B(gamma, lambda) in QQ
% TODOO: Either way, we need to move this to after the discussion on the
% integrality of weights
\begin{proof}
  It suffices to note that if \(\lambda\) is the weight of \(V\) lying the
  furthest along the direction we chose and \(V_{\lambda + \alpha} \ne 0\) for
  some \(\alpha \in \Delta^+\) then \(\lambda + \alpha\) is a weight that is
  furthest along the direction we chose than \(\lambda\), which contradicts the
  definition of \(\lambda\).
\end{proof}

Accordingly, we call \(\lambda\) \emph{the highest weight of \(V\)}, and we
call any \(v \in V_\lambda\) \emph{a highest weight vector}. The strategy then
is to describe all weight spaces of \(V\) in terms of \(\lambda\) and \(v\), as
in theorem~\ref{thm:sl3-irr-weights-class}, and unsurprisingly we do so by
reproducing the proof of the case of \(\mathfrak{sl}_3(K)\). Namely, we
show\dots

\begin{proposition}\label{thm:distinguished-subalgebra}
  Given a root \(\alpha\) of \(\mathfrak{g}\) the subspace
  \(\mathfrak{s}_\alpha = \mathfrak{g}_\alpha \oplus \mathfrak{g}_{- \alpha}
  \oplus [\mathfrak{g}_\alpha, \mathfrak{g}_{- \alpha}]\) is a subalgebra
  isomorphic to \(\mathfrak{sl}_2(k)\).
\end{proposition}

\begin{corollary}\label{thm:distinguished-subalg-rep}
  For all weights \(\mu\), the subspace
  \[
    V_\mu[\alpha] = \bigoplus_k V_{\mu + k \alpha}
  \]
  is invariant under the action of the subalgebra \(\mathfrak{s}_\alpha\)
  and the weight spaces in this string match the eigenspaces of \(h\).
\end{corollary}

The proof of proposition~\ref{thm:distinguished-subalgebra} is very technical
in nature and we won't include it here, but the idea behind it is simple:
recall that \(\mathfrak{g}_\alpha\) and \(\mathfrak{g}_{- \alpha}\) are both
1-dimensional, so that \(\dim [\mathfrak{g}_\alpha, \mathfrak{g}_{- \alpha}]\)
is at most 1. We check that \([\mathfrak{g}_\alpha, \mathfrak{g}_{- \alpha}]
\ne 0\) and that no generator of \([\mathfrak{g}_\alpha, \mathfrak{g}_{-
\alpha}] \ne 0\) is annihilated by \(\alpha\), so that by adjusting scalars we
can find \(E_\alpha \in \mathfrak{g}_\alpha\) and \(F_\alpha \in
\mathfrak{g}_{- \alpha}\) such that \(H_\alpha = [E_\alpha, F_\alpha]\)
satisfies
\begin{align*}
  [H_\alpha, F_\alpha] & = -2 F_\alpha &
  [H_\alpha, E_\alpha] & =  2 E_\alpha
\end{align*}

The elements \(E_\alpha, F_\alpha \in \mathfrak{g}\) are not uniquely
determined by this condition, but \(H_\alpha\) is. The second statement of
corollary~\ref{thm:distinguished-subalg-rep} imposes a restriction on the
weights of \(V\). Namely, if \(\mu\) is a weight, \(\mu(H_\alpha)\) is an
eigenvalue of \(h\) in some representation of \(\mathfrak{sl}_2(K)\), so
that\dots

\begin{proposition}
  The weights \(\mu\) of an irreducible representation \(V\) of
  \(\mathfrak{g}\) are so that \(\mu(H_\alpha) \in \ZZ\) for each \(\alpha \in
  \Delta\).
\end{proposition}

Once more, the lattice \(P = \{ \lambda \in \mathfrak{h}^* : \lambda(H_\alpha)
\in \ZZ, \forall \alpha \in \Delta \}\) is called \emph{the weight lattice of
\(\mathfrak{g}\)}, and we call the elements of \(P\) \emph{integral}. Finally,
another important consequence of theorem~\ref{thm:distinguished-subalgebra}
is\dots

\begin{corollary}
  If \(\alpha \in \Delta^+\) and \(T_\alpha : \mathfrak{h}^* \to
  \mathfrak{h}^*\) is the reflection in the hyperplane perpendicular to
  \(\alpha\) with respect to the Killing form,
  corollary~\ref{thm:distinguished-subalg-rep} implies that all \(\nu \in P\)
  lying inside the line connecting \(\mu\) and \(T_\alpha \mu\) are weights --
  i.e. \(V_\nu \ne 0\).
\end{corollary}

\begin{proof}
  It suffices to note that \(\nu \in V_\mu[\alpha]\) -- see appendix D of
  \cite{fulton-harris} for further details.
\end{proof}

\begin{definition}
  We refer to the group \(\mathcal{W} = \langle T_\alpha : \alpha \in \Delta^+
  \rangle \subset \operatorname{O}(\mathfrak{h}^*)\) as \emph{the Weyl group of
  \(\mathfrak{g}\)}.
\end{definition}

This is entirely analogous to the situation of \(\mathfrak{sl}_3(K)\), where we
found that the weights of the irreducible representations were symmetric with
respect to the lines \(K \alpha\) with \(B(\alpha_i - \alpha_j, \alpha) = 0\).
Indeed, the same argument leads us to the conclusion\dots

\begin{theorem}\label{thm:irr-weight-class}
  The weights of an irreducible representation \(V\) of \(\mathfrak{g}\) with
  highest weight \(\lambda\) are precisely the elements of the weight lattice
  \(P\) congruent to \(\lambda\) modulo the root lattice \(Q\) lying inside the
  convex hull of the image of \(\lambda\) under the action of the Weyl group
  \(\mathcal{W}\).
\end{theorem}

Now the only thing we are missing for a complete classification is an existence
and uniqueness theorem analogous to theorem~\ref{thm:sl2-exist-unique} and
theorem~\ref{thm:sl3-existence-uniqueness}. Lo and behold\dots

\begin{definition}
  An element \(\lambda\) of \(P\) such that \(\lambda(H_\alpha) \ge 0\) for all
  \(\alpha \in \Delta^+\) is referred to as an \emph{integral dominant weight
  of \(\mathfrak{g}\)}.
\end{definition}

\begin{theorem}\label{thm:dominant-weight-theo}
  For each dominant integral \(\lambda \in P\) there exists precisely one
  irreducible finite-dimensional representation \(V\) of \(\mathfrak{g}\) whose
  highest weight is \(\lambda\).
\end{theorem}

Fix some dominant integral \(\lambda \in P\). The ``uniqueness'' part of the
theorem follows at once from the argument used for \(\mathfrak{sl}_3(K)\). The
``existence'' part is more nuanced. Our first instinct is, of course, to try to
generalize the proof used for \(\mathfrak{sl}_3(K)\). The issue is that our
proof relied heavily on our knowledge of the roots of \(\mathfrak{sl}_3(K)\).
Instead, we need a new strategy for the general setting. To that end, we
introduce a special class of \(\mathfrak{g}\)-modules, known as \emph{Verma
modules}.

\begin{definition}\label{def:verma}
  The \(\mathfrak{g}\)-module \(M(\lambda) =
  \operatorname{Ind}_{\mathfrak{b}}^{\mathfrak{g}} K v^+\), where the action of
  \(\mathfrak{b}\) in \(K v^+\) is given by \(H v^+ = \lambda(H) \cdot v^+\)
  for all \(H \in \mathfrak{h}\) and \(X v^+ = 0\) for \(X \in
  \mathfrak{g}_{\alpha}\), \(\alpha \in \Delta^+\), is called \emph{the Verma
  module of weight \(\lambda\)}
\end{definition}

We should point out that, unlike most representations we've encountered so far,
Verma modules are \emph{highly infinite-dimensional}. Indeed, the dimension of
\(M(\lambda)\) is the same as the codimension of \(\mathcal{U}(\mathfrak{b})\)
in \(\mathcal{U}(\mathfrak{g})\), which is always infinite. Nevertheless,
\(M(\lambda)\) turns out to be quite well behaved. For instance, by
construction \(M(\lambda) = \mathcal{U}(\mathfrak{g}) \cdot v^+\) -- where
\(v^+ = 1 \otimes v^+ \in M(\lambda)\) is as in definition~\ref{def:verma}.
Moreover, we find\dots

\begin{proposition}\label{thm:verma-is-weight-mod}
  The weight spaces decomposition
  \[
    M(\lambda) = \bigoplus_{\mu \in \mathfrak{h}^*} M(\lambda)_\mu
  \]
  holds. Furthermore, \(\dim M(\lambda)_\mu < \infty\) for all \(\mu \in
  \mathfrak{h}^*\) and \(\dim M(\lambda) = 1\). Finally, \(\lambda\) is the
  highest weight of \(M(\lambda)\), with highest weight vector given by \(v^+ =
  1 \otimes v^+ \in M(\lambda)\) as in definition~\ref{def:verma}.
\end{proposition}

\begin{proof}
  The Poincaré-Birkhoff-Witt theorem implies that \(M(\lambda)\) is spanned by
  the vectors \(F_{\alpha_1} F_{\alpha_2} \cdots F_{\alpha_n} v^+\) for
  \(\alpha_i \in \Delta^-\) and \(F_{\alpha_i} \in \mathfrak{g}_{\alpha_i}\) as
  in the proof of proposition~\ref{thm:distinguished-subalgebra}. But
  \[
    \begin{split}
      H F_{\alpha_1} F_{\alpha_2} \cdots F_{\alpha_n} v^+
      & = ([H, F_{\alpha_1}] + F_{\alpha_1} H)
          F_{\alpha_2} \cdots F_{\alpha_n} v^+ \\
      & = \alpha_1(H) \cdot F_{\alpha_1} \cdots F_{\alpha_n} v^+
        + F_{\alpha_1} ([H, F_{\alpha_2}] + F_{\alpha_2} H)
          F_{\alpha_2} \cdots F_{\alpha_n} v^+ \\
      & \;\; \vdots \\
      & = (\alpha_1 + \cdots + \alpha_n)(H) \cdot
          F_{\alpha_1} \cdots F_{\alpha_n} v^+
        + F_{\alpha_1} \cdots F_{\alpha_n} H v^+ \\
      & = (\lambda + \alpha_1 + \cdots + \alpha_n)(H) \cdot
          F_{\alpha_1} \cdots F_{\alpha_n} v^+ \\
      & \therefore F_{\alpha_1} \cdots F_{\alpha_n} v^+
        \in M(\lambda)_{\lambda + \alpha_1 + \cdots + \alpha_n}
    \end{split}
  \]

  Hence \(M(\lambda) \subset \bigoplus_{\mu \in \mathfrak{h}^*}
  M(\lambda)_\mu\), as desired. In fact we have established
  \[
    M(\lambda)
    \subset
    \bigoplus_{\substack{k_i \in \ZZ \\ k_i \ge 0}}
    M(\lambda)_{\lambda + k_1 \cdot \alpha_1 + \cdots + k_n \cdot \alpha_n}
  \]
  where \(\{\alpha_1, \ldots, \alpha_m\} = \Delta^-\), so that all weights of
  \(M(\lambda)\) have the form \(\mu = \lambda + k_1 \cdot \alpha_1 + \cdots +
  k_n \cdot \alpha_n\).

  This already gives us that the weights of \(M(\lambda)\) are bounded by
  \(\lambda\) -- in the sense that no weight of \(M(\lambda)\) is ``higher''
  than \(\lambda\). To see that \(\lambda\) is indeed a weight, we show that
  \(v^+\) is nonzero weight vector. Clearly \(v^+ \in V_\lambda\). The
  Poincaré-Birkhoff-Witt theorem implies
  \[
    M(\lambda)
    \cong \left(\bigoplus_i \mathcal{U}(\mathfrak{b}) \right)
    \otimes_{\mathcal{U}(\mathfrak{b})} K v^+
    \cong \bigoplus_i \mathcal{U}(\mathfrak{b})
    \otimes_{\mathcal{U}(\mathfrak{b})} K v^+
    \cong \bigoplus_i K v^+
    \ne 0
  \]
  as \(\mathcal{U}(\mathfrak{b})\)-modules, so \(v^+ \ne 0\) -- for if this was
  not the case we would find \(M(\lambda) = \mathcal{U}(\mathfrak{g}) \cdot v^+
  = 0\). Hence \(V_\lambda \ne 0\) and therefore \(\lambda\) is the highest
  weight of \(M(\lambda)\), with highest weight vector \(v^+\).

  To see that \(\dim M(\lambda)_\mu < \infty\), simply note that there are only
  finitely many monomials \(F_{\alpha_1}^{k_1} F_{\alpha_2}^{k_2} \cdots
  F_{\alpha_n}^{k_n}\) such that \(\mu = \lambda + k_1 \cdot \alpha_1 + \cdots
  + k_n \cdot \alpha_n\). Since \(M(\lambda)_\mu\) is spanned by the images of
  \(v^+\) under such monomials, we conclude \(\dim M(\lambda) < \infty\). In
  particular, there is a single monomials \(F_{\alpha_1}^{k_1}
  F_{\alpha_2}^{k_2} \cdots F_{\alpha_n}^{k_n}\) such that \(\lambda = \lambda
  + k_1 \cdot \alpha_1 + \cdots + k_n \cdot \alpha_n\) -- which is, of course,
  the monomial where \(k_1 = \cdots = k_n = 0\). Hence \(\dim V_\lambda = 1\).
\end{proof}

\begin{example}\label{ex:sl2-verma}
  If \(\mathfrak{g} = \mathfrak{sl}_2(K)\), then we can take \(\mathfrak{h} = K
  h\) and \(\mathfrak{b} = K e \oplus K h\). If \(\lambda \in
  \mathfrak{h}^*\) is the map \(h \mapsto 2\) then \(M(\lambda) =
  \bigoplus_{k \ge 0} K f^k v^+\), and the action of \(\mathfrak{sl}_2(K)\) in
  \(M(\lambda)\) is given by
  \begin{align*}
    f^{k + 1} v^+ & \overset{e}{\mapsto} (2 - k (k - 1)) f^k v^+ &
    f^{k + 1} v^+ & \overset{f}{\mapsto} f^{k + 2} v^+ &
    f^{k + 1} v^+ & \overset{h}{\mapsto} - 2 k f^{k + 1} v^+ &
  \end{align*}

  In the language of the diagrams used in section~\ref{sec:sl2}, we write
  % TODO: Add a label to the righ of the diagram indicating that the top arrows
  % are the action of e and the bottom arrows are the action of f
  \begin{center}
    \begin{tikzcd}
      \cdots \arrow[bend left=60]{r}{-10}
      & M(\lambda)_{-6} \arrow[bend left=60]{r}{-4} \arrow[bend left=60]{l}{1}
      & M(\lambda)_{-4} \arrow[bend left=60]{r}{0}  \arrow[bend left=60]{l}{1}
      & M(\lambda)_{-2} \arrow[bend left=60]{r}{2}  \arrow[bend left=60]{l}{1}
      & M(\lambda)_0    \arrow[bend left=60]{r}{2}  \arrow[bend left=60]{l}{1}
      & M(\lambda)_2    \arrow[bend left=60]{l}{1}
    \end{tikzcd}
  \end{center}
  where \(M(\lambda)_{2 - 2 k} = K f^k v\). In this case, unlike we have see in
  section~\ref{sec:sl2}, the string of weight spaces to left of the diagram is
  infinite.
\end{example}

What's interesting to us about all this is that we've just constructed a
\(\mathfrak{g}\)-module whose highest weight is \(\lambda\). This is not a
proof of theorem~\ref{thm:dominant-weight-theo}, however, since \(M(\lambda)\)
is neither irreducible nor finite-dimensional. Nevertheless, we can use
\(M(\lambda)\) to construct an irreducible representation of \(\mathfrak{g}\)
whose highest weight is \(\lambda\).

\begin{proposition}\label{thm:max-verma-submod-is-weight}
  Every subrepresentation \(V \subset M(\lambda)\) is the direct sum of its
  weight spaces. In particular, \(M(\lambda)\) has a unique maximal
  subrepresentation \(N(\lambda)\) and a unique irreducible quotient
  \(\sfrac{M(\lambda)}{N(\lambda)}\).
\end{proposition}

\begin{proof}
  Let \(V \subset M(\lambda)\) be a subrepresentation and take any nonzero \(v
  \in V\). Because of proposition~\ref{thm:verma-is-weight-mod}, we know there
  are \(\mu_1, \ldots, \mu_n \in \mathfrak{h}^*\) and nonzero \(v_i \in
  M(\lambda)_{\mu_i}\) such that \(v = v_1 + \cdots + v_n\). We want to show
  \(v_i \in V\) for all \(i\).

  Fix some \(H_2 \in \mathfrak{h}\) such that \(\mu_1(H_2) \ne \mu_2(H_2)\).
  Then
  \[
    v_1
    - \frac{(\mu_3 - \mu_1)(H_2)}{(\mu_2 - \mu_1)(H_2)} v_3
    - \cdots
    - \frac{(\mu_n - \mu_1)(H_2)}{(\mu_2 - \mu_1)(H_2)} v_n
    = \left( 1 - \frac{H_2 - \mu_1(H_2)}{(\mu_2 - \mu_1)(H_2)} \right) v
    \in V
  \]

  Now take \(H_3 \in \mathfrak{h}\) such that \(\mu_1(H_3) \ne \mu_3(H_3)\). By
  applying the same procedure again we get
  \begin{multline*}
    v_1
    -
    \frac{(\mu_4 - \mu_3)(H_3) \cdot (\mu_4 - \mu_1)(H_2)}
         {(\mu_3 - \mu_1)(H_3) \cdot (\mu_2 - \mu_1)(H_2)} v_4
    - \cdots -
    \frac{(\mu_n - \mu_3)(H_3) \cdot (\mu_n - \mu_1)(H_2)}
         {(\mu_3 - \mu_1)(H_3) \cdot (\mu_2 - \mu_1)(H_2)} v_n \\
    =
    \left(1 - \frac{H_3 - \mu_1(H_3)}{(\mu_3 - \mu_1)(H_3)} \right)
    \left(1 - \frac{H_2 - \mu_1(H_2)}{(\mu_2 - \mu_1)(H_2)} \right) v
    \in V
  \end{multline*}

  By applying the same procedure over and over again we can see that \(v_1 = X
  v \in V\) for some \(X \in \mathcal{U}(\mathfrak{g})\). Furthermore, if we
  reproduce all this for \(v_2 + \cdots + v_n = v - v_1 \in V\) we get that
  \(v_2 \in V\). Now by applying the same procedure over and over we find
  \(v_1, \ldots, v_n \in V\). Hence
  \[
    V = \bigoplus_\mu V_\mu = \bigoplus_\mu M(\lambda)_\mu \cap V
  \]

  Since \(M(\lambda) = \mathcal{U}(\mathfrak{g}) \cdot v^+\), \(V\) is a proper
  subrepresentation then \(v^+ \notin V\). Hence any proper submodule lies in
  the sum of weight spaces other than \(M(\lambda)_\lambda\), so the sum
  \(N(\lambda)\) of all such submodules is still proper. In fact, this implies
  \(N(\lambda)\) is the unique maximal subrepresentation of \(M(\lambda)\) and
  \(\sfrac{M(\lambda)}{N(\lambda)}\) is its unique irreducible quotient.
\end{proof}

\begin{example}\label{ex:sl2-verma-quotient}
  If \(\mathfrak{g} = \mathfrak{sl}_2(K)\) and \(\lambda : h \mapsto 2\), we
  can see from example~\ref{ex:sl2-verma} that \(N(\lambda) = \bigoplus_{k \ge
  3} K f^k v^+\), so that \(\sfrac{M(\lambda)}{N(\lambda)}\) is the
  \(3\)-dimensional irreducible representation of \(\mathfrak{sl}_2(K)\) --
  i.e. the finite-dimensional irreducible representation with highest weight
  \(\lambda\) constructed in section~\ref{sec:sl2}.
\end{example}

This last example is particularly interesting to us, since it indicates that
the finite-dimensional irreducible representations of \(\mathfrak{sl}_2(K)\) as
quotients of Verma modules. This is because the quotient
\(\sfrac{M(\lambda)}{N(\lambda)}\) in example~\ref{ex:sl2-verma-quotient}
happened to be finite-dimensional. As it turns out, this is always the case for
semisimple \(\mathfrak{g}\). Namely\dots

\begin{proposition}\label{thm:verma-is-finite-dim}
  If \(\lambda\) is dominant integral then the unique irreducible quotient of
  \(M(\lambda)\) is finite-dimensional.
\end{proposition}

The proof of proposition~\ref{thm:verma-is-finite-dim} is very technical and we
won't include it here, but the idea behind it is to show that the set of
weights of \(\sfrac{M(\lambda)}{N(\lambda)}\) is stable under the natural
action of the Weyl group \(\mathcal{W}\) in \(\mathfrak{h}^*\). One can then
show that the every weight of \(V\) is conjugate to a single dominant integral
weight of \(\sfrac{M(\lambda)}{N(\lambda)}\), and that the set of dominant
integral weights of such irreducible quotient is finite. Since \(W\) is
finitely generated, this implies the set of weights of the unique irreducible
quotient of \(M(\lambda)\) is finite. But each weight space is
finite-dimensional. Hence so is the irreducible quotient.

We refer the reader to \cite[ch. 21]{humphreys} for further details. What we
are really interested in is\dots

\begin{corollary}
  There is a finite-dimensional irreducible \(\mathfrak{g}\)-module \(V\) whose
  highest weight is \(\lambda\).
\end{corollary}

\begin{proof}
  Let \(V = \sfrac{M(\lambda)}{N(\lambda)}\). It suffices to show that its
  highest weight is \(\lambda\). We have already seen that \(v^+ \in
  M(\lambda)_\lambda\) is a highest weight vector. Now since \(v\) lies outside
  of the maximal subrepresentation of \(M(\lambda)\), the projection \(v^+ +
  N(\lambda) \in V\) is nonzero.

  % TODO: Why is V_mu = M(lambda)_mu + N(lambda)? Turn this into a proposition?
  We now claim that \(v^+ + N(\lambda) \in V_\lambda\). Indeed,
  \[
    H (v^+ + N(\lambda))
    = H v^+ + N(\lambda)
    = \lambda(H) \cdot (v^+ + N(\lambda))
  \]
  for all \(H \in \mathfrak{h}\). Hence \(\lambda\) is a weight of \(V\), with
  weight vector \(v^+ + N(\lambda)\). Finally, we remark that \(\lambda\) is
  the highest weight of \(V\), for if this was not the case we could find a
  weight \(\mu\) of \(M(\lambda)\) which is higher than \(\lambda\).
\end{proof}

% TODO: Write a conclusion and move this to the next chapter

