Let R=K[V]G be the invariant ring of the group G over the field K. Let d ≥0 be a fixed integer. The homogeneous invariants in R of degree d form a vector space Rd 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 [KS97].
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 Rd 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 Rd 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 Rd 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 Rd: in such a case, only k linearly independent invariants are computed. See also the functions MonomialsOfDegree and MonomialsOfWeightedDegree in the Ideal Theory chapter.
The following sections Construction of G-modules through Properties of Invariant Rings all deal with invariant rings of finite groups.
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.)
Invariants: MonStgElt Default: "Both"
Construct a K-basis of the space Rd 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".
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 Rd. 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.
> 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 ]
(Procedure.) Given an invariant ring R=K[V]G, an integer d≥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.
> 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 ]