AUTHORS:
Let , for
and
, be a commuting set of
variables, and let
be a new variable which commutes with
each
. (Here,
represents the index set of a Cartan datum.) One
may endow the structure of a crystal on the set
of
monomials of the form
Elements of are called modified Nakajima monomials.
We will omit the
from the end of a monomial if there exists
at least one
. The crystal structure on this set is defined by
where and
are the simple
coroots and fundamental weights, respectively. With a chosen set of integers
such that
, one defines
where is a Cartan matrix. Then
It is shown in [KKS07] that the connected component of
containing the element
, which we denote by
, is crystal isomorphic to the crystal
.
Let be
as a set, and with
crystal structure defined as on
with the exception
that
Then Kashiwara [Kash03] showed that the connected component in
containing a monomial
such that
, for
all
, is crystal isomorphic to the irreducible highest weight
crystal
.
WARNING:
Monomial crystals depend on the choice of positive integerssatisfying the condition
. We have chosen such integers uniformly such that
if
and
if
.
REFERENCES:
[KKS07] | (1, 2) S.-J. Kang, J.-A. Kim, and D.-U. Shin.
Modified Nakajima Monomials and the Crystal ![]() |
[Kash03] | (1, 2) M. Kashiwara. Realizations of Crystals. Combinatorial and geometric representation theory (Seoul, 2001), Contemp. Math. 325, Amer. Math. Soc., pp. 133–139, 2003. |
Bases: sage.combinat.crystals.monomial_crystals.InfinityCrystalOfNakajimaMonomials
Let be
as a set, and with
crystal structure defined as on
with the exception
that
Then Kashiwara [Kash03] showed that the connected component in
containing a monomial
such that
,
for all
, is crystal isomorphic to the irreducible highest weight
crystal
.
INPUT:
EXAMPLES:
sage: La = RootSystem("A2").weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials("A2",La[1]+La[2])
sage: B = crystals.Tableaux("A2",shape=[2,1])
sage: GM = M.digraph()
sage: GB = B.digraph()
sage: GM.is_isomorphic(GB,edge_labels=True)
True
sage: La = RootSystem("G2").weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials("G2",La[1]+La[2])
sage: B = crystals.Tableaux("G2",shape=[2,1])
sage: GM = M.digraph()
sage: GB = B.digraph()
sage: GM.is_isomorphic(GB,edge_labels=True)
True
sage: La = RootSystem("B2").weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['B',2],La[1]+La[2])
sage: B = crystals.Tableaux("B2",shape=[3/2,1/2])
sage: GM = M.digraph()
sage: GB = B.digraph()
sage: GM.is_isomorphic(GB,edge_labels=True)
True
sage: La = RootSystem(['A',3,1]).weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['A',3,1],La[0]+La[2])
sage: B = crystals.GeneralizedYoungWalls(3,La[0]+La[2])
sage: SM = M.subcrystal(max_depth=4)
sage: SB = B.subcrystal(max_depth=4)
sage: GM = M.digraph(subset=SM) # long time
sage: GB = B.digraph(subset=SB) # long time
sage: GM.is_isomorphic(GB,edge_labels=True) # long time
True
sage: La = RootSystem(['A',5,2]).weight_lattice().fundamental_weights()
sage: LA = RootSystem(['A',5,2]).weight_space().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['A',5,2],3*La[0])
sage: B = crystals.LSPaths(3*LA[0])
sage: SM = M.subcrystal(max_depth=4)
sage: SB = B.subcrystal(max_depth=4)
sage: GM = M.digraph(subset=SM)
sage: GB = B.digraph(subset=SB)
sage: GM.is_isomorphic(GB,edge_labels=True)
True
Return the cardinality of self.
EXAMPLES:
sage: La = RootSystem(['A',2]).weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['A',2],La[1])
sage: M.cardinality()
3
sage: La = RootSystem(['D',4,2]).weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['D',4,2],La[1])
sage: M.cardinality()
+Infinity
Bases: sage.combinat.crystals.monomial_crystals.NakajimaYMonomial
Element class for CrystalOfNakajimaMonomials.
The operators need to be modified from the version in
monomial_crystalsNakajimaYMonomial
in order to create irreducible highest weight realizations.
This modified
is defined as
EXAMPLES:
sage: La = RootSystem(['A',5,2]).weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['A',5,2],3*La[0])
sage: m = M.module_generators[0].f(0); m
Y(0,0)^2 Y(0,1)^-1 Y(2,0)
sage: TestSuite(m).run()
Return the action of on self.
INPUT:
EXAMPLES:
sage: La = RootSystem(['A',5,2]).weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(['A',5,2],3*La[0])
sage: m = M.module_generators[0]
sage: [m.f(i) for i in M.index_set()]
[Y(0,0)^2 Y(0,1)^-1 Y(2,0) , None, None, None]
Bases: sage.structure.parent.Parent, sage.structure.unique_representation.UniqueRepresentation
Let , for
and
, be a commuting set of
variables, and let
be a new variable which commutes with
each
. (Here,
represents the index set of a Cartan datum.) One
may endow the structure of a crystal on the set
of
monomials of the form
Elements of are called modified Nakajima monomials.
We will omit the
from the end of a monomial if there exists
at least one
. The crystal structure on this set is defined by
where and
are the simple
coroots and fundamental weights, respectively. With a chosen set of integers
such that
, one defines
where is a Cartan matrix. Then
It is shown in [KKS07] that the connected component of
containing the element
, which we
denote by
, is crystal isomorphic to the crystal
.
INPUT:
EXAMPLES:
sage: B = crystals.infinity.Tableaux("C3")
sage: S = B.subcrystal(max_depth=4)
sage: G = B.digraph(subset=S) # long time
sage: M = crystals.infinity.NakajimaMonomials("C3") # long time
sage: T = M.subcrystal(max_depth=4) # long time
sage: H = M.digraph(subset=T) # long time
sage: G.is_isomorphic(H,edge_labels=True) # long time
True
sage: M = crystals.infinity.NakajimaMonomials(['A',2,1])
sage: T = M.subcrystal(max_depth=3)
sage: H = M.digraph(subset=T) # long time
sage: Y = crystals.infinity.GeneralizedYoungWalls(2)
sage: YS = Y.subcrystal(max_depth=3)
sage: YG = Y.digraph(subset=YS) # long time
sage: YG.is_isomorphic(H,edge_labels=True) # long time
True
sage: M = crystals.infinity.NakajimaMonomials("D4")
sage: B = crystals.infinity.Tableaux("D4")
sage: MS = M.subcrystal(max_depth=3)
sage: BS = B.subcrystal(max_depth=3)
sage: MG = M.digraph(subset=MS) # long time
sage: BG = B.digraph(subset=BS) # long time
sage: BG.is_isomorphic(MG,edge_labels=True) # long time
True
Return the cardinality of self, which is always .
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['A',5,2])
sage: M.cardinality()
+Infinity
Bases: sage.combinat.crystals.monomial_crystals.NakajimaYMonomial
Monomials of the form , where
are elements of the index set,
are
nonnegative integers, and
are integers.
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials("A3",use_Y=False)
sage: mg = M.module_generators[0]
sage: mg.f_string([1,2,3,2,1])
A(1,0)^-1 A(1,1)^-1 A(2,0)^-2 A(3,0)^-1
sage: mg.f_string([3,2,1])
A(1,2)^-1 A(2,1)^-1 A(3,0)^-1
Return the action of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['D',4,1],use_Y=False)
sage: m = M.module_generators[0].f_string([4,2,3,0])
sage: [m.e(i) for i in M.index_set()]
[A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 ,
None,
None,
A(0,2)^-1 A(2,1)^-1 A(4,0)^-1 ,
None]
Return the action of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['C',4,1],use_Y=False)
sage: m = M.module_generators[0].f_string([4,2,3])
sage: [m.epsilon(i) for i in M.index_set()]
[0, 0, 0, 1, 0]
Return the action of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials("E8",use_Y=False)
sage: m = M.module_generators[0].f_string([4,2,3,8])
sage: m
A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(8,0)^-1
sage: [m.f(i) for i in M.index_set()]
[A(1,2)^-1 A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(8,0)^-1 ,
A(2,0)^-1 A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(8,0)^-1 ,
A(2,1)^-1 A(3,0)^-1 A(3,1)^-1 A(4,0)^-1 A(8,0)^-1 ,
A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(4,1)^-1 A(8,0)^-1 ,
A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(5,0)^-1 A(8,0)^-1 ,
A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(6,0)^-1 A(8,0)^-1 ,
A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(7,1)^-1 A(8,0)^-1 ,
A(2,1)^-1 A(3,1)^-1 A(4,0)^-1 A(8,0)^-2 ]
Return the action of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['C',4,1],use_Y=False)
sage: m = M.module_generators[0].f_string([4,2,3])
sage: [m.phi(i) for i in M.index_set()]
[0, 1, -1, 2, -1]
Represent in the form
using the formula
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['A',2,1],use_Y=False)
sage: m = M.module_generators[0].f_string([2,0,1,2,1])
sage: m
A(0,0)^-1 A(1,0)^-1 A(1,1)^-1 A(2,0)^-1 A(2,1)^-1
sage: m.to_Y_monomial()
Y(0,1) Y(0,2) Y(1,1)^-1 Y(2,2)^-1
Return the weight of self as an element of self.parent().weight_lattice_realization().
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['A',4,2],use_Y=False)
sage: m = M.module_generators[0].f_string([1,2,0,1])
sage: m.weight()
2*Lambda[0] - Lambda[1]
Return the weight of self as an element of the root lattice.
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['C',3,1],use_Y=False)
sage: m = M.module_generators[0].f_string([3,0,1,2,0])
sage: m.weight_in_root_lattice()
-2*alpha[0] - alpha[1] - alpha[2] - alpha[3]
Bases: sage.structure.element.Element
Monomials of the form , where
are elements of the index set,
are
nonnegative integers, and
are integers.
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['B',3,1])
sage: mg = M.module_generators[0]
sage: mg
1
sage: mg.f_string([1,3,2,0,1,2,3,0,0,1])
Y(0,0)^-1 Y(0,1)^-1 Y(0,2)^-1 Y(0,3)^-1 Y(1,0)^-3 Y(1,1)^-2 Y(1,2) Y(2,0)^3 Y(2,2) Y(3,0) Y(3,2)^-1
Return the action of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['E',7,1])
sage: m = M.module_generators[0].f_string([0,1,4,3])
sage: [m.e(i) for i in M.index_set()]
[None,
None,
None,
Y(0,0)^-1 Y(1,1)^-1 Y(2,1) Y(3,0) Y(3,1) Y(4,0)^-1 Y(4,1)^-1 Y(5,0) ,
None,
None,
None,
None]
sage: M = crystals.infinity.NakajimaMonomials("C5")
sage: m = M.module_generators[0].f_string([1,3])
sage: [m.e(i) for i in M.index_set()]
[Y(2,1) Y(3,0)^-1 Y(3,1)^-1 Y(4,0) ,
None,
Y(1,0)^-1 Y(1,1)^-1 Y(2,0) ,
None,
None]
Return the value of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['G',2,1])
sage: m = M.module_generators[0].f(2)
sage: [m.epsilon(i) for i in M.index_set()]
[0, 0, 1]
Return the action of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials("B4")
sage: m = M.module_generators[0].f_string([1,3,4])
sage: [m.f(i) for i in M.index_set()]
[Y(1,0)^-2 Y(1,1)^-2 Y(2,0)^2 Y(2,1) Y(3,0)^-1 Y(4,0) Y(4,1)^-1 ,
Y(1,0)^-1 Y(1,1)^-1 Y(1,2) Y(2,0) Y(2,2)^-1 Y(3,0)^-1 Y(3,1) Y(4,0) Y(4,1)^-1 ,
Y(1,0)^-1 Y(1,1)^-1 Y(2,0) Y(2,1)^2 Y(3,0)^-2 Y(3,1)^-1 Y(4,0)^3 Y(4,1)^-1 ,
Y(1,0)^-1 Y(1,1)^-1 Y(2,0) Y(2,1) Y(3,0)^-1 Y(3,1) Y(4,1)^-2 ]
Return the value of on self.
INPUT:
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['D',4,3])
sage: m = M.module_generators[0].f(1)
sage: [m.phi(i) for i in M.index_set()]
[1, -1, 1]
Return the weight of self as an element of self.parent().weight_lattice_realization.
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['D',4,2])
sage: m = M.module_generators[0].f_string([0,3,2,0,1])
sage: m.weight()
-2*Lambda[0] + Lambda[1]
sage: M = crystals.infinity.NakajimaMonomials(['E',6])
sage: m = M.module_generators[0].f_string([1,5,2,6,3])
sage: m.weight()
(-1/2, -3/2, 3/2, 1/2, -1/2, 1/2, 1/2, -1/2)
Return the weight of self as an element of the root lattice.
EXAMPLES:
sage: M = crystals.infinity.NakajimaMonomials(['F',4])
sage: m = M.module_generators[0].f_string([3,3,1,2,4])
sage: m.weight_in_root_lattice()
-alpha[1] - alpha[2] - 2*alpha[3] - alpha[4]
sage: M = crystals.infinity.NakajimaMonomials(['B',3,1])
sage: mg = M.module_generators[0]
sage: m = mg.f_string([1,3,2,0,1,2,3,0,0,1])
sage: m.weight_in_root_lattice()
-3*alpha[0] - 3*alpha[1] - 2*alpha[2] - 2*alpha[3]