Quotient of symmetric function space by ideal generated by Hall-Littlewood symmetric functions#

The quotient of symmetric functions by the ideal generated by the Hall-Littlewood P symmetric functions indexed by partitions with first part greater than \(k\). When \(t=1\) this space is the quotient of the symmetric functions by the ideal generated by the monomial symmetric functions indexed by partitions with first part greater than \(k\).

AUTHORS:

  • Chris Berg (2012-12-01)

  • Mike Zabrocki - \(k\)-bounded Hall Littlewood P and dual \(k\)-Schur functions (2012-12-02)

class sage.combinat.sf.k_dual.AffineSchurFunctions(kBoundedRing)#

Bases: KBoundedQuotientBasis

This basis is dual to the \(k\)-Schur functions at \(t=1\). This realization follows the monomial expansion given by Lam [Lam2006].

REFERENCES:

[Lam2006]

T. Lam, Schubert polynomials for the affine Grassmannian, J. Amer. Math. Soc., 21 (2008), 259-281.

class sage.combinat.sf.k_dual.DualkSchurFunctions(kBoundedRing)#

Bases: KBoundedQuotientBasis

This basis is dual to the \(k\)-Schur functions. The expansion is given in Section 4.12 of [LLMSSZ]. When \(t=1\) this basis is equal to the AffineSchurFunctions and that basis is more efficient in this case.

REFERENCES:

[LLMSSZ]

T. Lam, L. Lapointe, J. Morse, A. Schilling, M. Shimozono, M. Zabrocki, k-Schur functions and affine Schubert calculus.

class sage.combinat.sf.k_dual.KBoundedQuotient(Sym, k, t='t')#

Bases: UniqueRepresentation, Parent

Initialization of the ring of Symmetric functions modulo the ideal of monomial symmetric functions which are indexed by partitions whose first part is greater than \(k\).

INPUT:

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: Q = Sym.kBoundedQuotient(3,t=1)
sage: Q
3-Bounded Quotient of Symmetric Functions over Rational Field with t=1
sage: km = Q.km()
sage: km
3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded monomial basis
sage: F = Q.affineSchur()
sage: F(km(F[3,1,1])) == F[3,1,1]
True
sage: km(F(km([3,2]))) == km[3,2]
True
sage: F[3,2].lift()
m[1, 1, 1, 1, 1] + m[2, 1, 1, 1] + m[2, 2, 1] + m[3, 1, 1] + m[3, 2]
sage: F[2,1]*F[2,1]
2*F3[1, 1, 1, 1, 1, 1] + 4*F3[2, 1, 1, 1, 1] + 4*F3[2, 2, 1, 1] + 4*F3[2, 2, 2] + 2*F3[3, 1, 1, 1] + 4*F3[3, 2, 1] + 2*F3[3, 3]
sage: F[1,2]
Traceback (most recent call last):
...
ValueError: [1, 2] is not an element of 3-Bounded Partitions
sage: F[4,2]
Traceback (most recent call last):
...
ValueError: [4, 2] is not an element of 3-Bounded Partitions
sage: km[2,1]*km[2,1]
4*m3[2, 2, 1, 1] + 6*m3[2, 2, 2] + 2*m3[3, 2, 1] + 2*m3[3, 3]
sage: HLPk = Q.kHallLittlewoodP()
sage: HLPk[2,1]*HLPk[2,1]
4*HLP3[2, 2, 1, 1] + 6*HLP3[2, 2, 2] + 2*HLP3[3, 2, 1] + 2*HLP3[3, 3]
sage: dks = Q.dual_k_Schur()
sage: dks[2,1]*dks[2,1]
2*dks3[1, 1, 1, 1, 1, 1] + 4*dks3[2, 1, 1, 1, 1] + 4*dks3[2, 2, 1, 1] + 4*dks3[2, 2, 2] + 2*dks3[3, 1, 1, 1] + 4*dks3[3, 2, 1] + 2*dks3[3, 3]
sage: Q = Sym.kBoundedQuotient(3)
Traceback (most recent call last):
...
TypeError: unable to convert 't' to a rational
sage: Sym = SymmetricFunctions(QQ['t'].fraction_field())
sage: Q = Sym.kBoundedQuotient(3)
sage: km = Q.km()
sage: F = Q.affineSchur()
sage: F(km(F[3,1,1])) == F[3,1,1]
True
sage: km(F(km([3,2]))) == km[3,2]
True
sage: dks = Q.dual_k_Schur()
sage: HLPk = Q.kHallLittlewoodP()
sage: dks(HLPk(dks[3,1,1])) == dks[3,1,1]
True
sage: km(dks(km([3,2]))) == km[3,2]
True
sage: dks[2,1]*dks[2,1]
(t^3+t^2)*dks3[1, 1, 1, 1, 1, 1] + (2*t^2+2*t)*dks3[2, 1, 1, 1, 1] + (t^2+2*t+1)*dks3[2, 2, 1, 1] + (t^2+2*t+1)*dks3[2, 2, 2] + (t+1)*dks3[3, 1, 1, 1] + (2*t+2)*dks3[3, 2, 1] + (t+1)*dks3[3, 3]
AffineGrothendieckPolynomial(la, m)#

