Construction of Invariants of Specified Degree#

Let \(R=K[V]^G\) be the invariant ring of the group \(G\) over the field \(K\). Let \(d \ge 0\) be a fixed integer. The homogeneous invariants in \(R\) of degree \(d\) form a vector space \(R_d\) over \(K\).

There are two ways of explicitly constructing homogeneous invariants in \(R\) of degree \(d\): the Reynolds operator method and the linear algebra method. Both methods are described in detail in [Kemper and Steel, 1997].

The Reynolds operator method only works fro finite groups in the non-modular case. It takes a monomial of degree \(d\) and yields either the zero polynomial or a non-zero invariant of degree \(d\). By applying it to several different monomials, a complete basis of \(R_d\) can be constructed. If \(G\) is a permutation group, a simplified version of the Reynolds operator can always be used which is independent of the field \(K\) (and thus whether we are in the modular case or not).

The linear algebra method works in both the modular and non-modular cases and, with appropriate modifications, also for linear algebraic groups. It simply finds a basis for \(R_d\) in one step – it is not possible to find a single invariant alone by this method.

Magma provides the function InvariantsOfDegree to automatically compute a basis of \(R_d\) by a default appropriate method – the method can also be selected by a parameter. The function InvariantsOfDegree can also be given a positive integer \(k\) which is less than or equal to the dimension of \(R_d\): in such a case, only \(k\) linearly independent invariants are computed. See also the functions MonomialsOfDegree and MonomialsOfWeightedDegree in the Ideal Theory chapter.

ReynoldsOperator(f, G): RngMPolElt, GrpMat -> RngMPolElt#

Given a polynomial \(f\) and a matrix group \(G\) such that \(G\) can act on \(f\), return the application of the Reynolds operator of \(G\) to \(f\). (\(f\) need not be a monomial but may be a non-homogeneous polynomial.)

InvariantsOfDegree(R, d): RngInvar, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, d): GrpMat, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, K, d): GrpPerm, Fld, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, P, d): GrpMat, RngMPol, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, P, d): GrpPerm, RngMPol, RngIntElt -> [ RngMPolElt ]#
Invariants: MonStgElt                    Default: "Both"

Construct a \(K\)-basis of the space \(R_d\) of the homogeneous invariants of degree \(d\) in the invariant ring \(R=K[V]^G\) of the group \(G\) over the field \(K\) as a sequence of polynomials. Either the invariant ring \(R\), the group \(G\) (if a matrix group), or the group \(G\) (if a permutation group) together with the field \(K\) may be passed. A specific polynomial ring \(P\) compatible with \(G\) and \(K\) may be passed so that the returned invariants lie in \(P\). The parameter Invariants may be supplied to select the method of the construction of the invariants: "Reynolds" (use the Reynolds operator), "Linear" (use the linear algebra method), or "Both" (use an appropriate combination of both methods). The default is "Both".

InvariantsOfDegree(R, d, k): RngInvar, RngIntElt, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, d, k): GrpMat, RngIntElt, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, K, d, k): GrpPerm, Fld, RngIntElt, RngIntElt -> [ RngMPolElt ]#
InvariantsOfDegree(G, P, d, k): GrpPerm, RngMPol, RngIntElt, RngIntElt -> [ RngMPolElt ]#
Invariants: MonStgElt                    Default: "Both"

Construct \(k\) linearly independent homogeneous invariants of degree \(d\) in the invariant ring \(R=K[V]^G\) of the group \(G\) over the field \(K\) as a sequence of polynomials, where \(k\) must be greater than or equal to 1 and less than or equal to the dimension of the space \(R_d\). Either the invariant ring \(R\), the group \(G\) (if a matrix group), or the group \(G\) (if a permutation group) together with the field \(K\) may be passed. A specific polynomial ring \(P\) compatible with \(G\) and \(K\) may be passed so that the returned invariants lie in \(P\). The parameter Invariants may be supplied to select the method of the construction of the invariants – see the last function.

Example: Invariants Of Degree (ex-5b0d55)#

We demonstrate elementary uses of ReynoldsOperator and InvariantsOfDegree.

