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 +/-. Two other representations are available as attributes internal_repn and signature of the crystal element.
Return the spin crystal of the given type B.
This is a combinatorial model for the crystal with highest weight
(the n-th fundamental weight). It has
elements, here called Spins. See also
CrystalOfLetters, CrystalOfSpinsPlus and CrystalOfSpinsMinus.
INPUT:
EXAMPLES:
sage: C = CrystalOfSpins(['B',3])
sage: C.list()
[+++, ++-, +-+, -++, +--, -+-, --+, ---]
sage: C.cartan_type()
['B', 3]
sage: [x.signature() for x in C]
['+++', '++-', '+-+', '-++', '+--', '-+-', '--+', '---']
TESTS:
sage: TensorProductOfCrystals(C,C,generators=[[C.list()[0],C.list()[0]]]).cardinality()
35
Return the minus spin crystal of the given type D.
This is the crystal with highest weight
(the (n-1)-st fundamental weight).
INPUT:
EXAMPLES:
sage: E = CrystalOfSpinsMinus(['D',4])
sage: E.list()
[+++-, ++-+, +-++, -+++, +---, -+--, --+-, ---+]
sage: [x.signature() for x in E]
['+++-', '++-+', '+-++', '-+++', '+---', '-+--', '--+-', '---+']
TESTS:
sage: len(TensorProductOfCrystals(E,E,generators=[[E[0],E[0]]]).list())
35
sage: D = CrystalOfSpinsPlus(['D',4])
sage: len(TensorProductOfCrystals(D,E,generators=[[D.list()[0],E.list()[0]]]).list())
56
Return the plus spin crystal of the given type D.
This is the crystal with highest weight (the
n-th fundamental weight).
INPUT:
EXAMPLES:
sage: D = CrystalOfSpinsPlus(['D',4])
sage: D.list()
[++++, ++--, +-+-, -++-, +--+, -+-+, --++, ----]
sage: [x.signature() for x in D]
['++++', '++--', '+-+-', '-++-', '+--+', '-+-+', '--++', '----']
TESTS:
sage: TestSuite(D).run()
Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.parent.Parent
Returns the directed graph associated to self.
EXAMPLES:
sage: CrystalOfSpins(['B',3]).digraph()
Digraph on 8 vertices
Returns a list of the elements of self.
EXAMPLES:
sage: CrystalOfSpins(['B',3]).list()
[+++, ++-, +-+, -++, +--, -+-, --+, ---]
Returns True if and only if there is a path from x to y 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 = CrystalOfSpins(['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
Bases: sage.combinat.crystals.letters.Letter
EXAMPLES:
sage: C = CrystalOfSpins(['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 = CrystalOfSpins(['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
Returns the signature of self.
EXAMPLES:
sage: C = CrystalOfSpins(['B',3])
sage: C([1,1,1]).signature()
'+++'
sage: C([1,1,-1]).signature()
'++-'
Bases: sage.combinat.crystals.spins.Spin
Type B spin representation crystal element
Returns the action of on self.
EXAMPLES:
sage: C = CrystalOfSpins(['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, --+]]
Returns the action of on self.
EXAMPLES:
sage: C = CrystalOfSpins(['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]]
Bases: sage.combinat.crystals.spins.Spin
Type D spin representation crystal element
Returns the action of on self.
EXAMPLES:
sage: D = CrystalOfSpinsPlus(['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 = CrystalOfSpinsMinus(['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, --+-]]
Returns the action of on self.
EXAMPLES:
sage: D = CrystalOfSpinsPlus(['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 = CrystalOfSpinsMinus(['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]]