# Root system data for type B#

class sage.combinat.root_system.type_B.AmbientSpace(root_system, base_ring, index_set=None)[source]#

Bases: AmbientSpace

dimension()[source]#

EXAMPLES:

sage: e = RootSystem(['B',3]).ambient_space()
sage: e.dimension()
3

>>> from sage.all import *
>>> e = RootSystem(['B',Integer(3)]).ambient_space()
>>> e.dimension()
3

fundamental_weight(i)[source]#

EXAMPLES:

sage: RootSystem(['B',3]).ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)}

>>> from sage.all import *
>>> RootSystem(['B',Integer(3)]).ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)}

negative_roots()[source]#

EXAMPLES:

sage: RootSystem(['B',3]).ambient_space().negative_roots()
[(-1, 1, 0),
(-1, -1, 0),
(-1, 0, 1),
(-1, 0, -1),
(0, -1, 1),
(0, -1, -1),
(-1, 0, 0),
(0, -1, 0),
(0, 0, -1)]

>>> from sage.all import *
>>> RootSystem(['B',Integer(3)]).ambient_space().negative_roots()
[(-1, 1, 0),
(-1, -1, 0),
(-1, 0, 1),
(-1, 0, -1),
(0, -1, 1),
(0, -1, -1),
(-1, 0, 0),
(0, -1, 0),
(0, 0, -1)]

positive_roots()[source]#

EXAMPLES:

sage: RootSystem(['B',3]).ambient_space().positive_roots()
[(1, -1, 0),
(1, 1, 0),
(1, 0, -1),
(1, 0, 1),
(0, 1, -1),
(0, 1, 1),
(1, 0, 0),
(0, 1, 0),
(0, 0, 1)]

>>> from sage.all import *
>>> RootSystem(['B',Integer(3)]).ambient_space().positive_roots()
[(1, -1, 0),
(1, 1, 0),
(1, 0, -1),
(1, 0, 1),
(0, 1, -1),
(0, 1, 1),
(1, 0, 0),
(0, 1, 0),
(0, 0, 1)]

root(i, j)[source]#

Note that indexing starts at 0.

EXAMPLES:

sage: e = RootSystem(['B',3]).ambient_space()
sage: e.root(0,1)
(1, -1, 0)

>>> from sage.all import *
>>> e = RootSystem(['B',Integer(3)]).ambient_space()
>>> e.root(Integer(0),Integer(1))
(1, -1, 0)

simple_root(i)[source]#

EXAMPLES:

sage: e = RootSystem(['B',4]).ambient_space()
sage: e.simple_roots()
Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1), 4: (0, 0, 0, 1)}
sage: e.positive_roots()
[(1, -1, 0, 0),
(1, 1, 0, 0),
(1, 0, -1, 0),
(1, 0, 1, 0),
(1, 0, 0, -1),
(1, 0, 0, 1),
(0, 1, -1, 0),
(0, 1, 1, 0),
(0, 1, 0, -1),
(0, 1, 0, 1),
(0, 0, 1, -1),
(0, 0, 1, 1),
(1, 0, 0, 0),
(0, 1, 0, 0),
(0, 0, 1, 0),
(0, 0, 0, 1)]
sage: e.fundamental_weights()
Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1, 1, 1, 0), 4: (1/2, 1/2, 1/2, 1/2)}

>>> from sage.all import *
>>> e = RootSystem(['B',Integer(4)]).ambient_space()
>>> e.simple_roots()
Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1), 4: (0, 0, 0, 1)}
>>> e.positive_roots()
[(1, -1, 0, 0),
(1, 1, 0, 0),
(1, 0, -1, 0),
(1, 0, 1, 0),
(1, 0, 0, -1),
(1, 0, 0, 1),
(0, 1, -1, 0),
(0, 1, 1, 0),
(0, 1, 0, -1),
(0, 1, 0, 1),
(0, 0, 1, -1),
(0, 0, 1, 1),
(1, 0, 0, 0),
(0, 1, 0, 0),
(0, 0, 1, 0),
(0, 0, 0, 1)]
>>> e.fundamental_weights()
Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1, 1, 1, 0), 4: (1/2, 1/2, 1/2, 1/2)}

