Creation

Contents

Creation of Symmetric Function Algebras

Symmetric functions are symmetric polynomials over some coefficient ring, hence the algebra of symmetric functions is defined by specifying this ring. There are five standard bases that can be used to express symmetric functions. In Magma there are separate constructions for creating an algebra using each distinct basis.

SymmetricFunctionAlgebra(R) : Rng -> AlgSym
SFA(R) : Rng -> AlgSym
    Basis: MonStgElt                    Default: "Schur"
Given a ring R, return the algebra of symmetric functions over R. By default this algebra will use the basis of "Schur" functions, though the parameter Basis allows the user to specify that the basis be one of the "Homogeneous", "PowerSum", "Elementary" or "Monomial" functions.
SymmetricFunctionAlgebraSchur(R) : Rng -> AlgSym
SFASchur(R) : Rng -> AlgSym
Given a commutative ring with unity R, create the algebra of symmetric functions (polynomials) with coefficients from R. Its elements are expressed in terms of the basis of Schur symmetric functions, which are indexed by partitions.
SymmetricFunctionAlgebraHomogeneous(R) : Rng -> AlgSym
SFAHomogeneous(R) : Rng -> AlgSym
Given a commutative ring with unity R, create the algebra of symmetric functions (polynomials) with coefficients from R. Its elements are expressed in terms of the basis of Homogeneous symmetric functions, which are indexed by partitions.
SymmetricFunctionAlgebraPower(R) : Rng -> AlgSym
SFAPower(R) : Rng -> AlgSym
Given a commutative ring with unity R, create the algebra of symmetric functions (polynomials) with coefficients from R. Its elements are expressed in terms of the basis of Power Sum symmetric functions, which are indexed by partitions.
SymmetricFunctionAlgebraElementary(R) : Rng -> AlgSym
SFAElementary(R) : Rng -> AlgSym
Given a commutative ring with unity R, create the algebra of symmetric functions (polynomials) with coefficients from R. Its elements are expressed in terms of the basis of Elementary symmetric functions, which are indexed by partitions.
SymmetricFunctionAlgebraMonomial(R) : Rng -> AlgSym
SFAMonomial(R) : Rng -> AlgSym
Given a commutative ring with unity R, create the algebra of symmetric functions (polynomials) with coefficients from R. Its elements are expressed in terms of the basis of Monomial symmetric functions, which are indexed by partitions.

Example AlgSym_creation (H155E2)

A symmetric polynomial can be expressed in terms of any of the 5 standard bases.
> R := Rationals();
> S := SymmetricFunctionAlgebraSchur(R);
Symmetric Algebra over Rational Field, Schur symmetric functions as basis
> E := SymmetricFunctionAlgebra(R : Basis := "Elementary");
Symmetric Algebra over Rational Field, Elementary symmetric functions as basis
> f1 := S.[2,1];
> f1;
S.[2,1]
>
> f2 := E ! f1;
> f2;
E.[2,1] - E.[3]
> f1 eq f2;
true
>
> P<x,y,z> := PolynomialRing(R, 3);
> P ! f1;
x^2*y + x^2*z + x*y^2 + 2*x*y*z + x*z^2 + y^2*z + y*z^2
> P ! f2;
x^2*y + x^2*z + x*y^2 + 2*x*y*z + x*z^2 + y^2*z + y*z^2

Creation of Symmetric Functions

For each of the 5 different standard basis for symmetric functions, basis elements are indexed via partitions (weakly decreasing positive sequences). The weight of a partition is the sum of its entries, and gives the degree of the element.

For example, [3, 1] is a partition of weight 4, hence a symmetric function basis element corresponding to [3, 1] will be a symmetric polynomial of degree 4.

General symmetric functions are linear combinations of basis elements and can be created by taking such linear combinations or via coercion from either another basis or directly from a polynomial.

A . P : AlgSym, [ RngIntElt ] -> AlgSymElt
Given a partition P, which is a weakly decreasing positive sequence of integers, return the basis element of the algebra of symmetric functions A corresponding to P.
A . i : AlgSym, RngIntElt -> AlgSymElt
Given a positive integer i, return the basis element of the algebra of symmetric functions A corresponding to the partition [i].

Example AlgSym_elt-create (H155E3)

We can create elements via linear combinations of basis elements.
> R := Rationals();
> M := SFAMonomial(R);
> M.[3,1];
M.[3,1]
>  M.4;
M.[4]
> 3 * M.[3,1] - 1/2 * M.4;
3*M.[3,1] - 1/2*M.[4]
A ! f : AlgSym, RngMPolElt -> AlgSymElt
Given a multivariate polynomial f which is symmetric in all of its indeterminates (and hence is a symmetric function), return f as an element of the algebra of symmetric functions A. This element returned will be expressed in terms of the symmetric function basis of A.

Note that polynomials are considered to be identified with their corresponding representations using the monomial symmetric functions, so the above coercion may involve a change of basis from the monomial symmetric functions to the symmetric function basis used by A. This might appear to introduce unexpected "extra" terms (see the second example below).

Example AlgSym_poly bang (H155E4)

