Schur symmetric functions

class sage.combinat.sf.schur.SymmetricFunctionAlgebra_schur(Sym)

Bases: sage.combinat.sf.classical.SymmetricFunctionAlgebra_classical

A class for methods related to the Schur symmetric function basis

INPUT:

  • self – a Schur symmetric function basis
  • Sym – an instance of the ring of the symmetric functions

TESTS:

sage: s = SymmetricFunctions(QQ).s()
sage: s == loads(dumps(s))
True
sage: TestSuite(s).run(skip=['_test_associativity', '_test_distributivity', '_test_prod'])
sage: TestSuite(s).run(elements = [s[1,1]+s[2], s[1]+2*s[1,1]])
class Element(M, x)

Bases: sage.combinat.sf.classical.SymmetricFunctionAlgebra_classical.Element

Create a combinatorial module element. This should never be called directly, but only through the parent combinatorial free module’s __call__() method.

TESTS:

sage: F = CombinatorialFreeModule(QQ, ['a','b','c'])
sage: B = F.basis()
sage: f = B['a'] + 3*B['c']; f
B['a'] + 3*B['c']
sage: f == loads(dumps(f))
True
expand(n, alphabet='x')

Expands the symmetric function as a symmetric polynomial in n variables.

INPUT:

  • self – an element of the Schur symmetric function basis
  • n – a positive integer
  • alphabet – a variable for the expansion (default: x)

OUTPUT: a monomial expansion of an instance of self in n variables

EXAMPLES:

sage: s = SymmetricFunctions(QQ).s()
sage: a = s([2,1])
sage: a.expand(2)
x0^2*x1 + x0*x1^2
sage: a.expand(3)
x0^2*x1 + x0*x1^2 + x0^2*x2 + 2*x0*x1*x2 + x1^2*x2 + x0*x2^2 + x1*x2^2
sage: a.expand(4)
x0^2*x1 + x0*x1^2 + x0^2*x2 + 2*x0*x1*x2 + x1^2*x2 + x0*x2^2 + x1*x2^2 + x0^2*x3 + 2*x0*x1*x3 + x1^2*x3 + 2*x0*x2*x3 + 2*x1*x2*x3 + x2^2*x3 + x0*x3^2 + x1*x3^2 + x2*x3^2
sage: a.expand(2, alphabet='y')
y0^2*y1 + y0*y1^2
sage: a.expand(2, alphabet=['a','b'])
a^2*b + a*b^2
sage: s([1,1,1,1]).expand(3)
0
sage: (s([]) + 2*s([1])).expand(3)
2*x0 + 2*x1 + 2*x2 + 1
omega()

Returns the image of self under the Frobenius / omega automorphism.

INPUT:

  • self – an element of the Schur symmetric function basis

OUTPUT:

  • the image of self under omega as an element of the Schur basis

EXAMPLES:

sage: s = SymmetricFunctions(QQ).s()
sage: s([2,1]).omega()
s[2, 1]
sage: s([2,1,1]).omega()
s[3, 1]
scalar(x, zee=None)

Returns the standard scalar product between self and x.

Note that the Schur functions are self-dual with respect to this scalar product. They are also lower-triangularly related to the monomial symmetric functions with respect to this scalar product.

INPUT:

  • self – an element of the Schur symmetric function basis
  • x – an element of the symmetric functions
  • zee – an optional function that specifies the scalar product between two power sum symmetric functions indexed by the same partition. If zee is not specified.

OUTPUT:

  • the scalar product between self and x

EXAMPLES:

sage: s = SymmetricFunctions(ZZ).s()
sage: a = s([2,1])
sage: b = s([1,1,1])
sage: c = 2*s([1,1,1])
sage: d = a + b
sage: a.scalar(a)
1
sage: b.scalar(b)
1
sage: b.scalar(a)
0
sage: b.scalar(c)
2
sage: c.scalar(c)
4
sage: d.scalar(a)
1
sage: d.scalar(b)
1
sage: d.scalar(c)
2
sage: m = SymmetricFunctions(ZZ).monomial()
sage: p4 = Partitions(4)
sage: l = [ [s(p).scalar(m(q)) for q in p4] for p in p4]
sage: matrix(l)
[ 1  0  0  0  0]
[-1  1  0  0  0]
[ 0 -1  1  0  0]
[ 1 -1 -1  1  0]
[-1  2  1 -3  1]
SymmetricFunctionAlgebra_schur.coproduct_on_basis(mu)

Returns the coproduct of self(mu).

Here self is the basis of Schur functions in the ring of symmetric functions.

INPUT:

  • self – a Schur symmetric function basis
  • mu – a partition

OUTPUT:

  • an element of the tensor square of the Schur basis

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: s = Sym.schur()
sage: s.coproduct_on_basis([2])
s[] # s[2] + s[1] # s[1] + s[2] # s[]

Previous topic

Classical symmetric functions.

Next topic

Monomial symmetric functions

This Page