Root system data for folded Cartan types¶
AUTHORS:
- Travis Scrimshaw (2013-01-12) - Initial version
-
class
sage.combinat.root_system.type_folded.
CartanTypeFolded
(cartan_type, folding_of, orbit)¶ Bases:
sage.structure.sage_object.SageObject
,sage.structure.unique_representation.UniqueRepresentation
A Cartan type realized from a (Dynkin) diagram folding.
Given a Cartan type
, we say
is a folded Cartan type of
if there exists a diagram folding of the Dynkin diagram of
onto
.
A folding of a simply-laced Dynkin diagram
with index set
is an automorphism
of
where all nodes any orbit of
are not connected. The resulting Dynkin diagram
is induced by
where we identify edges in
which are not incident and add a
-edge if we identify
incident edges and the arrow is pointing towards the indicent note. We denote the index set of
by
, and by abuse of notation, we denote the folding by
.
We also have scaling factors
for
and defined as the unique numbers such that the map
is the smallest proper embedding of the weight lattice of
to
.
If the Cartan type is simply laced, the default folding is the one induced from the identity map on
.
If
is affine type, the default embeddings we consider here are:
and were chosen based on virtual crystals. In particular, the diagram foldings extend to crystal morphisms and gives a realization of Kirillov-Reshetikhin crystals for non-simply-laced types as simply-laced types. See [OSShimo03] and [FOS09] for more details. Here we can compute
where
are the translation factors of the root system. In a more type-dependent way, we can define
as follows:
- There exists a unique arrow (multiple bond) in
.
- Suppose the arrow points towards 0. Then
for all
.
- Otherwise
is the order of
for all
in the connected component of 0 after removing the arrow, else
.
- Suppose the arrow points towards 0. Then
- There is not a unique arrow. Thus
and
for all
. If
, then
if the arrow incident to
points away and is
otherwise.
We note that
only depends upon
.
If the Cartan type is finite, then we consider the classical foldings/embeddings induced by the above affine foldings/embeddings:
For more information on Cartan types, see
sage.combinat.root_system.cartan_type
.Other foldings may be constructed by passing in an optional
folding_of
second argument. See below.INPUT:
cartan_type
– the Cartan typeto create the folded type
folding_of
– the Cartan typewhich
is a folding of
orbit
– the orbit of the Dynkin diagram automorphismgiven as a list of lists where the
-th list corresponds to the
-th entry in
or a dictionary with keys in
and values as lists
Note
If
is an affine type, we assume the special node is fixed under
.
EXAMPLES:
sage: fct = CartanType(['C',4,1]).as_folding(); fct ['C', 4, 1] as a folding of ['A', 7, 1] sage: fct.scaling_factors() Finite family {0: 2, 1: 1, 2: 1, 3: 1, 4: 2} sage: fct.folding_orbit() Finite family {0: (0,), 1: (1, 7), 2: (2, 6), 3: (3, 5), 4: (4,)}
A simply laced Cartan type can be considered as a virtual type of itself:
sage: fct = CartanType(['A',4,1]).as_folding(); fct ['A', 4, 1] as a folding of ['A', 4, 1] sage: fct.scaling_factors() Finite family {0: 1, 1: 1, 2: 1, 3: 1, 4: 1} sage: fct.folding_orbit() Finite family {0: (0,), 1: (1,), 2: (2,), 3: (3,), 4: (4,)}
Finite types:
sage: fct = CartanType(['C',4]).as_folding(); fct ['C', 4] as a folding of ['A', 7] sage: fct.scaling_factors() Finite family {1: 1, 2: 1, 3: 1, 4: 2} sage: fct.folding_orbit() Finite family {1: (1, 7), 2: (2, 6), 3: (3, 5), 4: (4,)} sage: fct = CartanType(['F',4]).dual().as_folding(); fct ['F', 4] relabelled by {1: 4, 2: 3, 3: 2, 4: 1} as a folding of ['E', 6] sage: fct.scaling_factors() Finite family {1: 1, 2: 1, 3: 2, 4: 2} sage: fct.folding_orbit() Finite family {1: (1, 6), 2: (3, 5), 3: (4,), 4: (2,)}
REFERENCES:
[OSShimo03] M. Okado, A. Schilling, M. Shimozono. “Virtual crystals and fermionic formulas for type ,
, and
”. Representation Theory. 7 (2003). 101-163. doi:10.1.1.192.2095, Arxiv 0810.5067.
-
cartan_type
()¶ Return the Cartan type of
self
.EXAMPLES:
sage: fct = CartanType(['C', 4, 1]).as_folding() sage: fct.cartan_type() ['C', 4, 1]
-
folding_of
()¶ Return the Cartan type of the virtual space.
EXAMPLES:
sage: fct = CartanType(['C', 4, 1]).as_folding() sage: fct.folding_of() ['A', 7, 1]
-
folding_orbit
()¶ Return the orbits under the automorphism
as a dictionary (of tuples).
EXAMPLES:
sage: fct = CartanType(['C', 4, 1]).as_folding() sage: fct.folding_orbit() Finite family {0: (0,), 1: (1, 7), 2: (2, 6), 3: (3, 5), 4: (4,)}
-
scaling_factors
()¶ Return the scaling factors of
self
.EXAMPLES:
sage: fct = CartanType(['C', 4, 1]).as_folding() sage: fct.scaling_factors() Finite family {0: 2, 1: 1, 2: 1, 3: 1, 4: 2} sage: fct = CartanType(['BC', 4, 2]).as_folding() sage: fct.scaling_factors() Finite family {0: 1, 1: 1, 2: 1, 3: 1, 4: 2} sage: fct = CartanType(['BC', 4, 2]).dual().as_folding() sage: fct.scaling_factors() Finite family {0: 2, 1: 1, 2: 1, 3: 1, 4: 1} sage: CartanType(['BC', 4, 2]).relabel({0:4, 1:3, 2:2, 3:1, 4:0}).as_folding().scaling_factors() Finite family {0: 2, 1: 1, 2: 1, 3: 1, 4: 1}
- There exists a unique arrow (multiple bond) in