> K<z> := CyclotomicField(5);
> w := -z^3 - z^2;
> G := MatrixGroup<3,K |
>    [1,0,-w, 0,0,-1, 0,1,-w],
>    [-1,-1,w, -w,0,w, -w,0,1]>;
> P<x1,x2,x3> := PolynomialRing(K, 3);
> time ReynoldsOperator(x1^4, G);
(-z^3 - z^2 + 1)*x1^4 + (12/5*z^3 + 12/5*z^2 -
    4/5)*x1^3*x2 + (12/5*z^3 + 12/5*z^2 - 4/5)*x1^3*x3
    + (-14/5*z^3 - 14/5*z^2 + 14/5)*x1^2*x2^2 +
    (4/5*z^3 + 4/5*z^2 + 4/5)*x1^2*x2*x3 + (-14/5*z^3 -
    14/5*z^2 + 14/5)*x1^2*x3^2 + (12/5*z^3 + 12/5*z^2 -
    4/5)*x1*x2^3 + (4/5*z^3 + 4/5*z^2 + 4/5)*x1*x2^2*x3
    + (4/5*z^3 + 4/5*z^2 + 4/5)*x1*x2*x3^2 + (12/5*z^3
    + 12/5*z^2 - 4/5)*x1*x3^3 + (-z^3 - z^2 + 1)*x2^4 +
    (12/5*z^3 + 12/5*z^2 - 4/5)*x2^3*x3 + (-14/5*z^3 -
    14/5*z^2 + 14/5)*x2^2*x3^2 + (12/5*z^3 + 12/5*z^2 -
    4/5)*x2*x3^3 + (-z^3 - z^2 + 1)*x3^4
Time: 0.090
> time I20_1 := InvariantsOfDegree(G, 20, 1);
0.259
> time I20 := InvariantsOfDegree(G, 20);
3.589
> [LeadingMonomial(f): f in I20];
[
    x1^20,
    x1^18*x2^2,
    x1^16*x2^4,
    x1^15*x2^5,
    x1^14*x2^6,
    x1^13*x2^7,
    x1^12*x2^8
]
> G := CyclicGroup(4);
> K := GF(2);
> InvariantsOfDegree(G, K, 4);
[
    x1^4 + x2^4 + x3^4 + x4^4,
    x1^3*x2 + x1*x4^3 + x2^3*x3 + x3^3*x4,
    x1^3*x3 + x1*x3^3 + x2^3*x4 + x2*x4^3,
    x1^3*x4 + x1*x2^3 + x2*x3^3 + x3*x4^3,
    x1^2*x2^2 + x1^2*x4^2 + x2^2*x3^2 + x3^2*x4^2,
    x1^2*x2*x3 + x1*x2*x4^2 + x1*x3^2*x4 + x2^2*x3*x4,
    x1^2*x2*x4 + x1*x2^2*x3 + x1*x3*x4^2 + x2*x3^2*x4,
    x1^2*x3^2 + x2^2*x4^2,
    x1^2*x3*x4 + x1*x2^2*x4 + x1*x2*x3^2 + x2*x3*x4^2,
    x1*x2*x3*x4
]

Run in calculator

SetAllInvariantsOfDegree(R, d, Q): RngInvar, RngIntElt, [ RngMPolElt ]#

(Procedure.) Given an invariant ring \(R=K[V]^G\), an integer \(d\geq 0\), and a sequence \(Q\) consisting of \(k\) degree-\(d\) homogeneous invariants of \(G\), set the internal list of all linearly-independent homogeneous invariants of degree \(d\) of \(R\) to be \(Q\). Thus the elements of \(Q\) must describe a basis of the space of all homogeneous invariants of degree \(d\) of \(R\). If the Hilbert Series of \(R\) is known, it will be used to check that the length of \(Q\) (the dimension of the basis) is correct.

Example: Invariants Of Degree (ex-dd87c1)#

We demonstrate a simple use of SetAllInvariantsOfDegree.

> R := InvariantRing(CyclicGroup(4), GF(2));
> P<x1,x2,x3,x4> := PolynomialRing(R);
> L := [
>     x1^2 + x2^2 + x3^2 + x4^2,
>     x1*x2 + x1*x4 + x2*x3 + x3*x4,
>     x1*x3 + x2*x4
> ];
> SetAllInvariantsOfDegree(R, 2, L);
> InvariantsOfDegree(R, 2);
[
    x1^2 + x2^2 + x3^2 + x4^2,
    x1*x2 + x1*x4 + x2*x3 + x3*x4,
    x1*x3 + x2*x4
]
> PrimaryInvariants(R);
[
    x1 + x2 + x3 + x4,
    x1*x2 + x1*x4 + x2*x3 + x3*x4,
    x1*x3 + x2*x4,
    x1*x2*x3*x4
]

Run in calculator

The following sections Construction of \(G\)-modules through Properties of Invariant Rings all deal with invariant rings of finite groups.