Returns the affine Grothendieck polynomial indexed by the partition la. Because this belongs to the completion of the algebra, and hence is an infinite sum, it computes only up to those symmetric functions of degree at most m. See _AffineGrothendieckPolynomial() for the code.

INPUT:

  • la – A \(k\)-bounded partition

  • m – An integer

EXAMPLES:

sage: Q = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: Q.AffineGrothendieckPolynomial([2,1],4)
2*m3[1, 1, 1] - 8*m3[1, 1, 1, 1] + m3[2, 1] - 3*m3[2, 1, 1] - m3[2, 2]
F()#

The affine Schur basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions. This is also equal to the affine Stanley symmetric functions (see WeylGroups.ElementMethods.stanley_symmetric_function()) indexed by an affine Grassmannian permutation.

EXAMPLES:

sage: SymmetricFunctions(QQ).kBoundedQuotient(2,t=1).affineSchur()
2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded affine Schur basis
a_realization()#

Returns a particular realization of self (the basis of \(k\)-bounded monomials if \(t=1\) and the basis of \(k\)-bounded Hall-Littlewood functions otherwise).

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: Q = Sym.kBoundedQuotient(3,t=1)
sage: Q.a_realization()
3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded monomial basis
sage: Q = Sym.kBoundedQuotient(3,t=2)
sage: Q.a_realization()
3-Bounded Quotient of Symmetric Functions over Rational Field with t=2 in the 3-bounded Hall-Littlewood P basis
affineSchur()#

The affine Schur basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions. This is also equal to the affine Stanley symmetric functions (see WeylGroups.ElementMethods.stanley_symmetric_function()) indexed by an affine Grassmannian permutation.

EXAMPLES:

sage: SymmetricFunctions(QQ).kBoundedQuotient(2,t=1).affineSchur()
2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded affine Schur basis
ambient()#

Returns the Symmetric Functions over the same ring as self. This is needed to realize our ring as a quotient.

an_element()#

Returns an element of the quotient ring of \(k\)-bounded symmetric functions. This method is here to make the TestSuite run properly.

EXAMPLES:

sage: Q = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: Q.an_element()
2*m3[] + 2*m3[1] + 3*m3[2]
dks()#

The dual \(k\)-Schur basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions. At \(t=1\) this is also equal to the affine Schur basis and calculations will be faster using elements in the affineSchur() basis.

EXAMPLES:

sage: SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(2).dual_k_Schur()
2-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the dual 2-Schur basis
dual_k_Schur()#

The dual \(k\)-Schur basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions. At \(t=1\) this is also equal to the affine Schur basis and calculations will be faster using elements in the affineSchur() basis.

EXAMPLES:

sage: SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(2).dual_k_Schur()
2-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the dual 2-Schur basis
kHLP()#

