Bases: sage.combinat.root_system.ambient_space.AmbientSpace
EXAMPLES:
sage: RootSystem("A2xB2").ambient_space()
Ambient space of the Root system of type A2xB2
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]]
EXAMPLES:
sage: RootSystem("A2xB2").ambient_space().cartan_type()
A2xB2
EXAMPLES:
sage: RootSystem("A2xB2").ambient_space().component_types()
[['A', 2], ['B', 2]]
EXAMPLES:
sage: RootSystem("A2xB2").ambient_space().dimension()
5
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)}
Produces the corresponding element of the lattice.
INPUT:
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)]
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)]
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)]
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)}
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)}
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:
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
alias of AmbientSpace
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
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]
A list of Cartan types making up the reducible type.
EXAMPLES:
sage: CartanType(['A',2],['B',2]).component_types()
[['A', 2], ['B', 2]]
EXAMPLES:
sage: CartanType("A2xB2").dual()
A2xC2
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
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)
Report that this reducible Cartan type is not affine
EXAMPLES:
sage: CartanType(['A',2],['B',2]).is_affine()
False
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
Report that this Cartan type is not irreducible.
EXAMPLES:
sage: ct = CartanType(['A',2],['B',2])
sage: ct.is_irreducible()
False
Returns the rank of self.
EXAMPLES:
sage: CartanType("A2","A1").rank()
3
Returns “reducible” since the type is reducible.
EXAMPLES:
sage: CartanType(['A',2],['B',2]).type()
'reducible'