Example of a crystal

sage.categories.examples.crystals.HighestWeightCrystalOfTypeA

An example of a crystal: the highest weight crystal of type \(A_n\) of highest weight \(\omega_1\).

The purpose of this class is to provide a minimal template for implementing crystals. See CrystalOfLetters for a full featured and optimized implementation.

EXAMPLES:

sage: C = Crystals().example()
sage: C
Highest weight crystal of type A_3 of highest weight omega_1
sage: C.category()
Category of classical crystals

The elements of this crystal are in the set \(\{1,\ldots,n+1\}\):

sage: C.list()
[1, 2, 3,  4]
sage: C.module_generators[0]
1

The crystal operators themselves correspond to the elementary transpositions:

sage: b = C.module_generators[0]
sage: b.f(1)
2
sage: b.f(1).e(1) == b
True

Only the following basic operations are implemented:

  • cartan_type() or an attribute _cartan_type
  • an attribute module_generators
  • Element.e()
  • Element.f()

All the other usual crystal operations are inherited from the categories; for example:

sage: C.cardinality()
4
sage.categories.examples.crystals.NaiveCrystal

This is an example of a “crystal” which does not come from any kind of representation, designed primarily to test the Stembridge local rules with. The crystal has vertices labeled 0 through 5, with 0 the highest weight.

The code here could also possibly be generalized to create a class that automatically builds a crystal from an edge-colored digraph, if someone feels adventurous.

Currently, only the methods highest_weight_vector(), e(), and f() are guaranteed to work.

EXAMPLES:

sage: C = Crystals().example(choice='naive')
sage: C.highest_weight_vector()
0