The Hall-Littlewood P basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions. At \(t=1\) this basis is equal to the \(k\)-bounded monomial basis and calculations will be faster using elements in the \(k\)-bounded monomial basis (see kmonomial()).

EXAMPLES:

sage: SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(2).kHallLittlewoodP()
2-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 2-bounded Hall-Littlewood P basis
kHallLittlewoodP()#

The Hall-Littlewood P basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions. At \(t=1\) this basis is equal to the \(k\)-bounded monomial basis and calculations will be faster using elements in the \(k\)-bounded monomial basis (see kmonomial()).

EXAMPLES:

sage: SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(2).kHallLittlewoodP()
2-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 2-bounded Hall-Littlewood P basis
km()#

The monomial basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions.

EXAMPLES:

sage: SymmetricFunctions(QQ).kBoundedQuotient(2,t=1).kmonomial()
2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded monomial basis
kmonomial()#

The monomial basis of the \(k\)-bounded quotient of symmetric functions, indexed by \(k\)-bounded partitions.

EXAMPLES:

sage: SymmetricFunctions(QQ).kBoundedQuotient(2,t=1).kmonomial()
2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded monomial basis
lift(la)#

Gives the lift map from the quotient ring of \(k\)-bounded symmetric functions to the symmetric functions. This method is here to make the TestSuite run properly.

INPUT:

  • la – A \(k\)-bounded partition

OUTPUT:

  • The monomial element or a Hall-Littlewood P element of the symmetric functions

    indexed by the partition la.

EXAMPLES:

sage: Q = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: Q.lift([2,1])
m[2, 1]
sage: Q = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(3)
sage: Q.lift([2,1])
HLP[2, 1]
one()#

Returns the unit of the quotient ring of \(k\)-bounded symmetric functions. This method is here to make the TestSuite run properly.

EXAMPLES:

sage: Q = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: Q.one()
m3[]
realizations()#

A list of realizations of the \(k\)-bounded quotient.

EXAMPLES:

sage: kQ = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(3)
sage: kQ.realizations()
[3-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 3-bounded monomial basis, 3-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 3-bounded Hall-Littlewood P basis, 3-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 3-bounded affine Schur basis, 3-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the dual 3-Schur basis]
sage: HLP = kQ.ambient().hall_littlewood().P()
sage: all( rzn(HLP[3,2,1]).lift() == HLP[3,2,1] for rzn in kQ.realizations())
True
sage: kQ = SymmetricFunctions(QQ).kBoundedQuotient(3,1)
sage: kQ.realizations()
[3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded monomial basis, 3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded Hall-Littlewood P basis, 3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded affine Schur basis, 3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the dual 3-Schur basis]
sage: m = kQ.ambient().m()
sage: all( rzn(m[3,2,1]).lift() == m[3,2,1] for rzn in kQ.realizations())
True
retract(la)#

Gives the retract map from the symmetric functions to the quotient ring of \(k\)-bounded symmetric functions. This method is here to make the TestSuite run properly.

INPUT:

  • la – A partition

OUTPUT:

  • The monomial element of the \(k\)-bounded quotient indexed by la.

EXAMPLES:

sage: Q = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: Q.retract([2,1])
m3[2, 1]
class sage.combinat.sf.k_dual.KBoundedQuotientBases(base)#

Bases: Category_realization_of_parent

The category of bases for the \(k\)-bounded subspace of symmetric functions.

class ElementMethods#

Bases: object

class ParentMethods#

Bases: object

ambient()#

Returns the symmetric functions.

EXAMPLES:

sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km()
sage: km.ambient()
Symmetric Functions over Rational Field
antipode(element)#

Return the antipode of element via lifting to the symmetric functions and then retracting into the \(k\)-bounded quotient basis.

INPUT:

  • element – an element in a basis of the ring of symmetric functions

EXAMPLES:

