Root system data for reducible Cartan types

class sage.combinat.root_system.type_reducible.AmbientSpace(root_system, base_ring)

Bases: sage.combinat.root_system.ambient_space.AmbientSpace

EXAMPLES:

sage: RootSystem("A2xB2").ambient_space()
Ambient space of the Root system of type A2xB2
ambient_spaces()

Returns a list of the irreducible Cartan types of which the given reducible Cartan type is a product.

EXAMPLES:

sage: RootSystem("A2xB2").ambient_space().ambient_spaces()
[Ambient space of the Root system of type ['A', 2],
 Ambient space of the Root system of type ['B', 2]]
cartan_type()

EXAMPLES:

sage: RootSystem("A2xB2").ambient_space().cartan_type()
A2xB2
component_types()

EXAMPLES:

sage: RootSystem("A2xB2").ambient_space().component_types()
[['A', 2], ['B', 2]]
dimension()

EXAMPLES:

sage: RootSystem("A2xB2").ambient_space().dimension()
5
fundamental_weights()

EXAMPLES:

sage: RootSystem("A2xB2").ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0, 0, 0), 2: (1, 1, 0, 0, 0), 3: (0, 0, 0, 1, 0), 4: (0, 0, 0, 1/2, 1/2)}
inject_weights(i, v)

Produces the corresponding element of the lattice.

INPUT:

  • i - an integer in range(self.components)
  • v - a vector in the i-th component weight lattice

EXAMPLES:

sage: V = RootSystem("A2xB2").ambient_space()
sage: [V.inject_weights(i,V.ambient_spaces()[i].fundamental_weights()[1]) for i in range(2)]
[(1, 0, 0, 0, 0), (0, 0, 0, 1, 0)]
sage: [V.inject_weights(i,V.ambient_spaces()[i].fundamental_weights()[2]) for i in range(2)]
[(1, 1, 0, 0, 0), (0, 0, 0, 1/2, 1/2)]
negative_roots()

EXAMPLES:

sage: RootSystem("A1xA2").ambient_space().negative_roots()
[(-1, 1, 0, 0, 0), (0, 0, -1, 1, 0), (0, 0, -1, 0, 1), (0, 0, 0, -1, 1)]
positive_roots()

EXAMPLES:

sage: RootSystem("A1xA2").ambient_space().positive_roots()
[(1, -1, 0, 0, 0), (0, 0, 1, -1, 0), (0, 0, 1, 0, -1), (0, 0, 0, 1, -1)]
simple_coroot(i)

EXAMPLES:

sage: A = RootSystem("A1xB2").ambient_space()
sage: A.simple_coroot(2)
(0, 0, 1, -1)
sage: A.simple_coroots()
Finite family {1: (1, -1, 0, 0), 2: (0, 0, 1, -1), 3: (0, 0, 0, 2)}
simple_root(i)

EXAMPLES:

sage: A = RootSystem("A1xB2").ambient_space()
sage: A.simple_root(2)
(0, 0, 1, -1)
sage: A.simple_roots()
Finite family {1: (1, -1, 0, 0), 2: (0, 0, 1, -1), 3: (0, 0, 0, 1)}
class sage.combinat.root_system.type_reducible.CartanType(types)

Bases: sage.structure.sage_object.SageObject, sage.combinat.root_system.cartan_type.CartanType_abstract

A class for reducible Cartan types.

Reducible root systems are ones that can be factored as direct products. Strictly speaking type \(D_2\) (corresponding to orthogonal groups of degree 4) is reducible since it is isomorphic to \(A_1\times A_1\). However type \(D_2\) is not built using this class for our purposes.

INPUT:

  • types - a list of simple Cartan types

EXAMPLES:

sage: [t1,t2]=[CartanType(x) for x in ['A',1],['B',2]]
sage: CartanType([t1,t2])
A1xB2
sage: t = CartanType("A2xB2")

A reducible Cartan type is finite (resp. crystallographic, simply laced) if all its components are:

sage: t.is_finite()
True
sage: t.is_crystallographic()
True
sage: t.is_simply_laced()
False

This is implemented by inserting the appropriate abstract super classes (see _add_abstract_superclass()):

sage: t.__class__.mro()
[<class 'sage.combinat.root_system.type_reducible.CartanType_with_superclass'>, <class 'sage.combinat.root_system.type_reducible.CartanType'>, <type 'sage.structure.sage_object.SageObject'>, <class 'sage.combinat.root_system.cartan_type.CartanType_finite'>, <class 'sage.combinat.root_system.cartan_type.CartanType_crystallographic'>, <class 'sage.combinat.root_system.cartan_type.CartanType_abstract'>, <type 'object'>]

