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
]