# Orthogonal Symmetric Functions#

AUTHORS:

• Travis Scrimshaw (2013-11-10): Initial version

class sage.combinat.sf.orthogonal.SymmetricFunctionAlgebra_orthogonal(Sym)#

The orthogonal symmetric function basis (or orthogonal basis, to be short).

The orthogonal basis $$\{ o_{\lambda} \}$$ where $$\lambda$$ is taken over all partitions is defined by the following change of basis with the Schur functions:

$s_{\lambda} = \sum_{\mu} \left( \sum_{\nu \in H} c^{\lambda}_{\mu\nu} \right) o_{\mu}$

where $$H$$ is the set of all partitions with even-width rows and $$c^{\lambda}_{\mu\nu}$$ 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 $$\ZZ$$-graded basis. However this does respect the induced $$(\ZZ/2\ZZ)$$-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())
p
sage: m(o())
m
sage: e(o())
e
sage: h(o())
h
sage: s(o())
s

sage: p(o())
-p[] + 1/2*p[1, 1] + 1/2*p
sage: m(o())
-m[] + m[1, 1] + m
sage: e(o())
-e[] + e[1, 1] - e
sage: h(o())
-h[] + h
sage: s(o())
-s[] + s

sage: p(o())
-p + 1/6*p[1, 1, 1] + 1/2*p[2, 1] + 1/3*p
sage: m(o())
-m + m[1, 1, 1] + m[2, 1] + m
sage: e(o())
-e + e[1, 1, 1] - 2*e[2, 1] + e
sage: h(o())
-h + h
sage: s(o())
-s + s

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())
-m[1, 1] + m[1, 1, 1, 1] - m + m[2, 1, 1] + m[2, 2] + m[3, 1] + m
sage: e(o())
-e[1, 1] + e[1, 1, 1, 1] + e - 3*e[2, 1, 1] + e[2, 2] + 2*e[3, 1] - e
sage: h(o())
-h + h
sage: s(o())
-s + s


Some examples of conversions the other way:

sage: o(h)
o + o
sage: o(e)
o[1, 1, 1]
sage: o(m[2,1])
o - 2*o[1, 1, 1] + o[2, 1]
sage: o(p)
o[1, 1, 1] - o[2, 1] + o


Some multiplication:

sage: o() * o([1,1])
o[1, 1] + o + o[2, 1, 1] + o[3, 1]
sage: o([2,1,1]) * o()
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 + o[1, 1, 1] + 2*o[2, 1] + o[2, 1, 1, 1] + o[2, 2, 1]
+ o + o[3, 1, 1] + o[3, 2]


Examples of the Hopf algebra structure:

sage: o().antipode()
-o
sage: o().antipode()
-o[] + o[1, 1]
sage: o().coproduct()
o[] # o + o # o[]
sage: o().coproduct()
o[] # o[] + o[] # o + o # o + o # o[]
sage: o().counit()
0
sage: o.one().counit()
1