Orthogonal Symmetric Functions#
AUTHORS:
Travis Scrimshaw (2013-11-10): Initial version
- class sage.combinat.sf.orthogonal.SymmetricFunctionAlgebra_orthogonal(Sym)#
Bases:
sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic
The orthogonal symmetric function basis (or orthogonal basis, to be short).
The orthogonal basis
where is taken over all partitions is defined by the following change of basis with the Schur functions:where
is the set of all partitions with even-width rows and is the usual Littlewood-Richardson (LR) coefficients. By the properties of LR coefficients, this can be shown to be a upper unitriangular change of basis.Note
This is only a filtered basis, not a
-graded basis. However this does respect the induced -grading.INPUT:
Sym
– an instance of the ring of the symmetric functions
REFERENCES:
EXAMPLES:
Here are the first few orthogonal symmetric functions, in various bases:
sage: Sym = SymmetricFunctions(QQ) sage: o = Sym.o() sage: e = Sym.e() sage: h = Sym.h() sage: p = Sym.p() sage: s = Sym.s() sage: m = Sym.m() sage: p(o([1])) p[1] sage: m(o([1])) m[1] sage: e(o([1])) e[1] sage: h(o([1])) h[1] sage: s(o([1])) s[1] sage: p(o([2])) -p[] + 1/2*p[1, 1] + 1/2*p[2] sage: m(o([2])) -m[] + m[1, 1] + m[2] sage: e(o([2])) -e[] + e[1, 1] - e[2] sage: h(o([2])) -h[] + h[2] sage: s(o([2])) -s[] + s[2] sage: p(o([3])) -p[1] + 1/6*p[1, 1, 1] + 1/2*p[2, 1] + 1/3*p[3] sage: m(o([3])) -m[1] + m[1, 1, 1] + m[2, 1] + m[3] sage: e(o([3])) -e[1] + e[1, 1, 1] - 2*e[2, 1] + e[3] sage: h(o([3])) -h[1] + h[3] sage: s(o([3])) -s[1] + s[3] sage: Sym = SymmetricFunctions(ZZ) sage: o = Sym.o() sage: e = Sym.e() sage: h = Sym.h() sage: s = Sym.s() sage: m = Sym.m() sage: p = Sym.p() sage: m(o([4])) -m[1, 1] + m[1, 1, 1, 1] - m[2] + m[2, 1, 1] + m[2, 2] + m[3, 1] + m[4] sage: e(o([4])) -e[1, 1] + e[1, 1, 1, 1] + e[2] - 3*e[2, 1, 1] + e[2, 2] + 2*e[3, 1] - e[4] sage: h(o([4])) -h[2] + h[4] sage: s(o([4])) -s[2] + s[4]
Some examples of conversions the other way:
sage: o(h[3]) o[1] + o[3] sage: o(e[3]) o[1, 1, 1] sage: o(m[2,1]) o[1] - 2*o[1, 1, 1] + o[2, 1] sage: o(p[3]) o[1, 1, 1] - o[2, 1] + o[3]
Some multiplication:
sage: o([2]) * o([1,1]) o[1, 1] + o[2] + o[2, 1, 1] + o[3, 1] sage: o([2,1,1]) * o([2]) o[1, 1] + o[1, 1, 1, 1] + 2*o[2, 1, 1] + o[2, 2] + o[2, 2, 1, 1] + o[3, 1] + o[3, 1, 1, 1] + o[3, 2, 1] + o[4, 1, 1] sage: o([1,1]) * o([2,1]) o[1] + o[1, 1, 1] + 2*o[2, 1] + o[2, 1, 1, 1] + o[2, 2, 1] + o[3] + o[3, 1, 1] + o[3, 2]
Examples of the Hopf algebra structure:
sage: o([1]).antipode() -o[1] sage: o([2]).antipode() -o[] + o[1, 1] sage: o([1]).coproduct() o[] # o[1] + o[1] # o[] sage: o([2]).coproduct() o[] # o[] + o[] # o[2] + o[1] # o[1] + o[2] # o[] sage: o([1]).counit() 0 sage: o.one().counit() 1