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:
KBoundedQuotientBasisThis 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:
KBoundedQuotientBasisThis 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
AffineSchurFunctionsand 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,ParentInitialization 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.SymmetricFunctionsk– 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]¶
Return 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– 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]¶
Return 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]¶
Return 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]¶
Give 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]¶
Return 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]¶
Give 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
laEXAMPLES:
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_parentThe category of bases for the \(k\)-bounded subspace of symmetric functions.
- class ParentMethods[source]¶
Bases:
object- ambient()[source]¶
Return 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
elementvia 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
elementvia 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 nonnegative 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]¶
Implement the lift map from the basis
selfto 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]¶
Return the product of two elements
xandy.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]¶
Give 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
laEXAMPLES:
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:
CombinatorialFreeModuleAbstract base class for the bases of the \(k\)-bounded quotient.
- class sage.combinat.sf.k_dual.kMonomial(kBoundedRing)[source]¶
Bases:
KBoundedQuotientBasisThe basis of monomial symmetric functions indexed by partitions with first part less than or equal to \(k\).
- lift(la)[source]¶
Implement 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]¶
Implement the retract function on the monomial basis. Given a partition
la, the retract will return the corresponding \(k\)-bounded monomial basis element iflais \(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:
KBoundedQuotientBasisThe basis of P Hall-Littlewood symmetric functions indexed by partitions with first part less than or equal to \(k\).
- lift(la)[source]¶
Implement 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]¶
Implement 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 iflais \(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]