Root system data for type D¶
- class sage.combinat.root_system.type_D.AmbientSpace(root_system, base_ring, index_set=None)[source]¶
Bases:
AmbientSpace
- dimension()[source]¶
EXAMPLES:
sage: e = RootSystem(['D',3]).ambient_space() sage: e.dimension() 3
>>> from sage.all import * >>> e = RootSystem(['D',Integer(3)]).ambient_space() >>> e.dimension() 3
- fundamental_weight(i)[source]¶
EXAMPLES:
sage: RootSystem(['D',4]).ambient_space().fundamental_weights() Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1/2, 1/2, 1/2, -1/2), 4: (1/2, 1/2, 1/2, 1/2)}
>>> from sage.all import * >>> RootSystem(['D',Integer(4)]).ambient_space().fundamental_weights() Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1/2, 1/2, 1/2, -1/2), 4: (1/2, 1/2, 1/2, 1/2)}
- negative_roots()[source]¶
EXAMPLES:
sage: RootSystem(['D',4]).ambient_space().negative_roots() [(-1, 1, 0, 0), (-1, 0, 1, 0), (0, -1, 1, 0), (-1, 0, 0, 1), (0, -1, 0, 1), (0, 0, -1, 1), (-1, -1, 0, 0), (-1, 0, -1, 0), (0, -1, -1, 0), (-1, 0, 0, -1), (0, -1, 0, -1), (0, 0, -1, -1)]
>>> from sage.all import * >>> RootSystem(['D',Integer(4)]).ambient_space().negative_roots() [(-1, 1, 0, 0), (-1, 0, 1, 0), (0, -1, 1, 0), (-1, 0, 0, 1), (0, -1, 0, 1), (0, 0, -1, 1), (-1, -1, 0, 0), (-1, 0, -1, 0), (0, -1, -1, 0), (-1, 0, 0, -1), (0, -1, 0, -1), (0, 0, -1, -1)]
- positive_roots()[source]¶
EXAMPLES:
sage: RootSystem(['D',4]).ambient_space().positive_roots() [(1, 1, 0, 0), (1, 0, 1, 0), (0, 1, 1, 0), (1, 0, 0, 1), (0, 1, 0, 1), (0, 0, 1, 1), (1, -1, 0, 0), (1, 0, -1, 0), (0, 1, -1, 0), (1, 0, 0, -1), (0, 1, 0, -1), (0, 0, 1, -1)]
>>> from sage.all import * >>> RootSystem(['D',Integer(4)]).ambient_space().positive_roots() [(1, 1, 0, 0), (1, 0, 1, 0), (0, 1, 1, 0), (1, 0, 0, 1), (0, 1, 0, 1), (0, 0, 1, 1), (1, -1, 0, 0), (1, 0, -1, 0), (0, 1, -1, 0), (1, 0, 0, -1), (0, 1, 0, -1), (0, 0, 1, -1)]
- root(i, j, p1, p2)[source]¶
Note that indexing starts at 0.
EXAMPLES:
sage: e = RootSystem(['D',3]).ambient_space() sage: e.root(0, 1, 1, 1) (-1, -1, 0) sage: e.root(0, 0, 1, 1) (-1, 0, 0)
>>> from sage.all import * >>> e = RootSystem(['D',Integer(3)]).ambient_space() >>> e.root(Integer(0), Integer(1), Integer(1), Integer(1)) (-1, -1, 0) >>> e.root(Integer(0), Integer(0), Integer(1), Integer(1)) (-1, 0, 0)
- simple_root(i)[source]¶
EXAMPLES:
sage: RootSystem(['D',4]).ambient_space().simple_roots() Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1), 4: (0, 0, 1, 1)}
>>> from sage.all import * >>> RootSystem(['D',Integer(4)]).ambient_space().simple_roots() Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1), 4: (0, 0, 1, 1)}
- class sage.combinat.root_system.type_D.CartanType(n)[source]¶
Bases:
CartanType_standard_finite
,CartanType_simply_laced
EXAMPLES:
sage: ct = CartanType(['D',4]) sage: ct ['D', 4] sage: ct._repr_(compact = True) 'D4' sage: ct.is_irreducible() True sage: ct.is_finite() True sage: ct.is_crystallographic() True sage: ct.is_simply_laced() True sage: ct.dual() ['D', 4] sage: ct.affine() ['D', 4, 1] sage: ct = CartanType(['D',2]) sage: ct.is_irreducible() False sage: ct.dual() ['D', 2] sage: ct.affine() Traceback (most recent call last): ... ValueError: ['D', 2, 1] is not a valid Cartan type
>>> from sage.all import * >>> ct = CartanType(['D',Integer(4)]) >>> ct ['D', 4] >>> ct._repr_(compact = True) 'D4' >>> ct.is_irreducible() True >>> ct.is_finite() True >>> ct.is_crystallographic() True >>> ct.is_simply_laced() True >>> ct.dual() ['D', 4] >>> ct.affine() ['D', 4, 1] >>> ct = CartanType(['D',Integer(2)]) >>> ct.is_irreducible() False >>> ct.dual() ['D', 2] >>> ct.affine() Traceback (most recent call last): ... ValueError: ['D', 2, 1] is not a valid Cartan type
- AmbientSpace[source]¶
alias of
AmbientSpace
- ascii_art(label=None, node=None)[source]¶
Return a ascii art representation of the extended Dynkin diagram.
EXAMPLES:
sage: print(CartanType(['D',3]).ascii_art()) O 3 | | O---O 1 2 sage: print(CartanType(['D',4]).ascii_art()) O 4 | | O---O---O 1 2 3 sage: print(CartanType(['D',4]).ascii_art(label = lambda x: x+2)) O 6 | | O---O---O 3 4 5 sage: print(CartanType(['D',6]).ascii_art(label = lambda x: x+2)) O 8 | | O---O---O---O---O 3 4 5 6 7
>>> from sage.all import * >>> print(CartanType(['D',Integer(3)]).ascii_art()) O 3 | | O---O 1 2 >>> print(CartanType(['D',Integer(4)]).ascii_art()) O 4 | | O---O---O 1 2 3 >>> print(CartanType(['D',Integer(4)]).ascii_art(label = lambda x: x+Integer(2))) O 6 | | O---O---O 3 4 5 >>> print(CartanType(['D',Integer(6)]).ascii_art(label = lambda x: x+Integer(2))) O 8 | | O---O---O---O---O 3 4 5 6 7
- coxeter_number()[source]¶
Return the Coxeter number associated with
self
.EXAMPLES:
sage: CartanType(['D',4]).coxeter_number() 6
>>> from sage.all import * >>> CartanType(['D',Integer(4)]).coxeter_number() 6
- dual_coxeter_number()[source]¶
Return the dual Coxeter number associated with
self
.EXAMPLES:
sage: CartanType(['D',4]).dual_coxeter_number() 6
>>> from sage.all import * >>> CartanType(['D',Integer(4)]).dual_coxeter_number() 6
- dynkin_diagram()[source]¶
Return a Dynkin diagram for type D.
EXAMPLES:
sage: d = CartanType(['D',5]).dynkin_diagram(); d # needs sage.graphs O 5 | | O---O---O---O 1 2 3 4 D5 sage: d.edges(sort=True) # needs sage.graphs [(1, 2, 1), (2, 1, 1), (2, 3, 1), (3, 2, 1), (3, 4, 1), (3, 5, 1), (4, 3, 1), (5, 3, 1)] sage: d = CartanType(['D',4]).dynkin_diagram(); d # needs sage.graphs O 4 | | O---O---O 1 2 3 D4 sage: d.edges(sort=True) # needs sage.graphs [(1, 2, 1), (2, 1, 1), (2, 3, 1), (2, 4, 1), (3, 2, 1), (4, 2, 1)] sage: d = CartanType(['D',3]).dynkin_diagram(); d # needs sage.graphs O 3 | | O---O 1 2 D3 sage: d.edges(sort=True) # needs sage.graphs [(1, 2, 1), (1, 3, 1), (2, 1, 1), (3, 1, 1)] sage: d = CartanType(['D',2]).dynkin_diagram(); d # needs sage.graphs O O 1 2 D2 sage: d.edges(sort=True) # needs sage.graphs []
>>> from sage.all import * >>> d = CartanType(['D',Integer(5)]).dynkin_diagram(); d # needs sage.graphs O 5 | | O---O---O---O 1 2 3 4 D5 >>> d.edges(sort=True) # needs sage.graphs [(1, 2, 1), (2, 1, 1), (2, 3, 1), (3, 2, 1), (3, 4, 1), (3, 5, 1), (4, 3, 1), (5, 3, 1)] >>> d = CartanType(['D',Integer(4)]).dynkin_diagram(); d # needs sage.graphs O 4 | | O---O---O 1 2 3 D4 >>> d.edges(sort=True) # needs sage.graphs [(1, 2, 1), (2, 1, 1), (2, 3, 1), (2, 4, 1), (3, 2, 1), (4, 2, 1)] >>> d = CartanType(['D',Integer(3)]).dynkin_diagram(); d # needs sage.graphs O 3 | | O---O 1 2 D3 >>> d.edges(sort=True) # needs sage.graphs [(1, 2, 1), (1, 3, 1), (2, 1, 1), (3, 1, 1)] >>> d = CartanType(['D',Integer(2)]).dynkin_diagram(); d # needs sage.graphs O O 1 2 D2 >>> d.edges(sort=True) # needs sage.graphs []
- is_atomic()[source]¶
Implement
CartanType_abstract.is_atomic()
.\(D_2\) is atomic, like all \(D_n\), despite being non irreducible.
EXAMPLES:
sage: CartanType(["D",2]).is_atomic() True sage: CartanType(["D",2]).is_irreducible() False
>>> from sage.all import * >>> CartanType(["D",Integer(2)]).is_atomic() True >>> CartanType(["D",Integer(2)]).is_irreducible() False