sage: dks3 = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).dual_k_Schur()
sage: dks3[3,2].antipode()
-dks3[1, 1, 1, 1, 1]
sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km()
sage: km[3,2].antipode()
m3[3, 2]
sage: km.antipode(km[3,2])
m3[3, 2]
sage: m = SymmetricFunctions(QQ).m()
sage: m[3,2].antipode()
m[3, 2] + 2*m[5]
sage: km = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3).km()
sage: km[1,1,1,1].antipode()
(t^3-3*t^2+3*t)*m3[1, 1, 1, 1] + (-t^2+2*t)*m3[2, 1, 1] + t*m3[2, 2] + t*m3[3, 1]
sage: kHP = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3).kHLP()
sage: kHP[2,2].antipode()
(t^9-t^6-t^5+t^2)*HLP3[1, 1, 1, 1] + (t^6-t^3-t^2+t)*HLP3[2, 1, 1] + (t^5-t^2+1)*HLP3[2, 2] + (t^4-t)*HLP3[3, 1]
sage: dks = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3).dks()
sage: dks[2,2].antipode()
dks3[2, 2]
sage: dks[3,2].antipode()
-t^2*dks3[1, 1, 1, 1, 1] + (t^2-1)*dks3[2, 2, 1] + (-t^5+t)*dks3[3, 2]
coproduct(element)#

Return the coproduct of element via lifting to the symmetric functions and then returning to the \(k\)-bounded quotient basis. This method is implemented for all \(t\) but is (weakly) conjectured to not be the correct operation for arbitrary \(t\) because the coproduct on dual-\(k\)-Schur functions does not have a positive expansion.

INPUT:

  • element – an element in a basis of the ring of symmetric functions

EXAMPLES:

sage: Q3 = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: km = Q3.km()
sage: km[3,2].coproduct()
m3[] # m3[3, 2] + m3[2] # m3[3] + m3[3] # m3[2] + m3[3, 2] # m3[]
sage: dks3 = Q3.dual_k_Schur()
sage: dks3[2,2].coproduct()
dks3[] # dks3[2, 2] + dks3[1] # dks3[2, 1] + dks3[1, 1] # dks3[1, 1] + dks3[2] # dks3[2] + dks3[2, 1] # dks3[1] + dks3[2, 2] # dks3[]
sage: Q3t = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3)
sage: km = Q3t.km()
sage: km[3,2].coproduct()
m3[] # m3[3, 2] + m3[2] # m3[3] + m3[3] # m3[2] + m3[3, 2] # m3[]
sage: dks = Q3t.dks()
sage: dks[2,1,1].coproduct()
dks3[] # dks3[2, 1, 1] + (-t+1)*dks3[1] # dks3[1, 1, 1] + dks3[1] # dks3[2, 1] + (-t+1)*dks3[1, 1] # dks3[1, 1] + dks3[1, 1] # dks3[2] + (-t+1)*dks3[1, 1, 1] # dks3[1] + dks3[2] # dks3[1, 1] + dks3[2, 1] # dks3[1] + dks3[2, 1, 1] # dks3[]
sage: kHLP = Q3t.kHLP()
sage: kHLP[2,1].coproduct()
HLP3[] # HLP3[2, 1] + (-t^2+1)*HLP3[1] # HLP3[1, 1] + HLP3[1] # HLP3[2] + (-t^2+1)*HLP3[1, 1] # HLP3[1] + HLP3[2] # HLP3[1] + HLP3[2, 1] # HLP3[]
sage: km.coproduct(km[3,2])
m3[] # m3[3, 2] + m3[2] # m3[3] + m3[3] # m3[2] + m3[3, 2] # m3[]
counit(element)#

Return the counit of element.

The counit is the constant term of element.

INPUT:

  • element – an element in a basis

EXAMPLES:

sage: km = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3).km()
sage: f = 2*km[2,1] - 3*km([])
sage: f.counit()
-3
sage: km.counit(f)
-3
degree_on_basis(b)#

Return the degree of the basis element indexed by b.

INPUT:

  • b – a partition

EXAMPLES:

sage: F = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).affineSchur()
sage: F.degree_on_basis(Partition([3,2]))
5
indices()#

The set of \(k\)-bounded partitions of all non-negative integers.

EXAMPLES:

sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km()
sage: km.indices()
3-Bounded Partitions
lift(la)#

