Bases: sage.combinat.root_system.ambient_space.AmbientSpace
The lattice behind . The computations are based on Bourbaki,
Groupes et Algebres de Lie, Ch. 4,5,6 (planche VIII).
Return the dimension of self.
EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space()
sage: e.dimension()
4
Return the fundamental weights of self.
EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space()
sage: e.fundamental_weights()
Finite family {1: (1, 1, 0, 0), 2: (2, 1, 1, 0), 3: (3/2, 1/2, 1/2, 1/2), 4: (1, 0, 0, 0)}
Return the negative roots.
EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space()
sage: e.negative_roots()
[(-1, 0, 0, 0),
(0, -1, 0, 0),
(0, 0, -1, 0),
(0, 0, 0, -1),
(-1, -1, 0, 0),
(-1, 0, -1, 0),
(-1, 0, 0, -1),
(0, -1, -1, 0),
(0, -1, 0, -1),
(0, 0, -1, -1),
(-1, 1, 0, 0),
(-1, 0, 1, 0),
(-1, 0, 0, 1),
(0, -1, 1, 0),
(0, -1, 0, 1),
(0, 0, -1, 1),
(-1/2, -1/2, -1/2, -1/2),
(-1/2, -1/2, -1/2, 1/2),
(-1/2, -1/2, 1/2, -1/2),
(-1/2, -1/2, 1/2, 1/2),
(-1/2, 1/2, -1/2, -1/2),
(-1/2, 1/2, -1/2, 1/2),
(-1/2, 1/2, 1/2, -1/2),
(-1/2, 1/2, 1/2, 1/2)]
Return the positive roots.
These are the roots which are positive with respect to the
lexicographic ordering of the basis elements
().
EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space()
sage: e.positive_roots()
[(1, 0, 0, 0),
(0, 1, 0, 0),
(0, 0, 1, 0),
(0, 0, 0, 1),
(1, 1, 0, 0),
(1, 0, 1, 0),
(1, 0, 0, 1),
(0, 1, 1, 0),
(0, 1, 0, 1),
(0, 0, 1, 1),
(1, -1, 0, 0),
(1, 0, -1, 0),
(1, 0, 0, -1),
(0, 1, -1, 0),
(0, 1, 0, -1),
(0, 0, 1, -1),
(1/2, 1/2, 1/2, 1/2),
(1/2, 1/2, 1/2, -1/2),
(1/2, 1/2, -1/2, 1/2),
(1/2, 1/2, -1/2, -1/2),
(1/2, -1/2, 1/2, 1/2),
(1/2, -1/2, 1/2, -1/2),
(1/2, -1/2, -1/2, 1/2),
(1/2, -1/2, -1/2, -1/2)]
sage: e.rho()
(11/2, 5/2, 3/2, 1/2)
Compute a root from base elements of the underlying lattice. The arguments specify the basis elements and the signs. Sadly, the base elements are indexed zero-based. We assume that if one of the indices is not given, the rest are not as well.
EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space()
sage: [ e.root(i,j,p2=1) for i in xrange(e.n) for j in xrange(i+1,e.n) ]
[(1, -1, 0, 0), (1, 0, -1, 0), (1, 0, 0, -1), (0, 1, -1, 0), (0, 1, 0, -1), (0, 0, 1, -1)]
Return the -th simple root.
It is computed according to what Bourbaki calls the Base:
EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space()
sage: e.simple_roots()
Finite family {1: (0, 1, -1, 0), 2: (0, 0, 1, -1), 3: (0, 0, 0, 1), 4: (1/2, -1/2, -1/2, -1/2)}
Bases: sage.combinat.root_system.cartan_type.CartanType_standard_finite, sage.combinat.root_system.cartan_type.CartanType_simple, sage.combinat.root_system.cartan_type.CartanType_crystallographic
EXAMPLES:
sage: ct = CartanType(['F',4])
sage: ct
['F', 4]
sage: ct._repr_(compact = True)
'F4'
sage: ct.is_irreducible()
True
sage: ct.is_finite()
True
sage: ct.is_crystallographic()
True
sage: ct.is_simply_laced()
False
sage: ct.dual()
['F', 4] relabelled by {1: 4, 2: 3, 3: 2, 4: 1}
sage: ct.affine()
['F', 4, 1]
TESTS:
sage: TestSuite(ct).run()
alias of AmbientSpace
Return an ascii art representation of the extended Dynkin diagram.
EXAMPLES:
sage: print CartanType(['F',4]).ascii_art(label = lambda x: x+2)
O---O=>=O---O
3 4 5 6
sage: print CartanType(['F',4]).ascii_art(label = lambda x: x-2)
O---O=>=O---O
-1 0 1 2
Return the Coxeter number associated with self.
EXAMPLES:
sage: CartanType(['F',4]).coxeter_number()
12
Return the dual Cartan type.
This uses that is self-dual up to relabelling.
EXAMPLES:
sage: F4 = CartanType(['F',4])
sage: F4.dual()
['F', 4] relabelled by {1: 4, 2: 3, 3: 2, 4: 1}
sage: F4.dynkin_diagram()
O---O=>=O---O
1 2 3 4
F4
sage: F4.dual().dynkin_diagram()
O---O=>=O---O
4 3 2 1
F4 relabelled by {1: 4, 2: 3, 3: 2, 4: 1}
Return the dual Coxeter number associated with self.
EXAMPLES:
sage: CartanType(['F',4]).dual_coxeter_number()
9
Returns a Dynkin diagram for type F.
EXAMPLES:
sage: f = CartanType(['F',4]).dynkin_diagram()
sage: f
O---O=>=O---O
1 2 3 4
F4
sage: sorted(f.edges())
[(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1), (3, 4, 1), (4, 3, 1)]