k-Schur Functions

class sage.combinat.sf.new_kschur.KBoundedSubspace(Sym, k, t='t')

Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.parent.Parent

This class implements the subspace of the ring of symmetric functions spanned by \{ s_{\lambda}[X/(1-t)] \}_{\lambda_1\le k} = \{ s_{\lambda}^{(k)}[X,t]\}_{\lambda_1 \le k} over the base ring \mathbb{Q}[t]. When t=1, this space is in fact a subring of the ring of symmetric functions generated by the complete homogeneous symmetric functions h_i for 1\le i \le k.

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: KB = Sym.kBoundedSubspace(3,1); KB
3-bounded Symmetric Functions over Rational Field with t=1

sage: Sym = SymmetricFunctions(QQ['t'])
sage: KB = Sym.kBoundedSubspace(3); KB
3-bounded Symmetric Functions over Univariate Polynomial Ring in t over Rational Field

The k-Schur function basis can be constructed as follows:

sage: ks = KB.kschur(); ks
3-bounded Symmetric Functions over Univariate Polynomial Ring in t over Rational Field in the 3-Schur basis
K_kschur()

Returns the k-bounded basis called the K-k-Schur basis. See [Morse11] and [LamSchillingShimozono10].

REFERENCES:

[Morse11]J. Morse, Combinatorics of the K-theory of affine Grassmannians, Adv. in Math., Volume 229, Issue 5, pp. 2950–2984.
[LamSchillingShimozono10]T. Lam, A. Schilling, M.Shimozono, K-theory Schubert calculus of the affine Grassmannian, Compositio Math. 146 (2010), 811-852.

EXAMPLES:

sage: kB = SymmetricFunctions(QQ).kBoundedSubspace(3,1)
sage: g = kB.K_kschur()
sage: g
3-bounded Symmetric Functions over Rational Field with t=1 in the K-3-Schur basis
sage: kB = SymmetricFunctions(QQ['t']).kBoundedSubspace(3)
sage: g = kB.K_kschur()
Traceback (most recent call last):
...
ValueError: This basis only exists for t=1
khomogeneous()

The homogeneous basis of this algebra.

See also

kHomogeneous()

EXAMPLES:

sage: kh3 = SymmetricFunctions(QQ).kBoundedSubspace(3,1).khomogeneous()
sage: TestSuite(kh3).run()
kschur()

The k-Schur basis of this algebra.

See also

kSchur()

EXAMPLES:

sage: ks3 = SymmetricFunctions(QQ).kBoundedSubspace(3,1).kschur()
sage: TestSuite(ks3).run()
realizations()

A list of realizations of this algebra.

EXAMPLES:

sage: SymmetricFunctions(QQ).kBoundedSubspace(3,1).realizations()
[3-bounded Symmetric Functions over Rational Field with t=1 in the 3-Schur basis also with t=1, 3-bounded Symmetric Functions over Rational Field with t=1 in the 3-bounded homogeneous basis, 3-bounded Symmetric Functions over Rational Field with t=1 in the K-3-Schur basis]

sage: SymmetricFunctions(QQ['t']).kBoundedSubspace(3).realizations()
[3-bounded Symmetric Functions over Univariate Polynomial Ring in t over Rational Field in the 3-Schur basis]
retract(sym)

Retracts sym from self to the ring of symmetric functions.

INPUT:

  • sym – a symmetric function

OUTPUT:

  • the analogue of the symmetric function in the k-bounded subspace (if possible)

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: s = Sym.schur()
sage: KB = Sym.kBoundedSubspace(3,1); KB
3-bounded Symmetric Functions over Rational Field with t=1
sage: KB.retract(s[2]+s[3])
ks3[2] + ks3[3]
sage: KB.retract(s[2,1,1])
Traceback (most recent call last):
...
ValueError: s[2, 1, 1] is not in the image of Generic morphism:
  From: 3-bounded Symmetric Functions over Rational Field with t=1 in the 3-Schur basis also with t=1
  To:   Symmetric Functions over Rational Field in the Schur basis
class sage.combinat.sf.new_kschur.KBoundedSubspaceBases(base, t='t')

Bases: sage.categories.realizations.Category_realization_of_parent

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

class ElementMethods
coproduct()

Returns the coproduct operation on self.