Implements the lift map from the basis self to the monomial basis of symmetric functions.

INPUT:

  • la – A \(k\)-bounded partition.

OUTPUT:

  • A symmetric function in the monomial basis.

EXAMPLES:

sage: F = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).affineSchur()
sage: F.lift([3,1])
m[1, 1, 1, 1] + m[2, 1, 1] + m[2, 2] + m[3, 1]
sage: Sym = SymmetricFunctions(QQ['t'].fraction_field())
sage: dks = Sym.kBoundedQuotient(3).dual_k_Schur()
sage: dks.lift([3,1])
t^5*HLP[1, 1, 1, 1] + t^2*HLP[2, 1, 1] + t*HLP[2, 2] + HLP[3, 1]
sage: dks = Sym.kBoundedQuotient(3,t=1).dual_k_Schur()
sage: dks.lift([3,1])
m[1, 1, 1, 1] + m[2, 1, 1] + m[2, 2] + m[3, 1]
one_basis()#

Return the basis element indexing 1.

EXAMPLES:

sage: F = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).affineSchur()
sage: F.one()  # indirect doctest
F3[]
product(x, y)#

Returns the product of two elements x and y.

INPUT:

  • x, y – Elements of the \(k\)-bounded quotient of symmetric functions.

OUTPUT:

  • A \(k\)-bounded symmetric function in the dual \(k\)-Schur function basis

EXAMPLES:

sage: dks3 = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).dual_k_Schur()
sage: dks3.product(dks3[2,1],dks3[1,1])
2*dks3[1, 1, 1, 1, 1] + 2*dks3[2, 1, 1, 1] + 2*dks3[2, 2, 1] + dks3[3, 1, 1] + dks3[3, 2]
sage: dks3.product(dks3[2,1]+dks3[1], dks3[1,1])
dks3[1, 1, 1] + 2*dks3[1, 1, 1, 1, 1] + dks3[2, 1] + 2*dks3[2, 1, 1, 1] + 2*dks3[2, 2, 1] + dks3[3, 1, 1] + dks3[3, 2]
sage: dks3.product(dks3[2,1]+dks3[1], dks3([]))
dks3[1] + dks3[2, 1]
sage: dks3.product(dks3([]), dks3([]))
dks3[]
sage: dks3.product(dks3([]), dks3([4,1]))
Traceback (most recent call last):
...
TypeError: do not know how to make x (= [4, 1]) an element of self (=3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the dual 3-Schur basis)
sage: dks3 = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(3).dual_k_Schur()
sage: dks3.product(dks3[2,1],dks3[1,1])
(t^2+t)*dks3[1, 1, 1, 1, 1] + (t+1)*dks3[2, 1, 1, 1] + (t+1)*dks3[2, 2, 1] + dks3[3, 1, 1] + dks3[3, 2]
sage: dks3.product(dks3[2,1]+dks3[1], dks3[1,1])
dks3[1, 1, 1] + (t^2+t)*dks3[1, 1, 1, 1, 1] + dks3[2, 1] + (t+1)*dks3[2, 1, 1, 1] + (t+1)*dks3[2, 2, 1] + dks3[3, 1, 1] + dks3[3, 2]
sage: dks3.product(dks3[2,1]+dks3[1], dks3([]))
dks3[1] + dks3[2, 1]
sage: dks3.product(dks3([]), dks3([]))
dks3[]
sage: F = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).affineSchur()
sage: F.product(F[2,1],F[1,1])
2*F3[1, 1, 1, 1, 1] + 2*F3[2, 1, 1, 1] + 2*F3[2, 2, 1] + F3[3, 1, 1] + F3[3, 2]
sage: F.product(F[2,1]+F[1], F[1,1])
F3[1, 1, 1] + 2*F3[1, 1, 1, 1, 1] + F3[2, 1] + 2*F3[2, 1, 1, 1] + 2*F3[2, 2, 1] + F3[3, 1, 1] + F3[3, 2]
sage: F.product(F[2,1]+F[1], F([]))
F3[1] + F3[2, 1]
sage: F.product(F([]), F([]))
F3[]
sage: F.product(F([]), F([4,1]))
Traceback (most recent call last):
...
TypeError: do not know how to make x (= [4, 1]) an element of self (=3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded affine Schur basis)
sage: F = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(3).affineSchur()
sage: F.product(F[2,1],F[1,1])
2*F3[1, 1, 1, 1, 1] + 2*F3[2, 1, 1, 1] + 2*F3[2, 2, 1] + F3[3, 1, 1] + F3[3, 2]
sage: F.product(F[2,1],F[2])
(t^4+t^3-2*t^2+1)*F3[1, 1, 1, 1, 1] + (-t^2+t+1)*F3[2, 1, 1, 1] + (-t^2+t+2)*F3[2, 2, 1] + (t+1)*F3[3, 1, 1] + (t+1)*F3[3, 2]
sage: F.product(F[2,1]+F[1], F[1,1])
F3[1, 1, 1] + 2*F3[1, 1, 1, 1, 1] + F3[2, 1] + 2*F3[2, 1, 1, 1] + 2*F3[2, 2, 1] + F3[3, 1, 1] + F3[3, 2]
sage: F.product(F[2,1]+F[1], F([]))
F3[1] + F3[2, 1]
sage: F.product(F([]), F([]))
F3[]
sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km()
sage: km.product(km[2,1],km[2,1])
4*m3[2, 2, 1, 1] + 6*m3[2, 2, 2] + 2*m3[3, 2, 1] + 2*m3[3, 3]
sage: Q3 = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3)
sage: km = Q3.km()
sage: km.product(km[2,1],km[2,1])
(t^5+7*t^4-8*t^3-28*t^2+47*t-19)*m3[1, 1, 1, 1, 1, 1] + (t^4-3*t^3-9*t^2+23*t-12)*m3[2, 1, 1, 1, 1] + (-t^3-3*t^2+11*t-3)*m3[2, 2, 1, 1] + (-t^2+5*t+2)*m3[2, 2, 2] + (6*t-6)*m3[3, 1, 1, 1] + (3*t-1)*m3[3, 2, 1] + (t+1)*m3[3, 3]
sage: dks = Q3.dual_k_Schur()
sage: km.product(dks[2,1],dks[1,1])
20*m3[1, 1, 1, 1, 1] + 9*m3[2, 1, 1, 1] + 4*m3[2, 2, 1] + 2*m3[3, 1, 1] + m3[3, 2]
retract(la)#

