Root system data for relabelled Cartan types

sage.combinat.root_system.type_relabel.AmbientSpace

Ambient space for a relabelled finite Cartan type.

It is constructed in the canonical way from the ambient space of the original Cartan type, by relabelling the simple roots, fundamental weights, etc.

EXAMPLES:

sage: cycle = {1:2, 2:3, 3:4, 4:1}
sage: L = CartanType(["F",4]).relabel(cycle).root_system().ambient_space(); L
Ambient space of the Root system of type ['F', 4] relabelled by {1: 2, 2: 3, 3: 4, 4: 1}
sage: TestSuite(L).run()
sage.combinat.root_system.type_relabel.CartanType

A class for relabelled Cartan types.

sage.combinat.root_system.type_relabel.CartanType_affine
class sage.combinat.root_system.type_relabel.CartanType_finite(type, relabelling)

Bases: sage.combinat.root_system.type_relabel.CartanType, sage.combinat.root_system.cartan_type.CartanType_finite

AmbientSpace

Ambient space for a relabelled finite Cartan type.

It is constructed in the canonical way from the ambient space of the original Cartan type, by relabelling the simple roots, fundamental weights, etc.

EXAMPLES:

sage: cycle = {1:2, 2:3, 3:4, 4:1}
sage: L = CartanType(["F",4]).relabel(cycle).root_system().ambient_space(); L
Ambient space of the Root system of type ['F', 4] relabelled by {1: 2, 2: 3, 3: 4, 4: 1}
sage: TestSuite(L).run()
affine()

Return the affine Cartan type associated with self.

EXAMPLES:

sage: B4 = CartanType(['B',4])
sage: B4.dynkin_diagram()
O---O---O=>=O
1   2   3   4
B4
sage: B4.affine().dynkin_diagram()
    O 0
    |
    |
O---O---O=>=O
1   2   3   4
B4~

If possible, this reuses the original label for the special node:

sage: T = B4.relabel({1:2, 2:3, 3:4, 4:1}); T.dynkin_diagram()
O---O---O=>=O
2   3   4   1
B4 relabelled by {1: 2, 2: 3, 3: 4, 4: 1}
sage: T.affine().dynkin_diagram()
    O 0
    |
    |
O---O---O=>=O
2   3   4   1
B4~ relabelled by {0: 0, 1: 2, 2: 3, 3: 4, 4: 1}

Otherwise, it chooses a label for the special_node in \(0,1,...\):

sage: T = B4.relabel({1:0, 2:1, 3:2, 4:3}); T.dynkin_diagram()
O---O---O=>=O
0   1   2   3
B4 relabelled by {1: 0, 2: 1, 3: 2, 4: 3}
sage: T.affine().dynkin_diagram()
    O 4
    |
    |
O---O---O=>=O
0   1   2   3
B4~ relabelled by {0: 4, 1: 0, 2: 1, 3: 2, 4: 3}

This failed before trac ticket #13724:

sage: ct = CartanType(["G",2]).dual(); ct
['G', 2] relabelled by {1: 2, 2: 1}
sage: ct.affine()
['G', 2, 1] relabelled by {0: 0, 1: 2, 2: 1}

sage: ct = CartanType(["F",4]).dual(); ct
['F', 4] relabelled by {1: 4, 2: 3, 3: 2, 4: 1}
sage: ct.affine()
['F', 4, 1] relabelled by {0: 0, 1: 4, 2: 3, 3: 2, 4: 1}

Check that we don’t inadvertently change the internal relabelling of ct:

sage: ct
['F', 4] relabelled by {1: 4, 2: 3, 3: 2, 4: 1}