Secondary Invariants

Let R=K[V]G be the invariant ring of a finite group G over the field K and suppose the degree of G is n. If { f1, ..., fn } is a set of primary invariants for R then R can be viewed as a finitely generated module over the algebra A=K[f1, ..., fn]. A set of secondary invariants for R with respect to these primary invariants is set of module generators over A. The invocation SecondaryInvariants(R) allows automatic construction of secondary invariants of R. The secondary invariants are stored in R and recalled as necessary in subsequent computations. Different algorithms are needed for the modular and non-modular cases -- see [KS97] for details.

SecondaryInvariants(R) : RngInvar -> [ RngMPolElt ]
Construct secondary invariants for the invariant ring R=K[V]G (with respect to the current primary invariants of R, constructed automatically first if necessary) as a sorted sequence (with increasing degrees) of polynomials of R. The secondary invariants are minimal; i.e. they are a minimal generating set for R considered as a module over the algebra generated by the primary invariants.
SecondaryInvariants(R, H) : RngInvar, Grp -> [ RngMPolElt ]
Construct secondary invariants for the modular invariant ring R=K[V]G (with respect to the current primary invariants of R), using the subgroup H. This function can only be used if R is a modular invariant ring. H must be a subgroup of the group G; first, secondary invariants are computed for K[V]H using the current primary invariants for G and then these secondary invariants are used in the manner described in [KS97]. The function SecondaryInvariants(R) (taking just the invariant ring R) follows a default strategy in which it tries to use this function with the best subgroup H appropriate. Thus usually using this function to specify a particular subgroup is not more helpful than the one-argument function but occasionally it may be.
IrreducibleSecondaryInvariants(R) : RngInvar -> [ RngMPolElt ]
Return the irreducible secondary invariants of the invariant ring R=K[V]G (with respect to the current primary invariants of R, constructed automatically first if necessary) as a sequence of polynomials of R. These, together with the primary invariants of R, generate R as an algebra over K. In the modular case, these will be the same as the secondary invariants of R (excluding the polynomial 1) but in the non-modular case they may form a proper subsequence of the secondary invariants. Note that the expression of the secondary invariants in terms of the irreducible secondary invariants is given as the second return value of the function Algebra (see the section on the algebra of an invariant ring and algebraic relations below).

Example RngInvar_SecondaryInvariants (H117E7)

We construct primary and then secondary invariants for the invariant ring R of the group G over GF(2), where G is the (permutation) cyclic group of order 4. Note that in this example Noether's degree bound (which holds for characteristic 0) is violated.
> K := GF(2);
> G := CyclicGroup(4);
> R := InvariantRing(G, K);
> time PrimaryInvariants(R);
[
    x1 + x2 + x3 + x4,
    x1*x2 + x1*x4 + x2*x3 + x3*x4,
    x1*x3 + x2*x4,
    x1*x2*x3*x4
]
Time: 0.040
> time SecondaryInvariants(R);
[
    1,
    x1*x2*x3 + x1*x2*x4 + x1*x3*x4 + x2*x3*x4,
    x1^2*x3 + x1^2*x4 + x1*x2^2 + x1*x3^2 + x2^2*x4 +
        x2*x3^2 + x2*x4^2 + x3*x4^2,
    x1^2*x3^2 + x1^2*x3*x4 + x1*x2^2*x4 + x1*x2*x3^2 +
        x2^2*x4^2 + x2*x3*x4^2,
    x1^3*x3*x4 + x1^2*x2^2*x3 + x1^2*x2^2*x4 +
        x1^2*x2*x3^2 + x1^2*x2*x3*x4 + x1^2*x2*x4^2 +
        x1^2*x3^2*x4 + x1^2*x3*x4^2 + x1*x2^3*x4 +
        x1*x2^2*x3^2 + x1*x2^2*x3*x4 + x1*x2^2*x4^2 +
        x1*x2*x3^3 + x1*x2*x3^2*x4 + x1*x2*x3*x4^2 +
        x1*x3^2*x4^2 + x2^2*x3^2*x4 + x2^2*x3*x4^2 +
        x2*x3^2*x4^2 + x2*x3*x4^3
]
Time: 0.080
V2.28, 13 July 2023