Invariant Rings of Linear Algebraic Groups

By definition, a linear algebraic group is an affine variety G together with morphisms giving G the structure of a group. In the invariant theory algorithms of Magma, the group structure of G is nowhere required. Therefore an algebraic group will be defined by simply giving polynomials defining G as an affine variety. A G-module of an algebraic group is a finite dimensional vector space Kn together with a morphism G to GLn of algebraic groups. In Magma, such a morphism is given by specifying an n by n matrix whose entries are polynomials in the same variables as the polynomials specifying G (for more details, see section Algebraic Group Actions on Polynomials). An invariant ring of a linear algebraic group is constructed by giving a linear algebraic group together with a G-module. Magma makes no checks that the variety defined by the user has a multiplication making it into an algebraic group, or that the morphism G to GLn(K) really provides an action of G. If they do not, the computations will have unpredictable results. Likewise, Magma is unable to decide whether an algebraic group is reductive or linearly reductive. Therefore the user should indicate whether a group has these properties at creation by the options described below. This is important because Derksen's algorithm only works for linearly reductive groups.

Contents

Creation

InvariantRing(I, A) : RngMPol, Mtrx -> RngInvar
    Reductive: BoolElt                  Default: false
    LinearlyReductive: BoolElt          Default: false
    PolynomialRing: RngMPol             Default: 
Construct the invariant ring R for the algebraic group G defined by the ideal I and representation matrix A.

If the parameter Reductive is set to {true}, then G is assumed to be reductive, while if the parameter LinearlyReductive is set to {true}, then G is assumed to be linearly reductive.

If the parameter PolynomialRing is set to a value P, then P is used as the polynomial ring in which the invariants of R will lie.

BinaryForms(N, p) : [RngIntElt], RngIntElt -> RngMPol, [[RngMPolElt]], RngMPol
BinaryForms(n, p) : RngIntElt, RngIntElt -> RngMPol, [[RngMPolElt]], RngMPol
Let N = [n1, ..., nk] be a sequence of positive integers and let p be a positive prime or zero. Let G = SL2(K) with K an algebraically closed field of characteristic p. This function defines the action on a direct sum of spaces of binary forms with degrees given by the ni. The function returns three items: the ideal IG defining G as an algebraic group, the representation matrix A (as a sequence of sequences of polynomials), and a polynomial ring on which G acts with appropriate naming of variables.

The second version of the function is given an integer n, and takes N to be [n].

Access

GroupIdeal(R) : RngInvar -> RngMPol
Given an invariant ring R defined over an algebraic group G, return the ideal I defining G.
Representation(R) : RngInvar -> Mtrx
Given an invariant ring R defined over an algebraic group G, return the representation matrix A for G.

Functions

InvariantsOfDegree(R, d) : RngInvar, RngIntElt -> [ RngMPolElt ]
Return a K-basis of the space Rd of the homogeneous invariants of degree d in the invariant ring R=K[V]G of the algebraic group G over the field K as a sequence of polynomials.
FundamentalInvariants(R) : RngInvar -> RngMPol
    Optimize: BoolElt                   Default: true
    Minimize: BoolElt                   Default: true
    MinimizeHilbert: BoolElt            Default: true
    Force: BoolElt                      Default: false
Given an invariant ring R defined over an algebraic group, return a sequence of fundamental invariants of R, using Derksen's algorithm.

By default, the computation of homogeneous invariants is optimized by extending at each the degree the basis obtained from multiplying lower-degree invariants by appropriate monomials. This method can be suppressed by setting Optimize to false. By default the generators will be minimal. By setting the parameter Minimize to {false}, no minimization will be attempted. By setting the parameter MinimizeHilbert to {false}, the basis of the Hilbert ideal will not be minimized.

By default the group must be linearly reductive. Setting the parameter Force to true will force the application of Derksen's algorithm even though the group may not be linearly reductive.