The coproduct is first computed on the homogeneous basis if t=1 and on the Hall-Littlewood Qp basis otherwise. The result is computed then converted to the tensor squared of self.parent()

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: ks3 = Sym.kschur(3,1)
sage: ks3[2,1].coproduct()
ks3[] # ks3[2, 1] + ks3[1] # ks3[1, 1] + ks3[1] # ks3[2] + ks3[1, 1] # ks3[1] + ks3[2] # ks3[1] + ks3[2, 1] # ks3[]
sage: h3 = Sym.khomogeneous(3)
sage: h3[2,1].coproduct()
h3[] # h3[2, 1] + h3[1] # h3[1, 1] + h3[1] # h3[2] + h3[1, 1] # h3[1] + h3[2] # h3[1] + h3[2, 1] # h3[]
sage: ks3t = SymmetricFunctions(FractionField(QQ['t'])).kschur(3)
sage: ks3t[2,1].coproduct()
ks3[] # ks3[2, 1] + ks3[1] # ks3[1, 1] + ks3[1] # ks3[2] + ks3[1, 1] # ks3[1] + ks3[2] # ks3[1] + ks3[2, 1] # ks3[]
sage: ks3t[3,1].coproduct()
ks3[] # ks3[3, 1] + ks3[1] # ks3[2, 1] + (t+1)*ks3[1] # ks3[3] + ks3[1, 1] # ks3[2] + ks3[2] # ks3[1, 1]
+ (t+1)*ks3[2] # ks3[2] + ks3[2, 1] # ks3[1] + (t+1)*ks3[3] # ks3[1] + ks3[3, 1] # ks3[]
expand(*args, **kwargs)

Returns the monomial expansion of self in n variables.

INPUT:

  • n – positive integer

OUTPUT: monomial expansion of self in n variables

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: ks = Sym.kschur(3,1)
sage: ks[3,1].expand(2)
x0^4 + 2*x0^3*x1 + 2*x0^2*x1^2 + 2*x0*x1^3 + x1^4
sage: s = Sym.schur()
sage: ks[3,1].expand(2) == s(ks[3,1]).expand(2)
True

sage: Sym = SymmetricFunctions(QQ['t'])
sage: ks = Sym.kschur(3)
sage: f = ks[3,2]-ks[1]
sage: f.expand(2)
t^2*x0^5 + (t^2 + t)*x0^4*x1 + (t^2 + t + 1)*x0^3*x1^2 + (t^2 + t + 1)*x0^2*x1^3 + (t^2 + t)*x0*x1^4 + t^2*x1^5 - x0 - x1
hl_creation_operator(nu, t=None)

This is the vertex operator that generalizes Jing’s operator.

It is a linear operator that raises the degree by |\nu|. This creation operator is a t-analogue of multiplication by s(nu) .

See also

Proposition 5 in [SZ.2001].

INPUT:

  • nu – a partition
  • t – a parameter (default: None, in this case t is used)

REFERENCES:

[SZ.2001]M. Shimozono, M. Zabrocki, Hall-Littlewood vertex operators and generalized Kostka polynomials. Adv. Math. 158 (2001), no. 1, 66-85.

EXAMPLES:

sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
sage: ks = Sym.kschur(4)
sage: s = Sym.schur()
sage: s(ks([3,1,1]).hl_creation_operator([1]))
(t-1)*s[2, 2, 1, 1] + t^2*s[3, 1, 1, 1] + (t^3+t^2-t)*s[3, 2, 1] + (t^3-t^2)*s[3, 3] + (t^4+t^3)*s[4, 1, 1] + t^4*s[4, 2] + t^5*s[5, 1]
sage: ks([3,1,1]).hl_creation_operator([1])
(t-1)*ks4[2, 2, 1, 1] + t^2*ks4[3, 1, 1, 1] + t^3*ks4[3, 2, 1] + (t^3-t^2)*ks4[3, 3] + t^4*ks4[4, 1, 1]

sage: Sym = SymmetricFunctions(QQ)
sage: ks = Sym.kschur(4,t=1)
sage: ks([3,1,1]).hl_creation_operator([1])
ks4[3, 1, 1, 1] + ks4[3, 2, 1] + ks4[4, 1, 1]
is_schur_positive(*args, **kwargs)

Returns whether self is Schur positive.

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: ks = Sym.kschur(3,1)
sage: f = ks[3,2]+ks[1]
sage: f.is_schur_positive()
True
sage: f = ks[3,2]-ks[1]
sage: f.is_schur_positive()
False

sage: Sym = SymmetricFunctions(QQ['t'])
sage: ks = Sym.kschur(3)
sage: f = ks[3,2]+ks[1]
sage: f.is_schur_positive()
True
sage: f = ks[3,2]-ks[1]
sage: f.is_schur_positive()
False
omega()

Returns the \omega operator on self.

At t=1, \omega maps the k-Schur function s^{(k)}_\lambda to s^{(k)}_{\lambda^{(k)}}, where \lambda^{(k)} is the k-conjugate of the partition \lambda.

See also

k_conjugate().

