Symmetric functions defined by orthogonality and triangularity - Combinatorics

Skip to content
Back to top
View this page
Edit this page

# Symmetric functions defined by orthogonality and triangularity

One characterization of Schur functions is that they are upper triangularly related to the monomial symmetric functions and orthogonal with respect to the Hall scalar product. We can use the class SymmetricFunctionAlgebra_orthotriang to obtain the Schur functions from this definition.

Sage

    sage: from sage.combinat.sf.sfa import zee
    sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
    sage: Sym = SymmetricFunctions(QQ)
    sage: m = Sym.m()
    sage: s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur functions')
    sage: s([2,1])^2
    s[2, 2, 1, 1] + s[2, 2, 2] + s[3, 1, 1, 1] + 2*s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2]

Python

    >>> from sage.all import *
    >>> from sage.combinat.sf.sfa import zee
    >>> from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
    >>> Sym = SymmetricFunctions(QQ)
    >>> m = Sym.m()
    >>> s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur functions')
    >>> s([Integer(2),Integer(1)])**Integer(2)
    s[2, 2, 1, 1] + s[2, 2, 2] + s[3, 1, 1, 1] + 2*s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2]

Sage

    sage: s2 = SymmetricFunctions(QQ).s()
    sage: s2([2,1])^2
    s[2, 2, 1, 1] + s[2, 2, 2] + s[3, 1, 1, 1] + 2*s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2]

[Python]

    >>> from sage.all import *
    >>> s2 = SymmetricFunctions(QQ).s()
    >>> s2([Integer(2),Integer(1)])**Integer(2)
    s[2, 2, 1, 1] + s[2, 2, 2] + s[3, 1, 1, 1] + 2*s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2]

class sage.combinat.sf.orthotriang.OrthotriangBasisFunctor(basis)

  Bases: `SymmetricFunctionsFunctor`

  A constructor for algebras of symmetric functions constructed by orthogonality and triangularity.

  EXAMPLES:

  Sage

      sage: from sage.combinat.sf.sfa import zee
      sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
      sage: Sym = SymmetricFunctions(QQ)
      sage: m = Sym.m()
      sage: s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur')
      sage: s.construction()
      (SymmetricFunctionsFunctor[Schur], Rational Field)

  Python

      >>> from sage.all import *
      >>> from sage.combinat.sf.sfa import zee
      >>> from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
      >>> Sym = SymmetricFunctions(QQ)
      >>> m = Sym.m()
      >>> s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur')
      >>> s.construction()
      (SymmetricFunctionsFunctor[Schur], Rational Field)

class sage.combinat.sf.orthotriang.SymmetricFunctionAlgebra_orthotriang(Sym, base, scalar, prefix, basis_name, leading_coeff)

  Bases: `SymmetricFunctionAlgebra_generic`

  Initialization of the symmetric function algebra defined via orthotriangular rules.

  INPUT:

  - `self` – a basis determined by an orthotriangular definition

  - `Sym` – ring of symmetric functions

  - `base` – an instance of a basis of the ring of symmetric functions (e.g. the Schur functions)

  - `scalar` – a function `zee` on partitions. The function `zee` determines the scalar product on the power sum basis with normalization \(\langle p_{\mu}, p_{\mu} \rangle = \mathrm{zee}(\mu)\).

  - `prefix` – the prefix used to display the basis

  - `basis_name` – the name used for the basis

  Note

  The base ring is required to be a \(\QQ\)-algebra for this method to be usable, since the scalar product is defined by its values on the power sum basis.

  EXAMPLES:

  Sage

      sage: from sage.combinat.sf.sfa import zee
      sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
      sage: Sym = SymmetricFunctions(QQ)
      sage: m = Sym.m()
      sage: s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur'); s
      Symmetric Functions over Rational Field in the Schur basis

  Python

      >>> from sage.all import *
      >>> from sage.combinat.sf.sfa import zee
      >>> from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
      >>> Sym = SymmetricFunctions(QQ)
      >>> m = Sym.m()
      >>> s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur'); s
      Symmetric Functions over Rational Field in the Schur basis

  class Element

    Bases: `SymmetricFunctionAlgebra_generic_Element`

  construction()

    Return a pair `(F, R)`, where `F` is a `SymmetricFunctionsFunctor` and \(R\) is a ring, such that `F(R)` returns `self`.

    EXAMPLES:

    Sage

        sage: from sage.combinat.sf.sfa import zee
        sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
        sage: Sym = SymmetricFunctions(QQ)
        sage: m = Sym.m()
        sage: s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur')
        sage: s.construction()
        (SymmetricFunctionsFunctor[Schur], Rational Field)

    Python

        >>> from sage.all import *
        >>> from sage.combinat.sf.sfa import zee
        >>> from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
        >>> Sym = SymmetricFunctions(QQ)
        >>> m = Sym.m()
        >>> s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur')
        >>> s.construction()
        (SymmetricFunctionsFunctor[Schur], Rational Field)

  product(left, right)

    Return `left` * `right` by converting both to the base and then converting back to `self`.

    INPUT:

    - `self` – a basis determined by an orthotriangular definition

    - `left`, `right` – elements in `self`

    OUTPUT: the expansion of the product of `left` and `right` in the basis `self`

    EXAMPLES:

    Sage

        sage: from sage.combinat.sf.sfa import zee
        sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
        sage: Sym = SymmetricFunctions(QQ)
        sage: m = Sym.m()
        sage: s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur functions')
        sage: s([1])*s([2,1]) #indirect doctest
        s[2, 1, 1] + s[2, 2] + s[3, 1]

    Python

        >>> from sage.all import *
        >>> from sage.combinat.sf.sfa import zee
        >>> from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
        >>> Sym = SymmetricFunctions(QQ)
        >>> m = Sym.m()
        >>> s = SymmetricFunctionAlgebra_orthotriang(Sym, m, zee, 's', 'Schur functions')
        >>> s([Integer(1)])*s([Integer(2),Integer(1)]) #indirect doctest
        s[2, 1, 1] + s[2, 2] + s[3, 1]