Root system data for super type A#
- class sage.combinat.root_system.type_super_A.AmbientSpace(root_system, base_ring, index_set=None)#
Bases:
AmbientSpace
The ambient space for (super) type \(A(m|n)\).
EXAMPLES:
sage: R = RootSystem(['A', [2,1]]) sage: AL = R.ambient_space(); AL Ambient space of the Root system of type ['A', [2, 1]] sage: AL.basis() Finite family {-3: (1, 0, 0, 0, 0), -2: (0, 1, 0, 0, 0), -1: (0, 0, 1, 0, 0), 1: (0, 0, 0, 1, 0), 2: (0, 0, 0, 0, 1)}
- class Element#
Bases:
AmbientSpaceElement
- associated_coroot()#
Return the coroot associated to
self
.EXAMPLES:
sage: L = RootSystem(['A', [3,2]]).ambient_space() sage: al = L.simple_roots() sage: al[-1].associated_coroot() (0, 0, 1, -1, 0, 0, 0) sage: al[0].associated_coroot() (0, 0, 0, 1, -1, 0, 0) sage: al[1].associated_coroot() (0, 0, 0, 0, -1, 1, 0) sage: a = al[-1] + al[0] + al[1]; a (0, 0, 1, 0, 0, -1, 0) sage: a.associated_coroot() (0, 0, 1, 0, -2, 1, 0) sage: h = L.simple_coroots() sage: h[-1] + h[0] + h[1] (0, 0, 1, 0, -2, 1, 0) sage: (al[-1] + al[0] + al[2]).associated_coroot() (0, 0, 1, 0, -1, -1, 1)
- dot_product(lambdacheck)#
The scalar product with elements of the coroot lattice embedded in the ambient space.
EXAMPLES:
sage: L = RootSystem(['A', [2,1]]).ambient_space() sage: a = L.simple_roots() sage: matrix([[a[i].inner_product(a[j]) for j in L.index_set()] for i in L.index_set()]) [ 2 -1 0 0] [-1 2 -1 0] [ 0 -1 0 1] [ 0 0 1 -2]
- has_descent(i, positive=False)#
Test if
self
has a descent at position \(i\), that is ifself
is on the strict negative side of the \(i^{th}\) simple reflection hyperplane.If
positive
isTrue
, tests if it is on the strict positive side instead.EXAMPLES:
sage: L = RootSystem(['A', [2,1]]).ambient_space() sage: al = L.simple_roots() sage: [al[i].has_descent(1) for i in L.index_set()] [False, False, True, False] sage: [(-al[i]).has_descent(1) for i in L.index_set()] [False, False, False, True] sage: [al[i].has_descent(1, True) for i in L.index_set()] [False, False, False, True] sage: [(-al[i]).has_descent(1, True) for i in L.index_set()] [False, False, True, False] sage: (al[-2] + al[0] + al[1]).has_descent(-1) True sage: (al[-2] + al[0] + al[1]).has_descent(1) False sage: (al[-2] + al[0] + al[1]).has_descent(1, positive=True) True sage: all(all(not la.has_descent(i) for i in L.index_set()) ....: for la in L.fundamental_weights()) True
- inner_product(lambdacheck)#
The scalar product with elements of the coroot lattice embedded in the ambient space.
EXAMPLES:
sage: L = RootSystem(['A', [2,1]]).ambient_space() sage: a = L.simple_roots() sage: matrix([[a[i].inner_product(a[j]) for j in L.index_set()] for i in L.index_set()]) [ 2 -1 0 0] [-1 2 -1 0] [ 0 -1 0 1] [ 0 0 1 -2]
- is_dominant_weight()#
Test whether
self
is a dominant element of the weight lattice.EXAMPLES:
sage: L = RootSystem(['A',2]).ambient_lattice() sage: Lambda = L.fundamental_weights() sage: [x.is_dominant() for x in Lambda] [True, True] sage: (3*Lambda[1]+Lambda[2]).is_dominant() True sage: (Lambda[1]-Lambda[2]).is_dominant() False sage: (-Lambda[1]+Lambda[2]).is_dominant() False
Tests that the scalar products with the coroots are all nonnegative integers. For example, if \(x\) is the sum of a dominant element of the weight lattice plus some other element orthogonal to all coroots, then the implementation correctly reports \(x\) to be a dominant weight:
sage: x = Lambda[1] + L([-1,-1,-1]) sage: x.is_dominant_weight() True
- scalar(lambdacheck)#
The scalar product with elements of the coroot lattice embedded in the ambient space.
EXAMPLES:
sage: L = RootSystem(['A', [2,1]]).ambient_space() sage: a = L.simple_roots() sage: matrix([[a[i].inner_product(a[j]) for j in L.index_set()] for i in L.index_set()]) [ 2 -1 0 0] [-1 2 -1 0] [ 0 -1 0 1] [ 0 0 1 -2]
- dimension()#
Return the dimension of this ambient space.
EXAMPLES:
sage: e = RootSystem(['A', [4,2]]).ambient_space() sage: e.dimension() 8
- fundamental_weight(i)#
Return the fundamental weight \(\Lambda_i\) of
self
.EXAMPLES:
sage: L = RootSystem(['A', [3,2]]).ambient_space() sage: L.fundamental_weight(-1) (1, 1, 1, 0, 0, 0, 0) sage: L.fundamental_weight(0) (1, 1, 1, 1, 0, 0, 0) sage: L.fundamental_weight(2) (1, 1, 1, 1, -1, -1, -2) sage: list(L.fundamental_weights()) [(1, 0, 0, 0, 0, 0, 0), (1, 1, 0, 0, 0, 0, 0), (1, 1, 1, 0, 0, 0, 0), (1, 1, 1, 1, 0, 0, 0), (1, 1, 1, 1, -1, -2, -2), (1, 1, 1, 1, -1, -1, -2)]
sage: L = RootSystem(['A', [2,3]]).ambient_space() sage: La = L.fundamental_weights() sage: al = L.simple_roots() sage: I = L.index_set() sage: matrix([[al[i].scalar(La[j]) for i in I] for j in I]) [ 1 0 0 0 0 0] [ 0 1 0 0 0 0] [ 0 0 1 0 0 0] [ 0 0 0 -1 0 0] [ 0 0 0 0 -1 0] [ 0 0 0 0 0 -1]
- highest_root()#
Return the highest root of
self
.EXAMPLES:
sage: e = RootSystem(['A', [4,2]]).ambient_lattice() sage: e.highest_root() (1, 0, 0, 0, 0, 0, 0, -1)
- negative_even_roots()#
Return the negative even roots of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: e.negative_even_roots() [(0, -1, 1, 0, 0), (-1, 0, 1, 0, 0), (-1, 1, 0, 0, 0), (0, 0, 0, -1, 1)]
- negative_odd_roots()#
Return the negative odd roots of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: e.negative_odd_roots() [(0, 0, -1, 1, 0), (0, 0, -1, 0, 1), (0, -1, 0, 1, 0), (0, -1, 0, 0, 1), (-1, 0, 0, 1, 0), (-1, 0, 0, 0, 1)]
- negative_roots()#
Return the negative roots of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: e.negative_roots() [(0, -1, 1, 0, 0), (-1, 0, 1, 0, 0), (-1, 1, 0, 0, 0), (0, 0, 0, -1, 1), (0, 0, -1, 1, 0), (0, 0, -1, 0, 1), (0, -1, 0, 1, 0), (0, -1, 0, 0, 1), (-1, 0, 0, 1, 0), (-1, 0, 0, 0, 1)]
- positive_even_roots()#
Return the positive even roots of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: e.positive_even_roots() [(0, 1, -1, 0, 0), (1, 0, -1, 0, 0), (1, -1, 0, 0, 0), (0, 0, 0, 1, -1)]
- positive_odd_roots()#
Return the positive odd roots of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: e.positive_odd_roots() [(0, 0, 1, -1, 0), (0, 0, 1, 0, -1), (0, 1, 0, -1, 0), (0, 1, 0, 0, -1), (1, 0, 0, -1, 0), (1, 0, 0, 0, -1)]
- positive_roots()#
Return the positive roots of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: e.positive_roots() [(0, 1, -1, 0, 0), (1, 0, -1, 0, 0), (1, -1, 0, 0, 0), (0, 0, 0, 1, -1), (0, 0, 1, -1, 0), (0, 0, 1, 0, -1), (0, 1, 0, -1, 0), (0, 1, 0, 0, -1), (1, 0, 0, -1, 0), (1, 0, 0, 0, -1)]
- simple_coroot(i)#
Return the simple coroot \(h_i\) of
self
.EXAMPLES:
sage: L = RootSystem(['A', [3,2]]).ambient_space() sage: L.simple_coroot(-2) (0, 1, -1, 0, 0, 0, 0) sage: L.simple_coroot(0) (0, 0, 0, 1, -1, 0, 0) sage: L.simple_coroot(2) (0, 0, 0, 0, 0, -1, 1) sage: list(L.simple_coroots()) [(1, -1, 0, 0, 0, 0, 0), (0, 1, -1, 0, 0, 0, 0), (0, 0, 1, -1, 0, 0, 0), (0, 0, 0, 1, -1, 0, 0), (0, 0, 0, 0, -1, 1, 0), (0, 0, 0, 0, 0, -1, 1)]
- simple_root(i)#
Return the \(i\)-th simple root of
self
.EXAMPLES:
sage: e = RootSystem(['A', [2,1]]).ambient_lattice() sage: list(e.simple_roots()) [(1, -1, 0, 0, 0), (0, 1, -1, 0, 0), (0, 0, 1, -1, 0), (0, 0, 0, 1, -1)]
- classmethod smallest_base_ring(cartan_type=None)#
Return the smallest base ring the ambient space can be defined upon.
See also
EXAMPLES:
sage: e = RootSystem(['A', [3,1]]).ambient_space() sage: e.smallest_base_ring() Integer Ring
- class sage.combinat.root_system.type_super_A.CartanType(m, n)#
Bases:
SuperCartanType_standard
Cartan Type \(A(m|n)\).
See also
CartanType()
- AmbientSpace#
alias of
AmbientSpace
- ascii_art(label=<function CartanType.<lambda> at 0x7fded85d0940>, node=None)#
Return an ascii art representation of the Dynkin diagram.
EXAMPLES:
sage: t = CartanType(['A', [3,2]]) sage: print(t.ascii_art()) O---O---O---X---O---O -3 -2 -1 0 1 2 sage: t = CartanType(['A', [3,7]]) sage: print(t.ascii_art()) O---O---O---X---O---O---O---O---O---O---O -3 -2 -1 0 1 2 3 4 5 6 7 sage: t = CartanType(['A', [0,7]]) sage: print(t.ascii_art()) X---O---O---O---O---O---O---O 0 1 2 3 4 5 6 7 sage: t = CartanType(['A', [0,0]]) sage: print(t.ascii_art()) X 0 sage: t = CartanType(['A', [5,0]]) sage: print(t.ascii_art()) O---O---O---O---O---X -5 -4 -3 -2 -1 0
- cartan_matrix()#
Return the Cartan matrix associated to
self
.EXAMPLES:
sage: ct = CartanType(['A', [2,3]]) sage: ct.cartan_matrix() [ 2 -1 0 0 0 0] [-1 2 -1 0 0 0] [ 0 -1 0 1 0 0] [ 0 0 -1 2 -1 0] [ 0 0 0 -1 2 -1] [ 0 0 0 0 -1 2]
- dual()#
Return dual of
self
.EXAMPLES:
sage: CartanType(['A', [2,3]]).dual() ['A', [2, 3]]
- dynkin_diagram()#
Return the Dynkin diagram of super type A.
EXAMPLES:
sage: a = CartanType(['A', [4,2]]).dynkin_diagram() sage: a O---O---O---O---X---O---O -4 -3 -2 -1 0 1 2 A4|2 sage: a.edges(sort=True) [(-4, -3, 1), (-3, -4, 1), (-3, -2, 1), (-2, -3, 1), (-2, -1, 1), (-1, -2, 1), (-1, 0, 1), (0, -1, 1), (0, 1, 1), (1, 0, -1), (1, 2, 1), (2, 1, 1)]
- index_set()#
Return the index set of
self
.EXAMPLES:
sage: CartanType(['A', [2,3]]).index_set() (-2, -1, 0, 1, 2, 3)
- is_affine()#
Return whether
self
is affine or not.EXAMPLES:
sage: CartanType(['A', [2,3]]).is_affine() False
- is_finite()#
Return whether
self
is finite or not.EXAMPLES:
sage: CartanType(['A', [2,3]]).is_finite() True
- is_irreducible()#
Return whether
self
is irreducible, which isTrue
.EXAMPLES:
sage: CartanType(['A', [3,4]]).is_irreducible() True
- relabel(relabelling)#
Return a relabelled copy of this Cartan type.
INPUT:
relabelling
– a function (or a list or dictionary)
OUTPUT:
an isomorphic Cartan type obtained by relabelling the nodes of the Dynkin diagram. Namely, the node with label
i
is relabelledf(i)
(or, byf[i]
iff
is a list or dictionary).EXAMPLES:
sage: ct = CartanType(['A', [1,2]]) sage: ct.dynkin_diagram() O---X---O---O -1 0 1 2 A1|2 sage: f={1:2,2:1,0:0,-1:-1} sage: ct.relabel(f) ['A', [1, 2]] relabelled by {-1: -1, 0: 0, 1: 2, 2: 1} sage: ct.relabel(f).dynkin_diagram() O---X---O---O -1 0 2 1 A1|2 relabelled by {-1: -1, 0: 0, 1: 2, 2: 1}
- root_system()#
Return root system of
self
.EXAMPLES:
sage: CartanType(['A', [2,3]]).root_system() Root system of type ['A', [2, 3]]
- symmetrizer()#
Return symmetrizing matrix for
self
.EXAMPLES:
sage: CartanType(['A', [2,3]]).symmetrizer() Finite family {-2: 1, -1: 1, 0: 1, 1: -1, 2: -1, 3: -1}
- type()#
Return type of
self
.EXAMPLES:
sage: CartanType(['A', [2,3]]).type() 'A'