Root system data for type A infinity

class sage.combinat.root_system.type_A_infinity.CartanType(index_set)[source]

Bases: CartanType_standard, CartanType_simple

The Cartan type \(A_{\infty}\).

We use NN and ZZ to explicitly differentiate between the \(A_{+\infty}\) and \(A_{\infty}\) root systems, respectively. While oo is the same as +Infinity in Sage, it is used as an alias for ZZ.

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

Return an ascii art representation of the extended Dynkin diagram.

EXAMPLES:

sage: print(CartanType(['A', ZZ]).ascii_art())
..---O---O---O---O---O---O---O---..
    -3  -2  -1   0   1   2   3
sage: print(CartanType(['A', NN]).ascii_art())
O---O---O---O---O---O---O---..
0   1   2   3   4   5   6
>>> from sage.all import *
>>> print(CartanType(['A', ZZ]).ascii_art())
..---O---O---O---O---O---O---O---..
    -3  -2  -1   0   1   2   3
>>> print(CartanType(['A', NN]).ascii_art())
O---O---O---O---O---O---O---..
0   1   2   3   4   5   6
dual()[source]

Simply laced Cartan types are self-dual, so return self.

EXAMPLES:

sage: CartanType(["A", NN]).dual()
['A', NN]
sage: CartanType(["A", ZZ]).dual()
['A', ZZ]
>>> from sage.all import *
>>> CartanType(["A", NN]).dual()
['A', NN]
>>> CartanType(["A", ZZ]).dual()
['A', ZZ]
index_set()[source]

Return the index set for the Cartan type self.

The index set for all standard finite Cartan types is of the form \(\{1, \ldots, n\}\). (See type_I for a slight abuse of this).

EXAMPLES:

sage: CartanType(['A', NN]).index_set()
Non negative integer semiring
sage: CartanType(['A', ZZ]).index_set()
Integer Ring
>>> from sage.all import *
>>> CartanType(['A', NN]).index_set()
Non negative integer semiring
>>> CartanType(['A', ZZ]).index_set()
Integer Ring
is_affine()[source]

Return False because self is not (untwisted) affine.

EXAMPLES:

sage: CartanType(['A', NN]).is_affine()
False
sage: CartanType(['A', ZZ]).is_affine()
False
>>> from sage.all import *
>>> CartanType(['A', NN]).is_affine()
False
>>> CartanType(['A', ZZ]).is_affine()
False
is_crystallographic()[source]

Return False because self is not crystallographic.

EXAMPLES:

sage: CartanType(['A', NN]).is_crystallographic()
True
sage: CartanType(['A', ZZ]).is_crystallographic()
True
>>> from sage.all import *
>>> CartanType(['A', NN]).is_crystallographic()
True
>>> CartanType(['A', ZZ]).is_crystallographic()
True
is_finite()[source]

Return True because self is not finite.

EXAMPLES:

sage: CartanType(['A', NN]).is_finite()
False
sage: CartanType(['A', ZZ]).is_finite()
False
>>> from sage.all import *
>>> CartanType(['A', NN]).is_finite()
False
>>> CartanType(['A', ZZ]).is_finite()
False
is_simply_laced()[source]

Return True because self is simply laced.

EXAMPLES:

sage: CartanType(['A', NN]).is_simply_laced()
True
sage: CartanType(['A', ZZ]).is_simply_laced()
True
>>> from sage.all import *
>>> CartanType(['A', NN]).is_simply_laced()
True
>>> CartanType(['A', ZZ]).is_simply_laced()
True
is_untwisted_affine()[source]

Return False because self is not (untwisted) affine.

EXAMPLES:

sage: CartanType(['A', NN]).is_untwisted_affine()
False
sage: CartanType(['A', ZZ]).is_untwisted_affine()
False
>>> from sage.all import *
>>> CartanType(['A', NN]).is_untwisted_affine()
False
>>> CartanType(['A', ZZ]).is_untwisted_affine()
False
rank()[source]

Return the rank of self which for type \(X_n\) is \(n\).

EXAMPLES:

sage: CartanType(['A', NN]).rank()
+Infinity
sage: CartanType(['A', ZZ]).rank()
+Infinity
>>> from sage.all import *
>>> CartanType(['A', NN]).rank()
+Infinity
>>> CartanType(['A', ZZ]).rank()
+Infinity

As this example shows, the rank is slightly ambiguous because the root systems of type \(['A',NN]\) and type \(['A',ZZ]\) have the same rank. Instead, it is better ot use index_set() to differentiate between these two root systems.

type()[source]

Return the type of self.

EXAMPLES:

sage: CartanType(['A', NN]).type()
'A'
sage: CartanType(['A', ZZ]).type()
'A'
>>> from sage.all import *
>>> CartanType(['A', NN]).type()
'A'
>>> CartanType(['A', ZZ]).type()
'A'