Bases: sage.categories.category_singleton.Category_singleton
The category of regular crystals.
A crystal is called regular if:
Note
Regular crystals are sometimes referred to as normal. When only one
of the conditions (on either or
) holds, these
crystals are sometimes called seminormal or semiregular.
EXAMPLES:
sage: C = RegularCrystals()
sage: C
Category of regular crystals
sage: C.super_categories()
[Category of crystals]
sage: C.example()
Highest weight crystal of type A_3 of highest weight omega_1
TESTS:
sage: TestSuite(C).run()
sage: B = RegularCrystals().example()
sage: TestSuite(B).run(verbose = True)
running ._test_an_element() . . . pass
running ._test_category() . . . pass
running ._test_elements() . . .
Running the test suite of self.an_element()
running ._test_category() . . . pass
running ._test_eq() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_pickling() . . . pass
running ._test_stembridge_local_axioms() . . . pass
pass
running ._test_elements_eq_reflexive() . . . pass
running ._test_elements_eq_symmetric() . . . pass
running ._test_elements_eq_transitive() . . . pass
running ._test_elements_neq() . . . pass
running ._test_enumerated_set_contains() . . . pass
running ._test_enumerated_set_iter_cardinality() . . . pass
running ._test_enumerated_set_iter_list() . . . pass
running ._test_eq() . . . pass
running ._test_fast_iter() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_pickling() . . . pass
running ._test_some_elements() . . . pass
running ._test_stembridge_local_axioms() . . . pass
Return the Demazure operator applied to self.
INPUT:
OUTPUT:
An element of the ring-free module indexed by the underlying crystal.
Let , then
is defined as follows:
REFERENCES:
[L1995] | Peter Littelmann, Crystal graphs and Young tableaux, J. Algebra 175 (1995), no. 1, 65–87. |
[K1993] | Masaki Kashiwara, The crystal base and Littelmann’s refined Demazure character formula, Duke Math. J. 71 (1993), no. 3, 839–858. |
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: t = T(rows=[[1,2],[2]])
sage: t.demazure_operator_simple(2)
B[[[1, 2], [2]]] + B[[[1, 3], [2]]] + B[[[1, 3], [3]]]
sage: t.demazure_operator_simple(2).parent()
Free module generated by The crystal of tableaux of type ['A', 2] and shape(s) [[2, 1]] over Integer Ring
sage: t.demazure_operator_simple(1)
0
sage: K = crystals.KirillovReshetikhin(['A',2,1],2,1)
sage: t = K(rows=[[3],[2]])
sage: t.demazure_operator_simple(0)
B[[[2, 3]]] + B[[[1, 2]]]
TESTS:
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: x = K.an_element(); x
[[1]]
sage: x.demazure_operator_simple(0)
0
sage: x.demazure_operator_simple(0, ring = QQ).parent()
Free module generated by Kirillov-Reshetikhin crystal of type ['A', 2, 1] with (r,s)=(1,1) over Rational Field
Return of self.
EXAMPLES:
sage: C = crystals.Letters(['A',5])
sage: C(1).epsilon(1)
0
sage: C(2).epsilon(1)
1
Return of self.
EXAMPLES:
sage: C = crystals.Letters(['A',5])
sage: C(1).phi(1)
1
sage: C(2).phi(1)
0
Return the difference in the -depth of self and
of
self, where
and
are in the index set of the
underlying crystal. This function is useful for checking the
Stembridge local axioms for crystal bases.
The -depth of a crystal node
is
.
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: t=T(rows=[[1,1],[2]])
sage: t.stembridgeDel_depth(1,2)
0
sage: s=T(rows=[[1,3],[3]])
sage: s.stembridgeDel_depth(1,2)
-1
Return the difference in the -rise of self and
of
self, where
and
are in the index set of the
underlying crystal. This function is useful for checking the
Stembridge local axioms for crystal bases.
The -rise of a crystal node
is
.
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: t=T(rows=[[1,1],[2]])
sage: t.stembridgeDel_rise(1,2)
-1
sage: s=T(rows=[[1,3],[3]])
sage: s.stembridgeDel_rise(1,2)
0
Return the difference in the -depth of self and
of self, where
and
are in the index set of the
underlying crystal. This function is useful for checking the
Stembridge local axioms for crystal bases.
The -depth of a crystal node
is
.
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: t=T(rows=[[1,2],[2]])
sage: t.stembridgeDelta_depth(1,2)
0
sage: s=T(rows=[[2,3],[3]])
sage: s.stembridgeDelta_depth(1,2)
-1
Return the difference in the -rise of self and
of
self, where
and
are in the index set of the
underlying crystal. This function is useful for checking the
Stembridge local axioms for crystal bases.
The -rise of a crystal node
is
.
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: t=T(rows=[[1,2],[2]])
sage: t.stembridgeDelta_rise(1,2)
-1
sage: s=T(rows=[[2,3],[3]])
sage: s.stembridgeDelta_rise(1,2)
0
Let be the Cartan matrix of the crystal,
a crystal element,
and let
and
be in the index set of the crystal.
Further, set
b=stembridgeDelta_depth(x,i,j), and
c=stembridgeDelta_rise(x,i,j)).
If x.e(i) is non-empty, this function returns the triple
; otherwise it returns None.
By the Stembridge local characterization of crystal bases,
one should have
.
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: t=T(rows=[[1,1],[2]])
sage: t.stembridgeTriple(1,2)
sage: s=T(rows=[[1,2],[2]])
sage: s.stembridgeTriple(1,2)
(-1, 0, -1)
sage: T = crystals.Tableaux(['B',2], shape=[2,1])
sage: t=T(rows=[[1,2],[2]])
sage: t.stembridgeTriple(1,2)
(-2, 0, -2)
sage: s=T(rows=[[-1,-1],[0]])
sage: s.stembridgeTriple(1,2)
(-2, -2, 0)
sage: u=T(rows=[[0,2],[1]])
sage: u.stembridgeTriple(1,2)
(-2, -1, -1)
Return the weight of this crystal element.
EXAMPLES:
sage: C = crystals.Letters(['A',5])
sage: C(1).weight()
(1, 0, 0, 0, 0, 0)
Returns the application of Demazure operators for
from
reduced_word on element.
INPUT:
OUTPUT:
EXAMPLES:
sage: T = crystals.Tableaux(['A',2], shape=[2,1])
sage: C = CombinatorialFreeModule(QQ,T)
sage: t = T.highest_weight_vector()
sage: b = 2*C(t)
sage: T.demazure_operator(b,[1,2,1])
2*B[[[1, 1], [2]]] + 2*B[[[1, 2], [2]]] + 2*B[[[1, 3], [2]]] + 2*B[[[1, 1], [3]]]
+ 2*B[[[1, 2], [3]]] + 2*B[[[1, 3], [3]]] + 2*B[[[2, 2], [3]]] + 2*B[[[2, 3], [3]]]
The Demazure operator is idempotent:
sage: T = crystals.Tableaux("A1",shape=[4])
sage: C = CombinatorialFreeModule(QQ,T)
sage: b = C(T.module_generators[0]); b
B[[[1, 1, 1, 1]]]
sage: e = T.demazure_operator(b,[1]); e
B[[[1, 1, 1, 1]]] + B[[[1, 1, 1, 2]]] + B[[[1, 1, 2, 2]]] + B[[[1, 2, 2, 2]]] + B[[[2, 2, 2, 2]]]
sage: e == T.demazure_operator(e,[1])
True
sage: all(T.demazure_operator(T.demazure_operator(C(t),[1]),[1]) == T.demazure_operator(C(t),[1]) for t in T)
True
Bases: sage.categories.tensor.TensorProductsCategory
The category of regular crystals constructed by tensor product of regular crystals.
EXAMPLES:
sage: RegularCrystals().TensorProducts().extra_super_categories()
[Category of regular crystals]
Return None.
Indeed, the category of regular crystals defines no new
structure: it only relates and
to
and
respectively.
See also
Todo
Should this category be a CategoryWithAxiom?
EXAMPLES:
sage: RegularCrystals().additional_structure()
Returns an example of highest weight crystals, as per Category.example().
EXAMPLES:
sage: B = RegularCrystals().example(); B
Highest weight crystal of type A_3 of highest weight omega_1
EXAMPLES:
sage: RegularCrystals().super_categories()
[Category of crystals]