Homogeneous symmetric functions#

By this we mean the basis formed of the complete homogeneous symmetric functions hλ, not an arbitrary graded basis.

class sage.combinat.sf.homogeneous.SymmetricFunctionAlgebra_homogeneous(Sym)#

Bases: sage.combinat.sf.multiplicative.SymmetricFunctionAlgebra_multiplicative

A class of methods specific to the homogeneous basis of symmetric functions.

INPUT:

  • self – a homogeneous basis of symmetric functions

  • Sym – an instance of the ring of symmetric functions

class Element#

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

expand(n, alphabet='x')#

Expand the symmetric function self as a symmetric polynomial in n variables.

INPUT:

  • n – a nonnegative integer

  • alphabet – (default: 'x') a variable for the expansion

OUTPUT:

A monomial expansion of self in the n variables labelled by alphabet.

EXAMPLES:

sage: h = SymmetricFunctions(QQ).h()
sage: h([3]).expand(2)
x0^3 + x0^2*x1 + x0*x1^2 + x1^3
sage: h([1,1,1]).expand(2)
x0^3 + 3*x0^2*x1 + 3*x0*x1^2 + x1^3
sage: h([2,1]).expand(3)
x0^3 + 2*x0^2*x1 + 2*x0*x1^2 + x1^3 + 2*x0^2*x2 + 3*x0*x1*x2 + 2*x1^2*x2 + 2*x0*x2^2 + 2*x1*x2^2 + x2^3
sage: h([3]).expand(2,alphabet='y')
y0^3 + y0^2*y1 + y0*y1^2 + y1^3
sage: h([3]).expand(2,alphabet='x,y')
x^3 + x^2*y + x*y^2 + y^3
sage: h([3]).expand(3,alphabet='x,y,z')
x^3 + x^2*y + x*y^2 + y^3 + x^2*z + x*y*z + y^2*z + x*z^2 + y*z^2 + z^3
sage: (h([]) + 2*h([1])).expand(3)
2*x0 + 2*x1 + 2*x2 + 1
sage: h([1]).expand(0)
0
sage: (3*h([])).expand(0)
3
exponential_specialization(t=None, q=1)#

Return the exponential specialization of a symmetric function (when q=1), or the q-exponential specialization (when q1).

The exponential specialization ex at t is a K-algebra homomorphism from the K-algebra of symmetric functions to another K-algebra R. It is defined whenever the base ring K is a Q-algebra and t is an element of R. The easiest way to define it is by specifying its values on the powersum symmetric functions to be p1=t and pn=0 for n>1. Equivalently, on the homogeneous functions it is given by ex(hn)=tn/n!; see Proposition 7.8.4 of [EnumComb2].

By analogy, the q-exponential specialization is a K-algebra homomorphism from the K-algebra of symmetric functions to another K-algebra R that depends on two elements t and q of R for which the elements 1qi for all positive integers i are invertible. It can be defined by specifying its values on the complete homogeneous symmetric functions to be

exq(hn)=tn/[n]q!,

where [n]q! is the q-factorial. Equivalently, for q1 and a homogeneous symmetric function f of degree n, we have

exq(f)=(1q)ntnpsq(f),

where psq(f) is the stable principal specialization of f (see principal_specialization()). (See (7.29) in [EnumComb2].)

The limit of exq as q1 is ex.

INPUT:

  • t (default: None) – the value to use for t; the default is to create a ring of polynomials in t.

  • q (default: 1) – the value to use for q. If q is None, then a ring (or fraction field) of polynomials in q is created.

EXAMPLES:

sage: h = SymmetricFunctions(QQ).h()
sage: x = h[5,3]
sage: x.exponential_specialization()
1/720*t^8
sage: factorial(5)*factorial(3)
720

sage: x = 5*h[1,1,1] + 3*h[2,1] + 1
sage: x.exponential_specialization()
13/2*t^3 + 1

We also support the q-exponential_specialization:

sage: factor(h[3].exponential_specialization(q=var("q"), t=var("t")))
t^3/((q^2 + q + 1)*(q + 1))
omega()#

Return the image of self under the omega automorphism.

The omega automorphism is defined to be the unique algebra endomorphism ω of the ring of symmetric functions that satisfies ω(ek)=hk for all positive integers k (where ek stands for the k-th elementary symmetric function, and hk stands for the k-th complete homogeneous symmetric function). It furthermore is a Hopf algebra endomorphism and an involution, and it is also known as the omega involution. It sends the power-sum symmetric function pk to (1)k1pk for every positive integer k.

