Spin Crystals¶
These are the crystals associated with the three spin
representations: the spin representations of odd orthogonal groups
(or rather their double covers); and the and
spin
representations of the even orthogonal groups.
We follow Kashiwara and Nakashima (Journal of Algebra 165, 1994) in
representing the elements of the spin crystal by sequences of signs
.
-
sage.combinat.crystals.spins.
CrystalOfSpins
(ct)¶ Return the spin crystal of the given type
.
This is a combinatorial model for the crystal with highest weight
(the
-th fundamental weight). It has
elements, here called Spins. See also
CrystalOfLetters()
,CrystalOfSpinsPlus()
, andCrystalOfSpinsMinus()
.INPUT:
['B', n]
- A Cartan type.
EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: C.list() [+++, ++-, +-+, -++, +--, -+-, --+, ---] sage: C.cartan_type() ['B', 3]
sage: [x.signature() for x in C] ['+++', '++-', '+-+', '-++', '+--', '-+-', '--+', '---']
TESTS:
sage: crystals.TensorProduct(C,C,generators=[[C.list()[0],C.list()[0]]]).cardinality() 35
-
sage.combinat.crystals.spins.
CrystalOfSpinsMinus
(ct)¶ Return the minus spin crystal of the given type D.
This is the crystal with highest weight
(the
-st fundamental weight).
INPUT:
['D', n]
- A Cartan type.
EXAMPLES:
sage: E = crystals.SpinsMinus(['D',4]) sage: E.list() [+++-, ++-+, +-++, -+++, +---, -+--, --+-, ---+] sage: [x.signature() for x in E] ['+++-', '++-+', '+-++', '-+++', '+---', '-+--', '--+-', '---+']
TESTS:
sage: len(crystals.TensorProduct(E,E,generators=[[E[0],E[0]]]).list()) 35 sage: D = crystals.SpinsPlus(['D',4]) sage: len(crystals.TensorProduct(D,E,generators=[[D.list()[0],E.list()[0]]]).list()) 56
-
sage.combinat.crystals.spins.
CrystalOfSpinsPlus
(ct)¶ Return the plus spin crystal of the given type D.
This is the crystal with highest weight
(the
-th fundamental weight).
INPUT:
['D', n]
- A Cartan type.
EXAMPLES:
sage: D = crystals.SpinsPlus(['D',4]) sage: D.list() [++++, ++--, +-+-, -++-, +--+, -+-+, --++, ----]
sage: [x.signature() for x in D] ['++++', '++--', '+-+-', '-++-', '+--+', '-+-+', '--++', '----']
TESTS:
sage: TestSuite(D).run()
-
class
sage.combinat.crystals.spins.
GenericCrystalOfSpins
(ct, element_class, case)¶ Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.parent.Parent
A generic crystal of spins.
-
digraph
()¶ Return the directed graph associated to
self
.EXAMPLES:
sage: crystals.Spins(['B',3]).digraph() Digraph on 8 vertices
-
list
()¶ Return a list of the elements of
self
.EXAMPLES:
sage: crystals.Spins(['B',3]).list() [+++, ++-, +-+, -++, +--, -+-, --+, ---]
-
lt_elements
(x, y)¶ Return
True
if and only if there is a path fromx
toy
in the crystal graph.Because the crystal graph is classical, it is a directed acyclic graph which can be interpreted as a poset. This function implements the comparison function of this poset.
EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: x = C([1,1,1]) sage: y = C([-1,-1,-1]) sage: C.lt_elements(x,y) True sage: C.lt_elements(y,x) False sage: C.lt_elements(x,x) False
-
-
class
sage.combinat.crystals.spins.
Spin
¶ Bases:
sage.combinat.crystals.letters.LetterTuple
A spin letter in the crystal of spins.
EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: c = C([1,1,1]) sage: TestSuite(c).run() sage: C([1,1,1]).parent() The crystal of spins for type ['B', 3] sage: c = C([1,1,1]) sage: c._repr_() '+++' sage: D = crystals.Spins(['B',4]) sage: a = C([1,1,1]) sage: b = C([-1,-1,-1]) sage: c = D([1,1,1,1]) sage: a == a True sage: a == b False sage: b == c False
-
epsilon
(i)¶ Return
of
self
.EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: [[C[m].epsilon(i) for i in range(1,4)] for m in range(8)] [[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 0, 1], [1, 0, 1], [0, 1, 0], [0, 0, 1]]
-
phi
(i)¶ Return
of
self
.EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: [[C[m].phi(i) for i in range(1,4)] for m in range(8)] [[0, 0, 1], [0, 1, 0], [1, 0, 1], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 0, 0]]
-
pp
()¶ Pretty print
self
as a column.EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: b = C([1,1,-1]) sage: b.pp() + + -
-
signature
()¶ Return the signature of
self
.EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: C([1,1,1]).signature() '+++' sage: C([1,1,-1]).signature() '++-'
-
-
class
sage.combinat.crystals.spins.
Spin_crystal_type_B_element
¶ Bases:
sage.combinat.crystals.spins.Spin
Type B spin representation crystal element
-
e
(i)¶ Returns the action of
on self.
EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: [[C[m].e(i) for i in range(1,4)] for m in range(8)] [[None, None, None], [None, None, +++], [None, ++-, None], [+-+, None, None], [None, None, +-+], [+--, None, -++], [None, -+-, None], [None, None, --+]]
-
f
(i)¶ Returns the action of
on self.
EXAMPLES:
sage: C = crystals.Spins(['B',3]) sage: [[C[m].f(i) for i in range(1,4)] for m in range(8)] [[None, None, ++-], [None, +-+, None], [-++, None, +--], [None, None, -+-], [-+-, None, None], [None, --+, None], [None, None, ---], [None, None, None]]
-
-
class
sage.combinat.crystals.spins.
Spin_crystal_type_D_element
¶ Bases:
sage.combinat.crystals.spins.Spin
Type D spin representation crystal element
-
e
(i)¶ Returns the action of
on self.
EXAMPLES:
sage: D = crystals.SpinsPlus(['D',4]) sage: [[D.list()[m].e(i) for i in range(1,4)] for m in range(8)] [[None, None, None], [None, None, None], [None, ++--, None], [+-+-, None, None], [None, None, +-+-], [+--+, None, -++-], [None, -+-+, None], [None, None, None]]
sage: E = crystals.SpinsMinus(['D',4]) sage: [[E[m].e(i) for i in range(1,4)] for m in range(8)] [[None, None, None], [None, None, +++-], [None, ++-+, None], [+-++, None, None], [None, None, None], [+---, None, None], [None, -+--, None], [None, None, --+-]]
-
f
(i)¶ Returns the action of
on self.
EXAMPLES:
sage: D = crystals.SpinsPlus(['D',4]) sage: [[D.list()[m].f(i) for i in range(1,4)] for m in range(8)] [[None, None, None], [None, +-+-, None], [-++-, None, +--+], [None, None, -+-+], [-+-+, None, None], [None, --++, None], [None, None, None], [None, None, None]]
sage: E = crystals.SpinsMinus(['D',4]) sage: [[E[m].f(i) for i in range(1,4)] for m in range(8)] [[None, None, ++-+], [None, +-++, None], [-+++, None, None], [None, None, None], [-+--, None, None], [None, --+-, None], [None, None, ---+], [None, None, None]]
-