DerksenIdeal(R) : RngInvar -> [RngMPolElt]
Given an invariant ring R defined over an algebraic group, return a sequence of generators of the Derksen ideal of R. The Derksen ideal is an ideal D of P[y1, ..., yn], where P = K[x1 , ..., xn] is the ambient polynomial ring of R, and the yi are new indeterminates. By definition, D is the intersection of all the ideals < y1 - g(x1), ..., yn - g(xn) > for all g ∈G, the group of R. Geometrically, D is the vanishing ideal of the subset {(x, g(x)) |x ∈Kn, g ∈G} of the cartesian product Kn x Kn.
HilbertIdeal(R) : RngInvar -> RngMPol
    Minimize: BoolElt                   Default: true
    Force: BoolElt                      Default: false
Given an invariant ring R defined over a linear algebraic group, return the Hilbert ideal of R. This is the ideal in the polynomial ring generated by all non-constant, homogeneous invariants. The result is a sequence of homogeneous generators (not necessarily invariant).

By default the generators will be minimal. By setting the parameter Minimize to {false}, no minimization will be attempted. Also, setting the parameter Force to true will force the application of Derksen's algorithm even though the group may not be linearly reductive.

Example RngInvar_SL2-invar (H117E18)

We consider invariant ring of the group G = SL2(Q), which is is characterised by the equation det(A)=1.
> Q := RationalField();
> P<[a]>:=PolynomialRing(Q, 4);
> A := MatrixRing(P,2)!a;
> IG := ideal<P | Determinant(A) - 1>;
> IG;
Ideal of Polynomial ring of rank 4 over Rational Field
Lexicographical Order
Variables: a[1], a[2], a[3], a[4]
Basis:
[
    a[1]*a[4] - a[2]*a[3] - 1
]
The simultaneous action of G on three vectors is given by the matrix I3 tensor A:
> T := TensorProduct(MatrixRing(P, 3) ! 1, A);
> T;
[a[1] a[2]    0    0    0    0]
[a[3] a[4]    0    0    0    0]
[   0    0 a[1] a[2]    0    0]
[   0    0 a[3] a[4]    0    0]
[   0    0    0    0 a[1] a[2]]
[   0    0    0    0 a[3] a[4]]
We create the invariant ring R of G (which is reductive) with this action and compute fundamental invariants.
> IR := InvariantRing(IG, T: Reductive);
> FundamentalInvariants(IR);
[
    x3*x6 - x4*x5,
    x1*x6 - x2*x5,
    x1*x4 - x2*x3
]
We see that there are three fundamental invariants. It is well known that the invariant ring of the simultaneous action of SLn on m vectors is generated by the minors of the n x m matrix formed by the vectors. We can see this in the present case.
> R<x1,x2,x3,x4,x5,x6> := PolynomialRing(Q, 6);
> M := Matrix([[x1,x3,x5], [x2,x4,x6]]);
> M;
[x1 x3 x5]
[x2 x4 x6]
> Minors(M, 2);
[
    x1*x4 - x2*x3,
    -x1*x6 + x2*x5,
    x3*x6 - x4*x5
]

Example RngInvar_SL2-tensor (H117E19)

As a second example, we consider the representation of the group SL2(Q) x SL2(Q) x SL2(Q) given by the tensor product of the canonical representation:
> n:=3;
> P<[x]>:=PolynomialRing(RationalField(), n*4, "grevlex");
> L_A := [MatrixRing(P,2)!x[i..i+3]:i in [1..n*4 by 4]];
> IG := ideal<P|[Determinant(A)-1:A in L_A]>;
> IG;
Ideal of Polynomial ring of rank 12 over Rational Field
Graded Reverse Lexicographical Order
Variables: x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8],
x[9], x[10], x[11], x[12]
Basis:
[
    -x[2]*x[3] + x[1]*x[4] - 1,
    -x[6]*x[7] + x[5]*x[8] - 1,
    -x[10]*x[11] + x[9]*x[12] - 1
]
>
> M:=L_A[1];
> for i:=2 to n do
>     M:=TensorProduct(M,L_A[i]);
> end for;
> M;
[x[1]*x[5]*x[9]   x[1]*x[5]*x[10]   x[1]*x[6]*x[9]   x[1]*x[6]*x[10]
    x[2]*x[5]*x[9]   x[2]*x[5]*x[10]   x[2]*x[6]*x[9]   x[2]*x[6]*x[10]]
