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)[source]#
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)[source]#
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')[source]#
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:
Sym
– an element of classsage.combinat.sf.sf.SymmetricFunctions
k
– a positive integerR
– a ring
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]
>>> from sage.all import * >>> Sym = SymmetricFunctions(QQ) >>> Q = Sym.kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q 3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 >>> km = Q.km() >>> km 3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded monomial basis >>> F = Q.affineSchur() >>> F(km(F[Integer(3),Integer(1),Integer(1)])) == F[Integer(3),Integer(1),Integer(1)] True >>> km(F(km([Integer(3),Integer(2)]))) == km[Integer(3),Integer(2)] True >>> F[Integer(3),Integer(2)].lift() m[1, 1, 1, 1, 1] + m[2, 1, 1, 1] + m[2, 2, 1] + m[3, 1, 1] + m[3, 2] >>> F[Integer(2),Integer(1)]*F[Integer(2),Integer(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] >>> F[Integer(1),Integer(2)] Traceback (most recent call last): ... ValueError: [1, 2] is not an element of 3-Bounded Partitions >>> F[Integer(4),Integer(2)] Traceback (most recent call last): ... ValueError: [4, 2] is not an element of 3-Bounded Partitions >>> km[Integer(2),Integer(1)]*km[Integer(2),Integer(1)] 4*m3[2, 2, 1, 1] + 6*m3[2, 2, 2] + 2*m3[3, 2, 1] + 2*m3[3, 3] >>> HLPk = Q.kHallLittlewoodP() >>> HLPk[Integer(2),Integer(1)]*HLPk[Integer(2),Integer(1)] 4*HLP3[2, 2, 1, 1] + 6*HLP3[2, 2, 2] + 2*HLP3[3, 2, 1] + 2*HLP3[3, 3] >>> dks = Q.dual_k_Schur() >>> dks[Integer(2),Integer(1)]*dks[Integer(2),Integer(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]
>>> from sage.all import * >>> Q = Sym.kBoundedQuotient(Integer(3)) Traceback (most recent call last): ... TypeError: unable to convert 't' to a rational >>> Sym = SymmetricFunctions(QQ['t'].fraction_field()) >>> Q = Sym.kBoundedQuotient(Integer(3)) >>> km = Q.km() >>> F = Q.affineSchur() >>> F(km(F[Integer(3),Integer(1),Integer(1)])) == F[Integer(3),Integer(1),Integer(1)] True >>> km(F(km([Integer(3),Integer(2)]))) == km[Integer(3),Integer(2)] True >>> dks = Q.dual_k_Schur() >>> HLPk = Q.kHallLittlewoodP() >>> dks(HLPk(dks[Integer(3),Integer(1),Integer(1)])) == dks[Integer(3),Integer(1),Integer(1)] True >>> km(dks(km([Integer(3),Integer(2)]))) == km[Integer(3),Integer(2)] True >>> dks[Integer(2),Integer(1)]*dks[Integer(2),Integer(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)[source]#
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 mostm
. See_AffineGrothendieckPolynomial()
for the code.INPUT:
la
– A \(k\)-bounded partitionm
– 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]
>>> from sage.all import * >>> Q = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.AffineGrothendieckPolynomial([Integer(2),Integer(1)],Integer(4)) 2*m3[1, 1, 1] - 8*m3[1, 1, 1, 1] + m3[2, 1] - 3*m3[2, 1, 1] - m3[2, 2]
- F()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ).kBoundedQuotient(Integer(2),t=Integer(1)).affineSchur() 2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded affine Schur basis
- a_realization()[source]#
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
>>> from sage.all import * >>> Sym = SymmetricFunctions(QQ) >>> Q = Sym.kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.a_realization() 3-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 3-bounded monomial basis >>> Q = Sym.kBoundedQuotient(Integer(3),t=Integer(2)) >>> Q.a_realization() 3-Bounded Quotient of Symmetric Functions over Rational Field with t=2 in the 3-bounded Hall-Littlewood P basis
- affineSchur()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ).kBoundedQuotient(Integer(2),t=Integer(1)).affineSchur() 2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded affine Schur basis
- ambient()[source]#
Returns the Symmetric Functions over the same ring as
self
. This is needed to realize our ring as a quotient.
- an_element()[source]#
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]
>>> from sage.all import * >>> Q = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.an_element() 2*m3[] + 2*m3[1] + 3*m3[2]
- dks()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(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()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(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()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(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()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(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()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ).kBoundedQuotient(Integer(2),t=Integer(1)).kmonomial() 2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded monomial basis
- kmonomial()[source]#
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
>>> from sage.all import * >>> SymmetricFunctions(QQ).kBoundedQuotient(Integer(2),t=Integer(1)).kmonomial() 2-Bounded Quotient of Symmetric Functions over Rational Field with t=1 in the 2-bounded monomial basis
- lift(la)[source]#
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]
>>> from sage.all import * >>> Q = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.lift([Integer(2),Integer(1)]) m[2, 1] >>> Q = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(3)) >>> Q.lift([Integer(2),Integer(1)]) HLP[2, 1]
- one()[source]#
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[]
>>> from sage.all import * >>> Q = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.one() m3[]
- realizations()[source]#
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
>>> from sage.all import * >>> kQ = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(3)) >>> 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] >>> HLP = kQ.ambient().hall_littlewood().P() >>> all( rzn(HLP[Integer(3),Integer(2),Integer(1)]).lift() == HLP[Integer(3),Integer(2),Integer(1)] for rzn in kQ.realizations()) True >>> kQ = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),Integer(1)) >>> 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] >>> m = kQ.ambient().m() >>> all( rzn(m[Integer(3),Integer(2),Integer(1)]).lift() == m[Integer(3),Integer(2),Integer(1)] for rzn in kQ.realizations()) True
- retract(la)[source]#
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]
>>> from sage.all import * >>> Q = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.retract([Integer(2),Integer(1)]) m3[2, 1]
- class sage.combinat.sf.k_dual.KBoundedQuotientBases(base)[source]#
Bases:
Category_realization_of_parent
The category of bases for the \(k\)-bounded subspace of symmetric functions.
- class ParentMethods[source]#
Bases:
object
- ambient()[source]#
Returns the symmetric functions.
EXAMPLES:
sage: km = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).km() sage: km.ambient() Symmetric Functions over Rational Field
>>> from sage.all import * >>> km = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).km() >>> km.ambient() Symmetric Functions over Rational Field
- antipode(element)[source]#
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]
>>> from sage.all import * >>> dks3 = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).dual_k_Schur() >>> dks3[Integer(3),Integer(2)].antipode() -dks3[1, 1, 1, 1, 1] >>> km = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).km() >>> km[Integer(3),Integer(2)].antipode() m3[3, 2] >>> km.antipode(km[Integer(3),Integer(2)]) m3[3, 2] >>> m = SymmetricFunctions(QQ).m() >>> m[Integer(3),Integer(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]
>>> from sage.all import * >>> km = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)).km() >>> km[Integer(1),Integer(1),Integer(1),Integer(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] >>> kHP = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)).kHLP() >>> kHP[Integer(2),Integer(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] >>> dks = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)).dks() >>> dks[Integer(2),Integer(2)].antipode() dks3[2, 2] >>> dks[Integer(3),Integer(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)[source]#
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[]
>>> from sage.all import * >>> Q3 = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> km = Q3.km() >>> km[Integer(3),Integer(2)].coproduct() m3[] # m3[3, 2] + m3[2] # m3[3] + m3[3] # m3[2] + m3[3, 2] # m3[] >>> dks3 = Q3.dual_k_Schur() >>> dks3[Integer(2),Integer(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[]
>>> from sage.all import * >>> Q3t = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)) >>> km = Q3t.km() >>> km[Integer(3),Integer(2)].coproduct() m3[] # m3[3, 2] + m3[2] # m3[3] + m3[3] # m3[2] + m3[3, 2] # m3[] >>> dks = Q3t.dks() >>> dks[Integer(2),Integer(1),Integer(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[] >>> kHLP = Q3t.kHLP() >>> kHLP[Integer(2),Integer(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[] >>> km.coproduct(km[Integer(3),Integer(2)]) m3[] # m3[3, 2] + m3[2] # m3[3] + m3[3] # m3[2] + m3[3, 2] # m3[]
- counit(element)[source]#
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
>>> from sage.all import * >>> km = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)).km() >>> f = Integer(2)*km[Integer(2),Integer(1)] - Integer(3)*km([]) >>> f.counit() -3 >>> km.counit(f) -3
- degree_on_basis(b)[source]#
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
>>> from sage.all import * >>> F = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).affineSchur() >>> F.degree_on_basis(Partition([Integer(3),Integer(2)])) 5
- indices()[source]#
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
>>> from sage.all import * >>> km = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).km() >>> km.indices() 3-Bounded Partitions
- lift(la)[source]#
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]
>>> from sage.all import * >>> F = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).affineSchur() >>> F.lift([Integer(3),Integer(1)]) m[1, 1, 1, 1] + m[2, 1, 1] + m[2, 2] + m[3, 1] >>> Sym = SymmetricFunctions(QQ['t'].fraction_field()) >>> dks = Sym.kBoundedQuotient(Integer(3)).dual_k_Schur() >>> dks.lift([Integer(3),Integer(1)]) t^5*HLP[1, 1, 1, 1] + t^2*HLP[2, 1, 1] + t*HLP[2, 2] + HLP[3, 1] >>> dks = Sym.kBoundedQuotient(Integer(3),t=Integer(1)).dual_k_Schur() >>> dks.lift([Integer(3),Integer(1)]) m[1, 1, 1, 1] + m[2, 1, 1] + m[2, 2] + m[3, 1]
- one_basis()[source]#
Return the basis element indexing
1
.EXAMPLES:
sage: F = SymmetricFunctions(QQ).kBoundedQuotient(3,t=1).affineSchur() sage: F.one() # indirect doctest F3[]
>>> from sage.all import * >>> F = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).affineSchur() >>> F.one() # indirect doctest F3[]
- product(x, y)[source]#
Returns the product of two elements
x
andy
.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)
>>> from sage.all import * >>> dks3 = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).dual_k_Schur() >>> dks3.product(dks3[Integer(2),Integer(1)],dks3[Integer(1),Integer(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] >>> dks3.product(dks3[Integer(2),Integer(1)]+dks3[Integer(1)], dks3[Integer(1),Integer(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] >>> dks3.product(dks3[Integer(2),Integer(1)]+dks3[Integer(1)], dks3([])) dks3[1] + dks3[2, 1] >>> dks3.product(dks3([]), dks3([])) dks3[] >>> dks3.product(dks3([]), dks3([Integer(4),Integer(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[]
>>> from sage.all import * >>> dks3 = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(3)).dual_k_Schur() >>> dks3.product(dks3[Integer(2),Integer(1)],dks3[Integer(1),Integer(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] >>> dks3.product(dks3[Integer(2),Integer(1)]+dks3[Integer(1)], dks3[Integer(1),Integer(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] >>> dks3.product(dks3[Integer(2),Integer(1)]+dks3[Integer(1)], dks3([])) dks3[1] + dks3[2, 1] >>> 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)
>>> from sage.all import * >>> F = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).affineSchur() >>> F.product(F[Integer(2),Integer(1)],F[Integer(1),Integer(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] >>> F.product(F[Integer(2),Integer(1)]+F[Integer(1)], F[Integer(1),Integer(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] >>> F.product(F[Integer(2),Integer(1)]+F[Integer(1)], F([])) F3[1] + F3[2, 1] >>> F.product(F([]), F([])) F3[] >>> F.product(F([]), F([Integer(4),Integer(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[]
>>> from sage.all import * >>> F = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(3)).affineSchur() >>> F.product(F[Integer(2),Integer(1)],F[Integer(1),Integer(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] >>> F.product(F[Integer(2),Integer(1)],F[Integer(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] >>> F.product(F[Integer(2),Integer(1)]+F[Integer(1)], F[Integer(1),Integer(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] >>> F.product(F[Integer(2),Integer(1)]+F[Integer(1)], F([])) F3[1] + F3[2, 1] >>> 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]
>>> from sage.all import * >>> km = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).km() >>> km.product(km[Integer(2),Integer(1)],km[Integer(2),Integer(1)]) 4*m3[2, 2, 1, 1] + 6*m3[2, 2, 2] + 2*m3[3, 2, 1] + 2*m3[3, 3] >>> Q3 = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)) >>> km = Q3.km() >>> km.product(km[Integer(2),Integer(1)],km[Integer(2),Integer(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] >>> dks = Q3.dual_k_Schur() >>> km.product(dks[Integer(2),Integer(1)],dks[Integer(1),Integer(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)[source]#
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]
>>> from sage.all import * >>> Q = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)) >>> Q.retract([Integer(2),Integer(1)]) m3[2, 1]
- super_categories()[source]#
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]
>>> from sage.all import * >>> Sym = SymmetricFunctions(QQ['t']) >>> from sage.combinat.sf.k_dual import KBoundedQuotientBases >>> Q = Sym.kBoundedQuotient(Integer(3),t=Integer(1)) >>> KQB = KBoundedQuotientBases(Q) >>> 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)[source]#
Bases:
CombinatorialFreeModule
Abstract base class for the bases of the \(k\)-bounded quotient.
- class sage.combinat.sf.k_dual.kMonomial(kBoundedRing)[source]#
Bases:
KBoundedQuotientBasis
The basis of monomial symmetric functions indexed by partitions with first part less than or equal to \(k\).
- lift(la)[source]#
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)
>>> from sage.all import * >>> km = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).km() >>> km.lift(Partition([Integer(3),Integer(1)])) m[3, 1] >>> km.lift([]) m[] >>> km.lift(Partition([Integer(4),Integer(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)[source]#
Implements the retract function on the monomial basis. Given a partition
la
, the retract will return the corresponding \(k\)-bounded monomial basis element ifla
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
>>> from sage.all import * >>> km = SymmetricFunctions(QQ).kBoundedQuotient(Integer(3),t=Integer(1)).km() >>> km.retract(Partition([Integer(3),Integer(1)])) m3[3, 1] >>> km.retract(Partition([Integer(4),Integer(1)])) 0 >>> km.retract([]) m3[] >>> m = SymmetricFunctions(QQ).m() >>> km(m[Integer(3), Integer(1)]) m3[3, 1] >>> km(m[Integer(4), Integer(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]
>>> from sage.all import * >>> km = SymmetricFunctions(FractionField(QQ['t'])).kBoundedQuotient(Integer(3)).km() >>> km.retract(Partition([Integer(3),Integer(1)])) m3[3, 1] >>> km.retract(Partition([Integer(4),Integer(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] >>> m = SymmetricFunctions(FractionField(QQ['t'])).m() >>> km(m[Integer(3), Integer(1)]) m3[3, 1] >>> km(m[Integer(4), Integer(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)[source]#
Bases:
KBoundedQuotientBasis
The basis of P Hall-Littlewood symmetric functions indexed by partitions with first part less than or equal to \(k\).
- lift(la)[source]#
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)
>>> from sage.all import * >>> kHLP = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(3)).kHallLittlewoodP() >>> kHLP.lift(Partition([Integer(3),Integer(1)])) HLP[3, 1] >>> kHLP.lift([]) HLP[] >>> kHLP.lift(Partition([Integer(4),Integer(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)[source]#
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 ifla
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]
>>> from sage.all import * >>> kHLP = SymmetricFunctions(QQ['t'].fraction_field()).kBoundedQuotient(Integer(3)).kHallLittlewoodP() >>> kHLP.retract(Partition([Integer(3),Integer(1)])) HLP3[3, 1] >>> kHLP.retract(Partition([Integer(4),Integer(1)])) 0 >>> kHLP.retract([]) HLP3[] >>> m = kHLP.realization_of().ambient().m() >>> kHLP(m[Integer(2),Integer(2)]) (t^4-t^3-t+1)*HLP3[1, 1, 1, 1] + (t-1)*HLP3[2, 1, 1] + HLP3[2, 2]