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
(corresponding to orthogonal groups of degree 4) is reducible since it is isomorphic to
. However type
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 0x7fd677fb5c80>, node=None)¶ Return 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 optionsubdivide = 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
.
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'