Symmetric polynomials are symmetric functions. These can be coerced into algebras of symmetric functions and hence expressed in terms of the relevant basis. Polynomials which are not symmetric cannot be coerced.
> R := Rationals();
> M := SFAMonomial(R);
> P<[x]> := PolynomialRing(R, 3);
> f := -3*x[1]^3 + x[1]^2*x[2] + x[1]^2*x[3] + x[1]*x[2]^2 + x[1]*x[3]^2 -
>          3*x[2]^3 + x[2]^2*x[3] + x[2]*x[3]^2 - 3*x[3]^3;
> M!f;
M.[2,1] - 3*M.[3]
> M ! (x[1] + x[2]*x[3]);
>> M ! (x[1] + x[2]*x[3]);
     ^
Runtime error in '!': Polynomial is not symmetric

Example AlgSym_poly-bang-2 (H155E5)

A symmetric polynomial is identified with its representation using a monomial basis. (This ensures consistency when coercing through multiple algebras.) This may cause apparently redundant terms to appear after a coercion to an algebra using a different basis.
> R := Integers();
> M := SFAMonomial(R);
> S := SFASchur(R);
> P<X, Y> := PolynomialRing(R, 2);
> f := X^2*Y + X*Y^2;
> M!f;
M.[2,1]
> S!f;
 - 2*S.[1,1,1] + S.[2,1]
When we coerce S.[1,1,1] back into our polynomial ring, we see that it evaluates to zero and may seem redundant:
> P!S.[1,1,1];
0
However, when we use a polynomial ring with more variables we can see the important of that term:
> P<X, Y, Z> := PolynomialRing(R, 3);
> P!M.[2,1];
X^2*Y + X^2*Z + X*Y^2 + X*Z^2 + Y^2*Z + Y*Z^2
> P!S.[2,1];
X^2*Y + X^2*Z + X*Y^2 + 2*X*Y*Z + X*Z^2 + Y^2*Z + Y*Z^2
> P!(S.[2,1] - 2*S.[1,1,1]);
X^2*Y + X^2*Z + X*Y^2 + X*Z^2 + Y^2*Z + Y*Z^2
A ! r : AlgSym, RngElt -> AlgSymElt
Create the scalar element r in the symmetric function algebra A.

Example AlgSym_elt-create-scalar (H155E6)

> R := Rationals();
> P := SFAPower(R);
> m := P!3;
> m;
3
> Parent(m);
Symmetric Algebra over Rational Field, Power sum symmetric functions as basis
> m + P.[3,2];
3 + P.[3,2]
A ! m : AlgSym, AlgSymElt -> AlgSymElt
Given a symmetric function algebra A and a symmetric function m (possibly with a different basis), return the element m expressed in terms of the basis of A.

Example AlgSym_elt-create-change_basis (H155E7)

A symmetric function can easily be expressed in terms of any of the symmetric function bases, or as a polynomial.
> R := Rationals();
> S := SFASchur(R);
> H := SFAHomogeneous(R);
> P := SFAPower(R);
> E := SFAElementary(R);
> M := SFAMonomial(R);
>
> m := S.[3,1];
> S!m;
S.[3,1]
> H!m;
H.[3,1] - H.[4]
> P!m;
1/8*P.[1,1,1,1] + 1/4*P.[2,1,1] - 1/8*P.[2,2] - 1/4*P.[4]
> E!m;
E.[2,1,1] - E.[3,1] - E.[2,2] + E.[4]
> M!m;
3*M.[1,1,1,1] + 2*M.[2,1,1] + M.[3,1] + M.[2,2]
>
> PP<[x]> := PolynomialRing(R, 4);
> PP ! m;
x[1]^3*x[2] + x[1]^3*x[3] + x[1]^3*x[4] + x[1]^2*x[2]^2 + 2*x[1]^2*x[2]*x[3] +
    2*x[1]^2*x[2]*x[4] + x[1]^2*x[3]^2 + 2*x[1]^2*x[3]*x[4] + x[1]^2*x[4]^2 +
    x[1]*x[2]^3 + 2*x[1]*x[2]^2*x[3] + 2*x[1]*x[2]^2*x[4] + 2*x[1]*x[2]*x[3]^2 +
    3*x[1]*x[2]*x[3]*x[4] + 2*x[1]*x[2]*x[4]^2 + x[1]*x[3]^3 +
    2*x[1]*x[3]^2*x[4] + 2*x[1]*x[3]*x[4]^2 + x[1]*x[4]^3 + x[2]^3*x[3] +
    x[2]^3*x[4] + x[2]^2*x[3]^2 + 2*x[2]^2*x[3]*x[4] + x[2]^2*x[4]^2 +
    x[2]*x[3]^3 + 2*x[2]*x[3]^2*x[4] + 2*x[2]*x[3]*x[4]^2 + x[2]*x[4]^3 +
    x[3]^3*x[4] + x[3]^2*x[4]^2 + x[3]*x[4]^3

Example AlgSym_change-basis-2 (H155E8)

We show that the k-th homogeneous symmetric function is defined as the sum over all monomial symmetric functions indexed by partitions of weight k.
> R := Rationals();
> M := SFA(R : Basis := "Monomial");
> H := SFA(R : Basis := "Homogeneous");
>
> H ! (M.[1]);
H.[1]
> H ! (M.[2] + M.[1,1]);
H.[2]
> H ! (M.[3] + M.[2,1] + M.[1,1,1]);
H.[3]
> H ! (M.[4] + M.[3,1] + M.[2,2] + M.[2,1,1] + M.[1,1,1,1]);
H.[4]
>
> k := 5;
> H ! &+ [ M.P : P in Partitions(k)];
H.[5]
> k := 10;
> H ! &+ [ M.P : P in Partitions(k)];
H.[10]
V2.28, 13 July 2023