[x[1]*x[5]*x[11]   x[1]*x[5]*x[12]   x[1]*x[6]*x[11]   x[1]*x[6]*x[12]
    x[2]*x[5]*x[11]   x[2]*x[5]*x[12]   x[2]*x[6]*x[11]   x[2]*x[6]*x[12]]
[x[1]*x[7]*x[9]   x[1]*x[7]*x[10]   x[1]*x[8]*x[9]   x[1]*x[8]*x[10]
    x[2]*x[7]*x[9]   x[2]*x[7]*x[10]   x[2]*x[8]*x[9]   x[2]*x[8]*x[10]]
[x[1]*x[7]*x[11]   x[1]*x[7]*x[12]   x[1]*x[8]*x[11]   x[1]*x[8]*x[12]
    x[2]*x[7]*x[11]   x[2]*x[7]*x[12]   x[2]*x[8]*x[11]   x[2]*x[8]*x[12]]
[x[3]*x[5]*x[9]   x[3]*x[5]*x[10]   x[3]*x[6]*x[9]   x[3]*x[6]*x[10]
    x[4]*x[5]*x[9]   x[4]*x[5]*x[10]   x[4]*x[6]*x[9]   x[4]*x[6]*x[10]]
[x[3]*x[5]*x[11]   x[3]*x[5]*x[12]   x[3]*x[6]*x[11]   x[3]*x[6]*x[12]
    x[4]*x[5]*x[11]   x[4]*x[5]*x[12]   x[4]*x[6]*x[11]   x[4]*x[6]*x[12]]
[x[3]*x[7]*x[9]   x[3]*x[7]*x[10]   x[3]*x[8]*x[9]   x[3]*x[8]*x[10]
    x[4]*x[7]*x[9]   x[4]*x[7]*x[10]   x[4]*x[8]*x[9]   x[4]*x[8]*x[10]]
[x[3]*x[7]*x[11]   x[3]*x[7]*x[12]   x[3]*x[8]*x[11]   x[3]*x[8]*x[12]
    x[4]*x[7]*x[11]   x[4]*x[7]*x[12]   x[4]*x[8]*x[11]   x[4]*x[8]*x[12]]
> IR:=InvariantRing(IG, M: Reductive);
> time FundamentalInvariants(IR);
[
    x1^2*x8^2 - 2*x1*x2*x7*x8 - 2*x1*x3*x6*x8 - 2*x1*x4*x5*x8 +
        4*x1*x4*x6*x7 + x2^2*x7^2 + 4*x2*x3*x5*x8 - 2*x2*x3*x6*x7 -
        2*x2*x4*x5*x7 + x3^2*x6^2 - 2*x3*x4*x5*x6 + x4^2*x5^2
]
Time: 0.610
> time DerksenIdeal(IR);
[
    y1^2*y8^2 - 2*y1*y2*y7*y8 - 2*y1*y3*y6*y8 - 2*y1*y4*y5*y8 + 4*y1*y4*y6*y7 +
        y2^2*y7^2 + 4*y2*y3*y5*y8 - 2*y2*y3*y6*y7 - 2*y2*y4*y5*y7 + y3^2*y6^2 -
        2*y3*y4*y5*y6 + y4^2*y5^2 - x1^2*x8^2 + 2*x1*x2*x7*x8 + 2*x1*x3*x6*x8 +
        2*x1*x4*x5*x8 - 4*x1*x4*x6*x7 - x2^2*x7^2 - 4*x2*x3*x5*x8 +
        2*x2*x3*x6*x7 + 2*x2*x4*x5*x7 - x3^2*x6^2 + 2*x3*x4*x5*x6 - x4^2*x5^2
]
Time: 0.010
> time HilbertIdeal(IR);
[
    x1^2*x8^2 - 2*x1*x2*x7*x8 - 2*x1*x3*x6*x8 - 2*x1*x4*x5*x8 + 4*x1*x4*x6*x7 +
        x2^2*x7^2 + 4*x2*x3*x5*x8 - 2*x2*x3*x6*x7 - 2*x2*x4*x5*x7 + x3^2*x6^2 -
        2*x3*x4*x5*x6 + x4^2*x5^2
]
Time: 0.000
So in this case, we find that the invariant ring is generated by a single polynomial.

Example RngInvar_AlgGroup1 (H117E20)