The images of some bases under the omega automorphism are given by

ω(eλ)=hλ,ω(hλ)=eλ,ω(pλ)=(1)|λ|(λ)pλ,ω(sλ)=sλ,

where λ is any partition, where (λ) denotes the length (length()) of the partition λ, where λ denotes the conjugate partition (conjugate()) of λ, and where the usual notations for bases are used (e = elementary, h = complete homogeneous, p = powersum, s = Schur).

omega_involution() is a synonym for the omega() method.

OUTPUT:

  • the image of self under the omega automorphism

EXAMPLES:

sage: h = SymmetricFunctions(QQ).h()
sage: a = h([2,1]); a
h[2, 1]
sage: a.omega()
h[1, 1, 1] - h[2, 1]
sage: e = SymmetricFunctions(QQ).e()
sage: e(h([2,1]).omega())
e[2, 1]
omega_involution()#

Return the image of self under the omega automorphism.

The omega automorphism is defined to be the unique algebra endomorphism ω of the ring of symmetric functions that satisfies ω(ek)=hk for all positive integers k (where ek stands for the k-th elementary symmetric function, and hk stands for the k-th complete homogeneous symmetric function). It furthermore is a Hopf algebra endomorphism and an involution, and it is also known as the omega involution. It sends the power-sum symmetric function pk to (1)k1pk for every positive integer k.

The images of some bases under the omega automorphism are given by

ω(eλ)=hλ,ω(hλ)=eλ,ω(pλ)=(1)|λ|(λ)pλ,ω(sλ)=sλ,

where λ is any partition, where (λ) denotes the length (length()) of the partition λ, where λ denotes the conjugate partition (conjugate()) of λ, and where the usual notations for bases are used (e = elementary, h = complete homogeneous, p = powersum, s = Schur).

omega_involution() is a synonym for the omega() method.

OUTPUT:

  • the image of self under the omega automorphism

EXAMPLES:

sage: h = SymmetricFunctions(QQ).h()
sage: a = h([2,1]); a
h[2, 1]
sage: a.omega()
h[1, 1, 1] - h[2, 1]
sage: e = SymmetricFunctions(QQ).e()
sage: e(h([2,1]).omega())
e[2, 1]
principal_specialization(n=+ Infinity, q=None)#

Return the principal specialization of a symmetric function.

The principal specialization of order n at q is the ring homomorphism psn,q from the ring of symmetric functions to another commutative ring R given by xiqi1 for i{1,,n} and xi0 for i>n. Here, q is a given element of R, and we assume that the variables of our symmetric functions are x1,x2,x3,. (To be more precise, psn,q is a K-algebra homomorphism, where K is the base ring.) See Section 7.8 of [EnumComb2].

The stable principal specialization at q is the ring homomorphism psq from the ring of symmetric functions to another commutative ring R given by xiqi1 for all i. This is well-defined only if the resulting infinite sums converge; thus, in particular, setting q=1 in the stable principal specialization is an invalid operation.

INPUT:

  • n (default: infinity) – a nonnegative integer or infinity, specifying whether to compute the principal specialization of order n or the stable principal specialization.

  • q (default: None) – the value to use for q; the default is to create a ring of polynomials in q (or a field of rational functions in q) over the given coefficient ring.

We use the formulas from Proposition 7.8.3 of [EnumComb2] (using Gaussian binomial coefficients (uv)q):

psn,q(hλ)=i(n+λi1λi)q,psn,1(hλ)=i(n+λi1λi),psq(hλ)=1/ij=1λi(1qj).

EXAMPLES:

sage: h = SymmetricFunctions(QQ).h()
sage: x = h[2,1]
sage: x.principal_specialization(3)
q^6 + 2*q^5 + 4*q^4 + 4*q^3 + 4*q^2 + 2*q + 1
sage: x = 3*h[2] + 2*h[1] + 1
sage: x.principal_specialization(3, q=var("q"))
2*(q^3 - 1)/(q - 1) + 3*(q^4 - 1)*(q^3 - 1)/((q^2 - 1)*(q - 1)) + 1
coproduct_on_generators(i)#

Return the coproduct on hi.

INPUT:

  • self – a homogeneous basis of symmetric functions

  • i – a nonnegative integer

OUTPUT:

  • the sum r=0ihrhir

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: h = Sym.homogeneous()
sage: h.coproduct_on_generators(2)
h[] # h[2] + h[1] # h[1] + h[2] # h[]
sage: h.coproduct_on_generators(0)
h[] # h[]