Let R=K[V]^G be the invariant ring of the group G over the field K and
suppose the degree of G is n. If
{ f_1, ..., f_n } is a set of primary invariants for R then
R can be viewed as a finitely generated module over the algebra
A=K[f_1, ..., f_n].
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 the Magma Invariant Theory paper 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.
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 the Magma Invariant Theory paper. 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.
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).
> 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