For generic t, \omega sends s^{(k)}_\lambda[X;t] to t^d s^{(k)}_{\lambda^{(k)}}[X;1/t], where d is the size of the core of \lambda minus the size of \lambda. Most of the time, this result is not in the k-bounded subspace.

See also

omega_t_inverse().

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: ks = Sym.kschur(3,1)
sage: ks[2,2,1,1].omega()
ks3[2, 2, 2]
sage: kh = Sym.khomogeneous(3)
sage: kh[3].omega()
h3[1, 1, 1] - 2*h3[2, 1] + h3[3]

sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
sage: ks = Sym.kschur(3)
sage: ks[3,1,1].omega()
Traceback (most recent call last):
...
ValueError: t*s[2, 1, 1, 1] + s[3, 1, 1] is not in the image of Generic morphism:
From: 3-bounded Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the 3-Schur basis
To:   Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Schur basis
omega_t_inverse()

Returns the map t\to 1/t composed with \omega on self.

Unlike the map omega(), the result of omega_t_inverse() lives in the k-bounded subspace and hence will return an element even for generic t. For t=1, omega() and omega_t_inverse() return the same result.

EXAMPLES:

sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
sage: ks = Sym.kschur(3)
sage: ks[3,1,1].omega_t_inverse()
1/t*ks3[2, 1, 1, 1]
sage: ks[3,2].omega_t_inverse()
1/t^2*ks3[1, 1, 1, 1, 1]
class KBoundedSubspaceBases.ParentMethods
an_element()

Return an element of self.

EXAMPLES:

sage: SymmetricFunctions(QQ['t']).kschur(3).an_element()
2*ks3[] + 2*ks3[1] + 3*ks3[2]
degree_on_basis(b)

Return the degree of the basis element indexed by b.

INPUT: - b – a partition

EXAMPLES:

sage: ks3 = SymmetricFunctions(QQ).kschur(3,1)
sage: ks3.degree_on_basis(Partition([3,2]))
5
one_basis()

Return the basis element indexing 1.

EXAMPLES:

sage: ks3 = SymmetricFunctions(QQ).kschur(3,1)
sage: ks3.one()  # indirect doctest
ks3[]
transition_matrix(other, n)

Return the degree n transition matrix between self and other.

INPUT:

  • other – a basis in the ring of symmetric functions
  • n – a positive integer

The entry in the i^{th} row and j^{th} column is the coefficient obtained by writing the i^{th} element of the basis of self in terms of the basis other, and extracting the j^{th} coefficient.

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ); s = Sym.schur()
sage: ks3 = Sym.kschur(3,1)
sage: ks3.transition_matrix(s,5)
[1 1 1 0 0 0 0]
[0 1 0 1 0 0 0]
[0 0 1 0 1 0 0]
[0 0 0 1 0 1 0]
[0 0 0 0 1 1 1]

sage: Sym = SymmetricFunctions(QQ['t'])
sage: s = Sym.schur()
sage: ks = Sym.kschur(3)
sage: ks.transition_matrix(s,5)
[t^2   t   1   0   0   0   0]
[  0   t   0   1   0   0   0]
[  0   0   t   0   1   0   0]
[  0   0   0   t   0   1   0]
[  0   0   0   0 t^2   t   1]
KBoundedSubspaceBases.super_categories()

The super categories of self.

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ['t'])
sage: from sage.combinat.sf.new_kschur import KBoundedSubspaceBases
sage: KB = Sym.kBoundedSubspace(3)
sage: KBB = KBoundedSubspaceBases(KB); KBB
Category of k bounded subspace bases of 3-bounded Symmetric Functions over Univariate Polynomial Ring in t over Rational Field
sage: KBB.super_categories()
[Category of realizations of 3-bounded Symmetric Functions over Univariate Polynomial Ring in t over Rational Field, Join of Category of graded coalgebras with basis over Univariate Polynomial Ring in t over Rational Field and Category of subobjects of sets]
class sage.combinat.sf.new_kschur.K_kSchur(kBoundedRing)

Bases: sage.combinat.free_module.CombinatorialFreeModule

This class implements the basis of the k-bounded subspace called the K-k-Schur basis. See [Morse2011], [LamSchillingShimozono2010].

REFERENCES:

[Morse2011]J. Morse, Combinatorics of the K-theory of affine Grassmannians, Adv. in Math., Volume 229, Issue 5, pp. 2950–2984.
[LamSchillingShimozono2010]T. Lam, A. Schilling, M.Shimozono, K-theory Schubert calculus of the affine Grassmannian, Compositio Math. 146 (2010), 811-852.
K_k_Schur_non_commutative_variables(la)

Returns the K-k-Schur function, as embedded inside the affine zero Hecke algebra.

INPUT:

  • la – A k-bounded Partition

OUTPUT:

  • An element of the affine zero Hecke algebra.