class sage.combinat.root_system.type_B.CartanType(n)[source]#

EXAMPLES:

sage: ct = CartanType(['B',4])
sage: ct
['B', 4]
sage: ct._repr_(compact = True)
'B4'

sage: ct.is_irreducible()
True
sage: ct.is_finite()
True
sage: ct.is_affine()
False
sage: ct.is_crystallographic()
True
sage: ct.is_simply_laced()
False
sage: ct.affine()
['B', 4, 1]
sage: ct.dual()
['C', 4]

sage: ct = CartanType(['B',1])
sage: ct.is_simply_laced()
True
sage: ct.affine()
['B', 1, 1]

>>> from sage.all import *
>>> ct = CartanType(['B',Integer(4)])
>>> ct
['B', 4]
>>> ct._repr_(compact = True)
'B4'

>>> ct.is_irreducible()
True
>>> ct.is_finite()
True
>>> ct.is_affine()
False
>>> ct.is_crystallographic()
True
>>> ct.is_simply_laced()
False
>>> ct.affine()
['B', 4, 1]
>>> ct.dual()
['C', 4]

>>> ct = CartanType(['B',Integer(1)])
>>> ct.is_simply_laced()
True
>>> ct.affine()
['B', 1, 1]

AmbientSpace[source]#

alias of AmbientSpace

PieriFactors[source]#

alias of PieriFactors_type_B

ascii_art(label=None, node=None)[source]#

Return an ascii art representation of the Dynkin diagram.

EXAMPLES:

sage: print(CartanType(['B',1]).ascii_art())
O
1
sage: print(CartanType(['B',2]).ascii_art())
O=>=O
1   2
sage: print(CartanType(['B',5]).ascii_art(label = lambda x: x+2))
O---O---O---O=>=O
3   4   5   6   7

>>> from sage.all import *
>>> print(CartanType(['B',Integer(1)]).ascii_art())
O
1
>>> print(CartanType(['B',Integer(2)]).ascii_art())
O=>=O
1   2
>>> print(CartanType(['B',Integer(5)]).ascii_art(label = lambda x: x+Integer(2)))
O---O---O---O=>=O
3   4   5   6   7

coxeter_number()[source]#

Return the Coxeter number associated with self.

EXAMPLES:

sage: CartanType(['B',4]).coxeter_number()
8

>>> from sage.all import *
>>> CartanType(['B',Integer(4)]).coxeter_number()
8

dual()[source]#

Types B and C are in duality:

EXAMPLES:

sage: CartanType(["C", 3]).dual()
['B', 3]

>>> from sage.all import *
>>> CartanType(["C", Integer(3)]).dual()
['B', 3]

dual_coxeter_number()[source]#

Return the dual Coxeter number associated with self.

EXAMPLES:

sage: CartanType(['B',4]).dual_coxeter_number()
7

>>> from sage.all import *
>>> CartanType(['B',Integer(4)]).dual_coxeter_number()
7

dynkin_diagram()[source]#

Returns a Dynkin diagram for type B.

EXAMPLES:

sage: b = CartanType(['B',3]).dynkin_diagram(); b                          # needs sage.graphs
O---O=>=O
1   2   3
B3
sage: b.edges(sort=True)                                                   # needs sage.graphs
[(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1)]

sage: b = CartanType(['B',1]).dynkin_diagram(); b                          # needs sage.graphs
O
1
B1
sage: b.edges(sort=True)                                                   # needs sage.graphs
[]

>>> from sage.all import *
>>> b = CartanType(['B',Integer(3)]).dynkin_diagram(); b                          # needs sage.graphs
O---O=>=O
1   2   3
B3
>>> b.edges(sort=True)                                                   # needs sage.graphs
[(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1)]

>>> b = CartanType(['B',Integer(1)]).dynkin_diagram(); b                          # needs sage.graphs
O
1
B1
>>> b.edges(sort=True)                                                   # needs sage.graphs
[]