The index set of the reducible Cartan type is obtained by relabelling successively the nodes of the Dynkin diagrams of the components by 1,2,...:

sage: t = CartanType(["A",4], ["BC",5,2], ["C",3])
sage: t.index_set()
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)

sage: t.dynkin_diagram()
O---O---O---O
1   2   3   4
O=<=O---O---O---O=<=O
5   6   7   8   9   10
O---O=<=O
11   12   13
A4xBC5~xC3
AmbientSpace

alias of AmbientSpace

ascii_art(label=<function <lambda> at 0x5afac80>)

Returns an ascii art representation of this reducible Cartan type

EXAMPLES:

sage: print CartanType("F4xA2").ascii_art(label = lambda x: x+2)
O---O=>=O---O
3   4   5   6
O---O
7   8

sage: print CartanType(["BC",5,2], ["A",4]).ascii_art()
O=<=O---O---O---O=<=O
1   2   3   4   5   6
O---O---O---O
7   8   9   10

sage: print CartanType(["A",4], ["BC",5,2], ["C",3]).ascii_art()
O---O---O---O
1   2   3   4
O=<=O---O---O---O=<=O
5   6   7   8   9   10
O---O=<=O
11   12   13
cartan_matrix(subdivide=True)

Return the Cartan matrix associated with self. By default the Cartan matrix is a subdivided block matrix showing the reducibility but the subdivision can be suppressed with the option subdivide = False.

Todo

Currently subdivide is currently ignored.

EXAMPLES:

sage: ct = CartanType("A2","B2")
sage: ct.cartan_matrix()
[ 2 -1| 0  0]
[-1  2| 0  0]
[-----+-----]
[ 0  0| 2 -1]
[ 0  0|-2  2]
sage: ct.cartan_matrix(subdivide=False)
[ 2 -1  0  0]
[-1  2  0  0]
[ 0  0  2 -1]
[ 0  0 -2  2]
component_types()

A list of Cartan types making up the reducible type.

EXAMPLES:

sage: CartanType(['A',2],['B',2]).component_types()
[['A', 2], ['B', 2]]
dual()

EXAMPLES:

sage: CartanType("A2xB2").dual()
A2xC2
dynkin_diagram()

Returns a Dynkin diagram for type reducible.

EXAMPLES:

sage: dd = CartanType("A2xB2xF4").dynkin_diagram()
sage: dd
O---O
1   2
O=>=O
3   4
O---O=>=O---O
5   6   7   8
A2xB2xF4
sage: dd.edges()
[(1, 2, 1), (2, 1, 1), (3, 4, 2), (4, 3, 1), (5, 6, 1), (6, 5, 1), (6, 7, 2), (7, 6, 1), (7, 8, 1), (8, 7, 1)]

sage: CartanType("F4xA2").dynkin_diagram()
O---O=>=O---O
1   2   3   4
O---O
5   6
F4xA2
index_set()

Implements CartanType_abstract.index_set().

For the moment, the index set is always of the form \(\{1, \ldots, n\}\).

EXAMPLES:

sage: CartanType("A2","A1").index_set()
(1, 2, 3)
is_affine()

Report that this reducible Cartan type is not affine

EXAMPLES:

sage: CartanType(['A',2],['B',2]).is_affine()
False
is_finite()

EXAMPLES:

sage: ct1 = CartanType(['A',2],['B',2])
sage: ct1.is_finite()
True
sage: ct2 = CartanType(['A',2],['B',2,1])
sage: ct2.is_finite()
False

TESTS:

sage: isinstance(ct1, sage.combinat.root_system.cartan_type.CartanType_finite)
True
sage: isinstance(ct2, sage.combinat.root_system.cartan_type.CartanType_finite)
False
is_irreducible()

Report that this Cartan type is not irreducible.

EXAMPLES:

sage: ct = CartanType(['A',2],['B',2])
sage: ct.is_irreducible()
False
rank()

Returns the rank of self.

EXAMPLES:

sage: CartanType("A2","A1").rank()
3
type()

Returns “reducible” since the type is reducible.

EXAMPLES:

sage: CartanType(['A',2],['B',2]).type()
'reducible'

Previous topic

Root system data for dual Cartan types

Next topic

Root system data for relabelled Cartan types

This Page