EXAMPLES:

sage: g = SymmetricFunctions(QQ).kBoundedSubspace(3,1).K_kschur()
sage: g.K_k_Schur_non_commutative_variables([2,1])
T3*T1*T0 + T1*T2*T0 + T3*T2*T0 - T2*T0 + T0*T1*T0 + T2*T0*T1 + T0*T3*T0 + T2*T0*T3 + T0*T3*T1 + T2*T3*T2 - T3*T1 + T2*T3*T1 + T3*T1*T2 + T1*T2*T1
sage: g.K_k_Schur_non_commutative_variables([])
1
sage: g.K_k_Schur_non_commutative_variables([4,1])
Traceback (most recent call last):
...
ValueError: Partition should be 3-bounded
homogeneous_basis_noncommutative_variables_zero_Hecke(la)

Returns the homogeneous basis element indexed by la, viewed as an element inside the affine zero Hecke algebra. For the code, see method _homogeneous_basis.

INPUT:

  • la – A k-bounded partition

OUTPUT:

  • An element of the affine zero Hecke algebra.

EXAMPLES:

sage: g = SymmetricFunctions(QQ).kBoundedSubspace(3,1).K_kschur()
sage: g.homogeneous_basis_noncommutative_variables_zero_Hecke([2,1])
T2*T1*T0 + T3*T1*T0 - T1*T0 + T1*T2*T0 + T3*T2*T0 - 2*T2*T0 + T0*T1*T0 + T2*T0*T1 + T1*T0*T3 + T0*T3*T0 - T0*T3 + T2*T0*T3 + T0*T3*T2 + T0*T3*T1 - T3*T2 + T2*T3*T2 - 2*T3*T1 - T2*T1 + T3*T2*T1 + T2*T3*T1 + T3*T1*T2 + T1*T2*T1
sage: g.homogeneous_basis_noncommutative_variables_zero_Hecke([])
1
lift(x)

Returns the lift of a k-bounded symmetric function.

INPUT:

  • x – An expression in the K-k-Schur basis. Equivalently, x can be a

    k-bounded partition (then x corresponds to the basis element indexed by x)

OUTPUT:

  • A symmetric function.

EXAMPLES:

sage: g = SymmetricFunctions(QQ).kBoundedSubspace(3,1).K_kschur()
sage: g.lift([2,1])
h[2] + h[2, 1] - h[3]
sage: g.lift([])
h[]
sage: g.lift([4,1])
Traceback (most recent call last):
...
TypeError: do not know how to make x (= [4, 1]) an element of self (=3-bounded Symmetric Functions over Rational Field with t=1 in the K-3-Schur basis)
product(x, y)

Returns the product of the two K-k-Schur functions.

INPUT:

  • x, y – elements of the k-bounded subspace, in the K-k-Schur basis.

OUTPUT:

  • An element of the k-bounded subspace, in the K-k-Schur basis

EXAMPLES:

sage: g = SymmetricFunctions(QQ).kBoundedSubspace(3,1).K_kschur()
sage: g.product(g([2,1]), g[1])
-2*Kks3[2, 1] + Kks3[2, 1, 1] + Kks3[2, 2]
sage: g.product(g([2,1]), g([]))
Kks3[2, 1]
retract(x)

Returns the retract of a symmetric function.

INPUT:

  • x – A symmetric function.

OUTPUT:

  • A k-bounded symmetric function in the K-k-Schur basis.

EXAMPLES:

sage: g = SymmetricFunctions(QQ).kBoundedSubspace(3,1).K_kschur()
sage: m = SymmetricFunctions(QQ).m()
sage: g.retract(m[2,1])
-2*Kks3[1] + 4*Kks3[1, 1] - 2*Kks3[1, 1, 1] - Kks3[2] + Kks3[2, 1]
sage: g.retract(m([]))
Kks3[]
class sage.combinat.sf.new_kschur.kHomogeneous(kBoundedRing)

Bases: sage.combinat.free_module.CombinatorialFreeModule

Space of k-bounded homogeneous symmetric functions.

EXAMPLES:

sage: Sym = SymmetricFunctions(QQ)
sage: kH = Sym.khomogeneous(3)
sage: kH[2]
h3[2]
sage: kH[2].lift()
h[2]
class sage.combinat.sf.new_kschur.kSchur(kBoundedRing)

Bases: sage.combinat.free_module.CombinatorialFreeModule

Space of k-Schur functions.

TESTS:

Check that trac ticket #13743 is fixed:

sage: ks3 = SymmetricFunctions(QQ).kschur(3, 1)
sage: f = ks3[2,1]
sage: f.coefficient(f.support()[0])
1

Previous topic

Jack Symmetric Functions

Next topic

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

This Page