Gives the retract map from the symmetric functions to the quotient ring of \(k\)-bounded symmetric functions. This method is here to make the TestSuite run properly.

INPUT:

  • la – A partition

OUTPUT:

  • The monomial element of the \(k\)-bounded quotient indexed by la.

EXAMPLES:

sage: Q = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1)
sage: Q.retract([2,1])
m3[2, 1]
super_categories()#

The super categories of self.

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ['t'])
sage: from sage.combinat.sf.k_dual import KBoundedQuotientBases
sage: Q = Sym.kBoundedQuotient(3,t=1)
sage: KQB = KBoundedQuotientBases(Q)
sage: KQB.super_categories()
[Category of realizations of 3-Bounded Quotient of Symmetric Functions over Univariate Polynomial Ring in t over Rational Field with t=1,
 Join of Category of graded Hopf algebras with basis over Univariate Polynomial Ring in t over Rational Field
     and Category of quotients of algebras over Univariate Polynomial Ring in t over Rational Field
     and Category of quotients of graded modules with basis over Univariate Polynomial Ring in t over Rational Field]
class sage.combinat.sf.k_dual.KBoundedQuotientBasis(kBoundedRing, prefix)#

Bases: CombinatorialFreeModule

Abstract base class for the bases of the \(k\)-bounded quotient.

class sage.combinat.sf.k_dual.kMonomial(kBoundedRing)#

Bases: KBoundedQuotientBasis

The basis of monomial symmetric functions indexed by partitions with first part less than or equal to \(k\).

lift(la)#

Implements the lift function on the monomial basis. Given a \(k\)-bounded partition la, the lift will return the corresponding monomial basis element.

