Root system data for Cartan types with marked nodes¶
-
class
sage.combinat.root_system.type_marked.
AmbientSpace
(root_system, base_ring, index_set=None)¶ Bases:
sage.combinat.root_system.ambient_space.AmbientSpace
Ambient space for a marked finite Cartan type.
It is constructed in the canonical way from the ambient space of the original Cartan type.
EXAMPLES:
sage: L = CartanType(["F",4]).marked_nodes([1,3]).root_system().ambient_space(); L Ambient space of the Root system of type ['F', 4] with nodes (1, 3) marked sage: TestSuite(L).run()
-
dimension
()¶ Return the dimension of this ambient space.
EXAMPLES:
sage: L = CartanType(["F",4]).marked_nodes([1,3]).root_system().ambient_space() sage: L.dimension() 4
-
fundamental_weight
(i)¶ Return the
i
-th fundamental weight.It is constructed by looking up the corresponding simple coroot in the ambient space for the original Cartan type.
EXAMPLES:
sage: L = CartanType(["F",4]).marked_nodes([1,3]).root_system().ambient_space() sage: L.fundamental_weight(1) (1, 1, 0, 0) sage: L.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)}
-
simple_root
(i)¶ Return the
i
-th simple root.It is constructed by looking up the corresponding simple coroot in the ambient space for the original Cartan type.
EXAMPLES:
sage: L = CartanType(["F",4]).marked_nodes([1,3]).root_system().ambient_space() sage: L.simple_root(1) (0, 1, -1, 0) sage: L.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)} sage: L.simple_coroots() Finite family {1: (0, 1, -1, 0), 2: (0, 0, 1, -1), 3: (0, 0, 0, 2), 4: (1, -1, -1, -1)}
-
-
class
sage.combinat.root_system.type_marked.
CartanType
(ct, marked_nodes)¶ Bases:
sage.combinat.root_system.cartan_type.CartanType_decorator
A class for Cartan types with marked nodes.
INPUT:
ct
– a Cartan typemarked_nodes
– a list of marked nodes
EXAMPLES:
We take the Cartan type \(B_4\):
sage: T = CartanType(['B',4]) sage: T.dynkin_diagram() O---O---O=>=O 1 2 3 4 B4
And mark some of its nodes:
sage: T = T.marked_nodes([2,3]) sage: T.dynkin_diagram() O---X---X=>=O 1 2 3 4 B4 with nodes (2, 3) marked
Markings are not additive:
sage: T.marked_nodes([1,4]).dynkin_diagram() X---O---O=>=X 1 2 3 4 B4 with nodes (1, 4) marked
And trivial relabelling are honoured nicely:
sage: T = T.marked_nodes([]) sage: T.dynkin_diagram() O---O---O=>=O 1 2 3 4 B4
-
ascii_art
(label=<function CartanType.<lambda> at 0x7f96bf12bca0>, node=None)¶ Return an ascii art representation of this Cartan type.
EXAMPLES:
sage: print(CartanType(["G", 2]).marked_nodes([2]).ascii_art()) 3 O=<=X 1 2 sage: print(CartanType(["B", 3, 1]).marked_nodes([0, 3]).ascii_art()) X 0 | | O---O=>=X 1 2 3 sage: print(CartanType(["F", 4, 1]).marked_nodes([0, 2]).ascii_art()) X---O---X=>=O---O 0 1 2 3 4
-
dual
()¶ Implements
sage.combinat.root_system.cartan_type.CartanType_abstract.dual()
, using that taking the dual and marking nodes are commuting operations.EXAMPLES:
sage: T = CartanType(["BC",3, 2]) sage: T.marked_nodes([1,3]).dual().dynkin_diagram() O=>=X---O=>=X 0 1 2 3 BC3~* with nodes (1, 3) marked sage: T.dual().marked_nodes([1,3]).dynkin_diagram() O=>=X---O=>=X 0 1 2 3 BC3~* with nodes (1, 3) marked
-
dynkin_diagram
()¶ Return the Dynkin diagram for this Cartan type.
EXAMPLES:
sage: CartanType(["G", 2]).marked_nodes([2]).dynkin_diagram() 3 O=<=X 1 2 G2 with node 2 marked
-
marked_nodes
(marked_nodes)¶ Return
self
with nodesmarked_nodes
marked.EXAMPLES:
sage: ct = CartanType(['A',12]) sage: m = ct.marked_nodes([1,4,6,7,8,12]); m ['A', 12] with nodes (1, 4, 6, 7, 8, 12) marked sage: m.marked_nodes([2]) ['A', 12] with node 2 marked sage: m.marked_nodes([]) is ct True
-
relabel
(relabelling)¶ Return the relabelling of
self
.EXAMPLES:
sage: T = CartanType(["BC",3, 2]) sage: T.marked_nodes([1,3]).relabel(lambda x: x+2).dynkin_diagram() O=<=X---O=<=X 2 3 4 5 BC3~ relabelled by {0: 2, 1: 3, 2: 4, 3: 5} with nodes (3, 5) marked sage: T.relabel(lambda x: x+2).marked_nodes([3,5]).dynkin_diagram() O=<=X---O=<=X 2 3 4 5 BC3~ relabelled by {0: 2, 1: 3, 2: 4, 3: 5} with nodes (3, 5) marked
-
type
()¶ Return the type of
self
orNone
if unknown.EXAMPLES:
sage: ct = CartanType(['F', 4]).marked_nodes([1,3]) sage: ct.type() 'F'
-
class
sage.combinat.root_system.type_marked.
CartanType_affine
(ct, marked_nodes)¶ Bases:
sage.combinat.root_system.type_marked.CartanType
,sage.combinat.root_system.cartan_type.CartanType_affine
-
basic_untwisted
()¶ Return the basic untwisted Cartan type associated with this affine Cartan type.
Given an affine type \(X_n^{(r)}\), the basic untwisted type is \(X_n\). In other words, it is the classical Cartan type that is twisted to obtain
self
.EXAMPLES:
sage: CartanType(['A', 7, 2]).marked_nodes([1,3]).basic_untwisted() ['A', 7] with nodes (1, 3) marked sage: CartanType(['D', 4, 3]).marked_nodes([0,2]).basic_untwisted() ['D', 4] with node 2 marked
-
classical
()¶ Return the classical Cartan type associated with
self
.EXAMPLES:
sage: T = CartanType(['A',4,1]).marked_nodes([0,2,4]) sage: T.dynkin_diagram() 0 X-----------+ | | | | O---X---O---X 1 2 3 4 A4~ with nodes (0, 2, 4) marked sage: T0 = T.classical() sage: T0 ['A', 4] with nodes (2, 4) marked sage: T0.dynkin_diagram() O---X---O---X 1 2 3 4 A4 with nodes (2, 4) marked
-
is_untwisted_affine
()¶ Implement
CartanType_affine.is_untwisted_affine()
.A marked Cartan type is untwisted affine if the original is.
EXAMPLES:
sage: CartanType(['B', 3, 1]).marked_nodes([1,3]).is_untwisted_affine() True
-
special_node
()¶ Return the special node of the Cartan type.
See also
special_node()
It is the special node of the non-marked Cartan type..
EXAMPLES:
sage: CartanType(['B', 3, 1]).marked_nodes([1,3]).special_node() 0
-
-
class
sage.combinat.root_system.type_marked.
CartanType_finite
(ct, marked_nodes)¶ Bases:
sage.combinat.root_system.type_marked.CartanType
,sage.combinat.root_system.cartan_type.CartanType_finite
-
AmbientSpace
¶ alias of
AmbientSpace
-
affine
()¶ Return the affine Cartan type associated with
self
.EXAMPLES:
sage: B4 = CartanType(['B',4]).marked_nodes([1,3]) sage: B4.dynkin_diagram() X---O---X=>=O 1 2 3 4 B4 with nodes (1, 3) marked sage: B4.affine().dynkin_diagram() O 0 | | X---O---X=>=O 1 2 3 4 B4~ with nodes (1, 3) marked
-