Nil-Coxeter Algebra#

class sage.algebras.nil_coxeter_algebra.NilCoxeterAlgebra(W, base_ring=Rational Field, prefix='u')[source]#

Bases: T

Construct the Nil-Coxeter algebra of given type.

This is the algebra with generators \(u_i\) for every node \(i\) of the corresponding Dynkin diagram. It has the usual braid relations (from the Weyl group) as well as the quadratic relation \(u_i^2 = 0\).

INPUT:

  • W – a Weyl group

OPTIONAL ARGUMENTS:

  • base_ring – a ring (default is the rational numbers)

  • prefix – a label for the generators (default “u”)

EXAMPLES:

sage: U = NilCoxeterAlgebra(WeylGroup(['A',3,1]))
sage: u0, u1, u2, u3 = U.algebra_generators()
sage: u1*u1
0
sage: u2*u1*u2 == u1*u2*u1
True
sage: U.an_element()
u[0,1,2,3] + 2*u[0] + 3*u[1] + 1
>>> from sage.all import *
>>> U = NilCoxeterAlgebra(WeylGroup(['A',Integer(3),Integer(1)]))
>>> u0, u1, u2, u3 = U.algebra_generators()
>>> u1*u1
0
>>> u2*u1*u2 == u1*u2*u1
True
>>> U.an_element()
u[0,1,2,3] + 2*u[0] + 3*u[1] + 1
homogeneous_generator_noncommutative_variables(r)[source]#

Give the \(r^{th}\) homogeneous function inside the Nil-Coxeter algebra. In finite type \(A\) this is the sum of all decreasing elements of length \(r\). In affine type \(A\) this is the sum of all cyclically decreasing elements of length \(r\). This is only defined in finite type \(A\), \(B\) and affine types \(A^{(1)}\), \(B^{(1)}\), \(C^{(1)}\), \(D^{(1)}\).

INPUT:

  • r – a positive integer at most the rank of the Weyl group

EXAMPLES:

sage: U = NilCoxeterAlgebra(WeylGroup(['A',3,1]))
sage: U.homogeneous_generator_noncommutative_variables(2)
u[1,0] + u[2,0] + u[0,3] + u[3,2] + u[3,1] + u[2,1]

sage: U = NilCoxeterAlgebra(WeylGroup(['B',4]))
sage: U.homogeneous_generator_noncommutative_variables(2)
u[1,2] + u[2,1] + u[3,1] + u[4,1] + u[2,3] + u[3,2] + u[4,2] + u[3,4] + u[4,3]

sage: U = NilCoxeterAlgebra(WeylGroup(['C',3]))
sage: U.homogeneous_generator_noncommutative_variables(2)
Traceback (most recent call last):
...
AssertionError: Analogue of symmetric functions in noncommutative variables is not defined in type ['C', 3]
>>> from sage.all import *
>>> U = NilCoxeterAlgebra(WeylGroup(['A',Integer(3),Integer(1)]))
>>> U.homogeneous_generator_noncommutative_variables(Integer(2))
u[1,0] + u[2,0] + u[0,3] + u[3,2] + u[3,1] + u[2,1]

>>> U = NilCoxeterAlgebra(WeylGroup(['B',Integer(4)]))
>>> U.homogeneous_generator_noncommutative_variables(Integer(2))
u[1,2] + u[2,1] + u[3,1] + u[4,1] + u[2,3] + u[3,2] + u[4,2] + u[3,4] + u[4,3]

>>> U = NilCoxeterAlgebra(WeylGroup(['C',Integer(3)]))
>>> U.homogeneous_generator_noncommutative_variables(Integer(2))
Traceback (most recent call last):
...
AssertionError: Analogue of symmetric functions in noncommutative variables is not defined in type ['C', 3]
homogeneous_noncommutative_variables(la)[source]#

Give the homogeneous function indexed by \(la\), viewed inside the Nil-Coxeter algebra.

This is only defined in finite type \(A\), \(B\) and affine types \(A^{(1)}\), \(B^{(1)}\), \(C^{(1)}\), \(D^{(1)}\).

INPUT:

  • la – a partition with first part bounded by the rank of the Weyl group

EXAMPLES:

sage: U = NilCoxeterAlgebra(WeylGroup(['B',2,1]))
sage: U.homogeneous_noncommutative_variables([2,1])
u[1,2,0] + 2*u[2,1,0] + u[0,2,0] + u[0,2,1] + u[1,2,1] + u[2,1,2] + u[2,0,2] + u[1,0,2]
>>> from sage.all import *
>>> U = NilCoxeterAlgebra(WeylGroup(['B',Integer(2),Integer(1)]))
>>> U.homogeneous_noncommutative_variables([Integer(2),Integer(1)])
u[1,2,0] + 2*u[2,1,0] + u[0,2,0] + u[0,2,1] + u[1,2,1] + u[2,1,2] + u[2,0,2] + u[1,0,2]
k_schur_noncommutative_variables(la)[source]#

In type \(A^{(1)}\) this is the \(k\)-Schur function in noncommutative variables defined by Thomas Lam [Lam2005].

This function is currently only defined in type \(A^{(1)}\).

INPUT:

  • la – a partition with first part bounded by the rank of the Weyl group

EXAMPLES:

sage: A = NilCoxeterAlgebra(WeylGroup(['A',3,1]))
sage: A.k_schur_noncommutative_variables([2,2])
u[0,3,1,0] + u[3,1,2,0] + u[1,2,0,1] + u[3,2,0,3] + u[2,0,3,1] + u[2,3,1,2]
>>> from sage.all import *
>>> A = NilCoxeterAlgebra(WeylGroup(['A',Integer(3),Integer(1)]))
>>> A.k_schur_noncommutative_variables([Integer(2),Integer(2)])
u[0,3,1,0] + u[3,1,2,0] + u[1,2,0,1] + u[3,2,0,3] + u[2,0,3,1] + u[2,3,1,2]