INPUT:

  • la – A \(k\)-bounded partition

OUTPUT:

  • A monomial symmetric function.

EXAMPLES:

sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km()
sage: km.lift(Partition([3,1]))
m[3, 1]
sage: km.lift([])
m[]
sage: km.lift(Partition([4,1]))
Traceback (most recent call last):
...
TypeError: do not know how to make x (= [4, 1]) an element of self (=3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded monomial basis)
retract(la)#

Implements the retract function on the monomial basis. Given a partition la, the retract will return the corresponding \(k\)-bounded monomial basis element if la is \(k\)-bounded; zero otherwise.

INPUT:

  • la – A partition

OUTPUT:

  • A \(k\)-bounded monomial symmetric function in the \(k\)-quotient of symmetric

    functions.

EXAMPLES:

sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km()
sage: km.retract(Partition([3,1]))
m3[3, 1]
sage: km.retract(Partition([4,1]))
0
sage: km.retract([])
m3[]
sage: m = SymmetricFunctions(QQ).m()
sage: km(m[3, 1])
m3[3, 1]
sage: km(m[4, 1])
0
sage: km = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(3).km()
sage: km.retract(Partition([3,1]))
m3[3, 1]
sage: km.retract(Partition([4,1]))
(t^4+t^3-9*t^2+11*t-4)*m3[1, 1, 1, 1, 1] + (-3*t^2+6*t-3)*m3[2, 1, 1, 1] + (-t^2+3*t-2)*m3[2, 2, 1] + (2*t-2)*m3[3, 1, 1] + (t-1)*m3[3, 2]
sage: m = SymmetricFunctions(FractionField(QQ['t'])).m()
sage: km(m[3, 1])
m3[3, 1]
sage: km(m[4, 1])
(t^4+t^3-9*t^2+11*t-4)*m3[1, 1, 1, 1, 1] + (-3*t^2+6*t-3)*m3[2, 1, 1, 1] + (-t^2+3*t-2)*m3[2, 2, 1] + (2*t-2)*m3[3, 1, 1] + (t-1)*m3[3, 2]
class sage.combinat.sf.k_dual.kbounded_HallLittlewoodP(kBoundedRing)#

Bases: KBoundedQuotientBasis

The basis of P Hall-Littlewood symmetric functions indexed by partitions with first part less than or equal to \(k\).

lift(la)#

Implements the lift function on the Hall-Littlewood P basis. Given a \(k\)-bounded partition la, the lift will return the corresponding Hall-Littlewood P basis element.

INPUT:

  • la – A \(k\)-bounded partition

OUTPUT:

  • A Hall-Littlewood symmetric function.

EXAMPLES:

sage: kHLP = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(3).kHallLittlewoodP()
sage: kHLP.lift(Partition([3,1]))
HLP[3, 1]
sage: kHLP.lift([])
HLP[]
sage: kHLP.lift(Partition([4,1]))
Traceback (most recent call last):
...
TypeError: do not know how to make x (= [4, 1]) an element of self (=3-Bounded Quotient of Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 3-bounded Hall-Littlewood P basis)
retract(la)#

Implements the retract function on the Hall-Littlewood P basis. Given a partition la, the retract will return the corresponding \(k\)-bounded Hall-Littlewood P basis element if la is \(k\)-bounded; zero otherwise.

INPUT:

  • la – A partition

OUTPUT:

  • A \(k\)-bounded Hall-Littlewood P symmetric function in the \(k\)-quotient of

    symmetric functions.

EXAMPLES:

sage: kHLP = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(3).kHallLittlewoodP()
sage: kHLP.retract(Partition([3,1]))
HLP3[3, 1]
sage: kHLP.retract(Partition([4,1]))
0
sage: kHLP.retract([])
HLP3[]
sage: m = kHLP.realization_of().ambient().m()
sage: kHLP(m[2,2])
(t^4-t^3-t+1)*HLP3[1, 1, 1, 1] + (t-1)*HLP3[2, 1, 1] + HLP3[2, 2]