We compute fundamental invariants for the invariant ring of G = SL2(Q) acting on a space of binary forms.
> IG, A := BinaryForms([1,1,2,2], 0);
> IG;
Ideal of Polynomial ring of rank 4 over Rational Field
Lexicographical Order
Variables: t1, t2, t3, t4
Basis:
[
    t1*t4 - t2*t3 - 1
]
> A;
[t4   -t3   0   0   0   0   0   0   0   0]
[-t2   t1   0   0   0   0   0   0   0   0]
[0   0   t4   -t3   0   0   0   0   0   0]
[0   0   -t2   t1   0   0   0   0   0   0]
[0   0   0   0   t4^2   -t3*t4   t3^2   0   0   0]
[0   0   0   0   -2*t2*t4   t1*t4 + t2*t3   -2*t1*t3   0   0   0]
[0   0   0   0   t2^2   -t1*t2   t1^2   0   0   0]
[0   0   0   0   0   0   0   t4^2   -t3*t4   t3^2]
[0   0   0   0   0   0   0   -2*t2*t4   t1*t4 + t2*t3   -2*t1*t3]
[0   0   0   0   0   0   0   t2^2   -t1*t2   t1^2]
> R:=InvariantRing(IG,A: LinearlyReductive);
> time FundamentalInvariants(R);
[
    x8*x10 - 1/4*x9^2,
    x5*x10 - 1/2*x6*x9 + x7*x8,
    x5*x7 - 1/4*x6^2,
    x1*x4 - x2*x3,
    x1*x3*x7 - 1/2*x1*x4*x6 - 1/2*x2*x3*x6 + x2*x4*x5,
    x1*x3*x10 - 1/2*x1*x4*x9 - 1/2*x2*x3*x9 + x2*x4*x8,
    x3^2*x10 - x3*x4*x9 + x4^2*x8,
    x3^2*x7 - x3*x4*x6 + x4^2*x5,
    x1^2*x10 - x1*x2*x9 + x2^2*x8,
    x1^2*x7 - x1*x2*x6 + x2^2*x5,
    x1*x2*x5*x10 - x1*x2*x7*x8 - x2^2*x5*x9 + x2^2*x6*x8,
    x1*x4*x5*x10 - 1/2*x1*x4*x6*x9 + x1*x4*x7*x8 - 1/2*x2*x3*x5*x10 +
        1/2*x2*x3*x6*x9 - 3/2*x2*x3*x7*x8 - 1/2*x2*x4*x5*x9 + 1/2*x2*x4*x6*x8,
    x3*x4*x5*x10 - x3*x4*x7*x8 - x4^2*x5*x9 + x4^2*x6*x8
]
Time: 0.650

Example RngInvar_AlgGroup2 (H117E21)

We do simple computations on an invariant ring of an algebraic group. The group is not reductive, so fundamental invariants cannot be computed, but invariants of specific degrees can be.
> K := RationalField();
> Pa<a,b> := PolynomialRing(K, 2);
> IG := ideal<Pa|>;
> A := Matrix(7,
> [1, 0, 0, 0, 0, 0, 0, a, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
> 0, 0, 0, 0, a, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
> a, 1, 0, 0, 0, 0, 0, b, 0, 1 ]);
> A;
[1 0 0 0 0 0 0]
[a 1 0 0 0 0 0]
[0 0 1 0 0 0 0]
[0 0 a 1 0 0 0]
[0 0 0 0 1 0 0]
[0 0 0 0 a 1 0]
[0 0 0 0 b 0 1]
> R:=InvariantRing(IG, A);
> R;
Invariant Ring of algebraic group
Field of definition:
    Rational Field
> InvariantsOfDegree(R, 1);
[
    x1,
    x3,
    x5
]
> InvariantsOfDegree(R, 2);
[
    x1^2,
    x1*x3,
    x1*x4 - x2*x3,
    x1*x5,
    x1*x6 - x2*x5,
    x3^2,
    x3*x5,
    x3*x6 - x4*x5,
    x5^2
]
> FundamentalInvariants(R);
>> FundamentalInvariants(R);
                        ^
Runtime error in 'FundamentalInvariants': Computing fundamental invariants (via
Derksen's algorithm) is only possible for linearly reductive groups
V2.28, 13 July 2023