Package sage :: Package combinat :: Package crystals :: Module crystals
[hide private]
[frames] | no frames]

Module crystals

source code


Crystals

Let $T$ be a CartanType with index set $I$, and $W$ be a realization of the
type $T$ weight lattice.

A type $T$ crystal $C$ is a colored oriented graph equipped with a weight
function from the nodes to some realization of the type $T$ weight lattice
such that:
\begin{itemize}
\item Each edge is colored with a label in $i \in I$.
\item For each $i\in I$, each node $x$ has:
  \begin{itemize}
     \item at most one $i$-successor $f_i(x)$;
     \item at most one $i$-predecessor $e_i(x)$.
  \end{itemize}
   Furthermore, when they exist,
   \begin{itemize}
     \item $f_i(x)$.weight() = x.weight() - $\alpha_i$;
     \item $e_i(x)$.weight() = x.weight() + $\alpha_i$.
   \end{itemize}
\end{itemize}

This crystal actually models a representation of a Lie algebra if it
satisfies some further local conditions due to Stembridge, see
J. Stembridge, \textit{A local characterization of simply-laced crystals},
Trans. Amer. Math. Soc. 355 (2003), no. 12, 4807--4823.

EXAMPLES:

We construct the type $A_5$ crystal on letters (or in representation
theoretic terms, the highest weight crystal of type $A_5$ corresponding
to the highest weight $\Lambda_1$)

    sage: C = CrystalOfLetters(['A',5]); C
    The crystal of letters for type ['A', 5]

It has a single highest weight element:
    sage: C.highest_weight_vectors()
    [1]

A crystal is a CombinatorialClass; and we can count and list its elements
in the usual way:
    sage: C.count()
    6
    sage: C.list()
    [1, 2, 3, 4, 5, 6]

as well as use it in for loops
    sage: [x for x in C]
    [1, 2, 3, 4, 5, 6]

Here are some more elaborate crystals (see their respective documentations):
    sage: Tens = TensorProductOfCrystals(C, C)
    sage: Spin = CrystalOfSpins(['B', 3])
    sage: Tab  = CrystalOfTableaux(['A', 3], shape = [2,1,1])
    sage: Fast  = FastCrystal(['B', 2], shape = [3/2, 1/2])

One can get (currently) crude ploting via:

    sage: Tab.plot()


For rank two crystals, there is an alternative method of getting
metapost pictures. For more information see C.metapost?

Caveat: this crystal library, although relatively featureful for
classical crystals, is still in an early development stage, and the
syntax details may be subject to changes.

TODO:
\begin{itemize}
  \item Vocabulary and conventions:
  \begin{itemize}
    \item elements or vectors of a crystal?
    \item For a classical crystal: connected / highest weight / irreducible
    \item ...
  \end{itemize}
  \item More introductory doc explaining the mathematical background
  \item Layout instructions for plot() for rank 2 types
  \item Streamlining the latex output
  \item Littelmann paths and/or alcove paths (this would give us the exceptional types)
  \item RestrictionOfCrystal / DirectSumOfCrystals
  \item Crystal.crystal_morphism
  \item Affine crystals
  \item Kirillov--Reshetikhin crystals
\end{itemize}

Most of the above features (except Littelmann/alcove paths) are in
MuPAD-Combinat (see lib/COMBINAT/crystals.mu), which could provide
inspiration.



Classes [hide private]
  Crystal
The abstract class of crystals...
  CrystalElement
The abstract class of crystal elements...
  CrystalBacktracker
  ClassicalCrystal
The abstract class of classical crystals
  AffineCrystal
The abstract class of affine crystals