Module: sage.combinat.symmetric_group_algebra
Symmetric Group Algebra
Module-level Functions
R, n, [q=None]) |
Returns the Hecke algebra of the symmetric group on the T basis.
sage: HeckeAlgebraSymmetricGroupT(QQ, 3) Hecke algebra of the symmetric group of order 3 on the T basis over Univariate Polynomial Ring in q over Rational Field
sage: HeckeAlgebraSymmetricGroupT(QQ, 3, 2) Hecke algebra of the symmetric group of order 3 with q=2 on the T basis over Rational Field
R, n) |
Returns the symmetric group algebra of order n over R.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3); QS3 Symmetric group algebra of order 3 over Rational Field sage: QS3(1) [1, 2, 3] sage: QS3(2) 2*[1, 2, 3] sage: basis = [QS3(p) for p in Permutations(3)] sage: a = sum(basis); a [1, 2, 3] + [1, 3, 2] + [2, 1, 3] + [2, 3, 1] + [3, 1, 2] + [3, 2, 1] sage: a^2 6*[1, 2, 3] + 6*[1, 3, 2] + 6*[2, 1, 3] + 6*[2, 3, 1] + 6*[3, 1, 2] + 6*[3, 2, 1] sage: a^2 == 6*a True sage: b = QS3([3, 1, 2]) sage: b [3, 1, 2] sage: b*a [1, 2, 3] + [1, 3, 2] + [2, 1, 3] + [2, 3, 1] + [3, 1, 2] + [3, 2, 1] sage: b*a == a True
tableau, [star=0]) |
sage: from sage.combinat.symmetric_group_algebra import e sage: e([[1,2]]) [1, 2] + [2, 1] sage: e([[1],[2]]) [1, 2] - [2, 1]
tab, [star=0]) |
sage: from sage.combinat.symmetric_group_algebra import e_hat sage: e_hat([[1,2,3]]) 1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1] sage: e_hat([[1],[2]]) 1/2*[1, 2] - 1/2*[2, 1]
itab, ktab, [star=0]) |
sage: from sage.combinat.symmetric_group_algebra import e_ik sage: e_ik([[1,2,3]], [[1,2,3]]) [1, 2, 3] + [1, 3, 2] + [2, 1, 3] + [2, 3, 1] + [3, 1, 2] + [3, 2, 1] sage: e_ik([[1,2,3]], [[1,2,3]], star=1) [1, 2] + [2, 1]
tab, [star=0]) |
sage: from sage.combinat.symmetric_group_algebra import epsilon sage: epsilon([[1,2]]) 1/2*[1, 2] + 1/2*[2, 1] sage: epsilon([[1],[2]]) 1/2*[1, 2] - 1/2*[2, 1]
itab, ktab, [star=0]) |
sage: from sage.combinat.symmetric_group_algebra import epsilon_ik sage: epsilon_ik([[1,2],[3]], [[1,3],[2]]) 1/4*[1, 3, 2] - 1/4*[2, 3, 1] + 1/4*[3, 1, 2] - 1/4*[3, 2, 1] sage: epsilon_ik([[1,2],[3]], [[1,3],[2]], star=1) Traceback (most recent call last): ... ValueError: the two tableaux must be of the same shape
alpha) |
Returns
which is n! divided by the number
of standard tableaux of shape
.
sage: from sage.combinat.symmetric_group_algebra import kappa sage: kappa(Partition([2,1])) 3 sage: kappa([2,1]) 3
itab, ktab) |
sage: from sage.combinat.symmetric_group_algebra import pi_ik sage: pi_ik([[1,3],[2]], [[1,2],[3]]) [1, 3, 2]
n) |
Runs a variety of tests to verify that the construction of the seminormal basis works as desired. The numbers appearing are Theorems in James and Kerber's 'Representation Theory of the Symmetric Group'.
sage: from sage.combinat.symmetric_group_algebra import seminormal_test sage: seminormal_test(3) True
Class: HeckeAlgebraSymmetricGroup_generic
self, R, n, [q=None]) |
TESTS:
sage: HeckeAlgebraSymmetricGroupT(QQ, 3) Hecke algebra of the symmetric group of order 3 on the T basis over Univariate Polynomial Ring in q over Rational Field
sage: HeckeAlgebraSymmetricGroupT(QQ, 3, q=1) Hecke algebra of the symmetric group of order 3 with q=1 on the T basis over Rational Field
Functions: q
self) |
sage: HeckeAlgebraSymmetricGroupT(QQ, 3).q() q sage: HeckeAlgebraSymmetricGroupT(QQ, 3, 2).q() 2
Special Functions: __init__,
_coerce_start
self, x) |
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ, 3) sage: H3._coerce_start([2,1]) T[2, 1, 3]
Class: HeckeAlgebraSymmetricGroup_t
self, R, n, [q=None]) |
TESTS:
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ, 3) sage: H3 == loads(dumps(H3)) True
Functions: algebra_generators,
jucys_murphy,
t,
t_action,
t_action_on_basis
self) |
Return the generators of the algebra.
sage: HeckeAlgebraSymmetricGroupT(QQ,3).algebra_generators() [T[2, 1, 3], T[1, 3, 2]]
self, k) |
Returns the Jucys-Murphy element J_k of the Hecke algebra. The Jucys-Murphy elements generate the maximal commutative sub-algebra of the Hecke algebra.
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ,3) sage: j2 = H3.jucys_murphy(2); j2 q*T[1, 2, 3] + (q-1)*T[2, 1, 3] sage: j3 = H3.jucys_murphy(3); j3 q^2*T[1, 2, 3] + (q^2-q)*T[1, 3, 2] + (q-1)*T[3, 2, 1] sage: j2*j3 == j3*j2 True sage: H3.jucys_murphy(1) Traceback (most recent call last): ... ValueError: k must be between 2 and n (= 3)
self, i) |
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ,3) sage: H3.t(1) T[2, 1, 3] sage: H3.t(2) T[1, 3, 2] sage: H3.t(0) Traceback (most recent call last): ... ValueError: i must be between 1 and n-1 (= 2)
self, a, i) |
Return the action of T_i on a.
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ, 3) sage: a = H3([2,1,3])+2*H3([1,2,3]) sage: H3.t_action(a, 1) q*T[1, 2, 3] + (q+1)*T[2, 1, 3] sage: H3.t(1)*a q*T[1, 2, 3] + (q+1)*T[2, 1, 3]
self, perm, i) |
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ, 3) sage: H3.t_action_on_basis(Permutation([2,1,3]), 1) q*T[1, 2, 3] + (q-1)*T[2, 1, 3] sage: H3.t_action_on_basis(Permutation([1,2,3]), 1) T[2, 1, 3] sage: H3 = HeckeAlgebraSymmetricGroupT(QQ, 3, 1) sage: H3.t_action_on_basis(Permutation([2,1,3]), 1) T[1, 2, 3] sage: H3.t_action_on_basis(Permutation([1,3,2]), 2) T[1, 2, 3]
Special Functions: __init__,
_multiply_basis
self, perm1, perm2) |
sage: H3 = HeckeAlgebraSymmetricGroupT(QQ, 3, 1) sage: a = H3([2,1,3])+2*H3([1,2,3])-H3([3,2,1]) sage: a^2 #indirect doctest 6*T[1, 2, 3] + 4*T[2, 1, 3] - T[2, 3, 1] - T[3, 1, 2] - 4*T[3, 2, 1]
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: a = QS3([2,1,3])+2*QS3([1,2,3])-QS3([3,2,1]) sage: a^2 6*[1, 2, 3] + 4*[2, 1, 3] - [2, 3, 1] - [3, 1, 2] - 4*[3, 2, 1]
Class: HeckeAlgebraSymmetricGroupElement_t
Class: SymmetricGroupAlgebra_n
self, R, n) |
TESTS:
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: QS3 == loads(dumps(QS3)) True
Functions: cpi,
cpis,
dft,
epsilon_ik,
jucys_murphy,
seminormal_basis
self, p) |
Returns the centrally primitive idempotent for the symmetric group of order n for the irreducible corresponding indexed by the partition p.
sage: QS3 = SymmetricGroupAlgebra(QQ,3) sage: QS3.cpi([2,1]) 2/3*[1, 2, 3] - 1/3*[2, 3, 1] - 1/3*[3, 1, 2] sage: QS3.cpi([3]) 1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1] sage: QS3.cpi([1,1,1]) 1/6*[1, 2, 3] - 1/6*[1, 3, 2] - 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] - 1/6*[3, 2, 1]
self) |
Returns a list of the centrally primitive idempotents.
sage: QS3 = SymmetricGroupAlgebra(QQ,3) sage: a = QS3.cpis() sage: a[0] # [3] 1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1] sage: a[1] # [2, 1] 2/3*[1, 2, 3] - 1/3*[2, 3, 1] - 1/3*[3, 1, 2]
self, [form=seminormal]) |
Returns the discrete Fourier transform for self.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: QS3.dft() [ 1 1 1 1 1 1] [ 1 1/2 -1 -1/2 -1/2 1/2] [ 0 3/4 0 3/4 -3/4 -3/4] [ 0 1 0 -1 1 -1] [ 1 -1/2 1 -1/2 -1/2 -1/2] [ 1 -1 -1 1 1 -1]
self, itab, ktab, [star=0]) |
Returns the seminormal basis element of self corresponding to the pair of tableaux itab and ktab.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: a = QS3.epsilon_ik([[1,2,3]], [[1,2,3]]); a 1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1] sage: QS3.dft()*vector(a) (1, 0, 0, 0, 0, 0) sage: a = QS3.epsilon_ik([[1,2],[3]], [[1,2],[3]]); a 1/3*[1, 2, 3] - 1/6*[1, 3, 2] + 1/3*[2, 1, 3] - 1/6*[2, 3, 1] - 1/6*[3, 1, 2] - 1/6*[3, 2, 1] sage: QS3.dft()*vector(a) (0, 0, 0, 0, 1, 0)
self, k) |
Returns the Jucys-Murphy element J_k for the symmetric group algebra.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: QS3.jucys_murphy(2) [2, 1, 3] sage: QS3.jucys_murphy(3) [1, 3, 2] + [2, 1, 3]
self) |
Returns a list of the seminormal basis elements of self.
sage: QS3 = SymmetricGroupAlgebra(QQ,3) sage: QS3.seminormal_basis() [1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1], 1/3*[1, 2, 3] + 1/6*[1, 3, 2] - 1/3*[2, 1, 3] - 1/6*[2, 3, 1] - 1/6*[3, 1, 2] + 1/6*[3, 2, 1], 1/3*[1, 3, 2] + 1/3*[2, 3, 1] - 1/3*[3, 1, 2] - 1/3*[3, 2, 1], 1/4*[1, 3, 2] - 1/4*[2, 3, 1] + 1/4*[3, 1, 2] - 1/4*[3, 2, 1], 1/3*[1, 2, 3] - 1/6*[1, 3, 2] + 1/3*[2, 1, 3] - 1/6*[2, 3, 1] - 1/6*[3, 1, 2] - 1/6*[3, 2, 1], 1/6*[1, 2, 3] - 1/6*[1, 3, 2] - 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] - 1/6*[3, 2, 1]]
Special Functions: __init__,
_coerce_start,
_dft_seminormal,
_multiply_basis
self, x) |
Coerce things into the symmetric group algebra.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: QS3._coerce_start([]) [1, 2, 3] sage: QS3._coerce_start([2,1]) [2, 1, 3] sage: _.parent() Symmetric group algebra of order 3 over Rational Field
self) |
Returns the seminormal form of the discrete Fourier for self.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: QS3._dft_seminormal() [ 1 1 1 1 1 1] [ 1 1/2 -1 -1/2 -1/2 1/2] [ 0 3/4 0 3/4 -3/4 -3/4] [ 0 1 0 -1 1 -1] [ 1 -1/2 1 -1/2 -1/2 -1/2] [ 1 -1 -1 1 1 -1]
self, left, right) |
Returns the product of the basis elements indexed by left and right.
sage: QS3 = SymmetricGroupAlgebra(QQ, 3) sage: p1 = Permutation([1,2,3]) sage: p2 = Permutation([2,1,3]) sage: QS3._multiply_basis(p1,p2) [2, 1, 3]
Class: SymmetricGroupAlgebraElement_n