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 \(K^n\) together with a morphism \(G \to\) GL\(_n\) 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\) GL\(_n(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.

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 = [n_1, \ldots, n_k]\) be a sequence of positive integers and let \(p\) be a positive prime or zero. Let \(G = {\operatorname{SL}}_{2}(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 \(n_i\). The function returns three items: the ideal \(I_G\) 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 \(R_d\) 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[y_1, \ldots, y_n]\), where \(P = K[x_1 , \ldots,x_n]\) is the ambient polynomial ring of \(R\), and the \(y_i\) are new indeterminates. By definition, \(D\) is the intersection of all the ideals \(\langle y_1 - g(x_1),\ldots,y_n - g(x_n)\rangle\) for all \(g \in G\), the group of \(R\). Geometrically, \(D\) is the vanishing ideal of the subset

\[\{(x,g(x)) \vert x \in K^n, g \in G\}\]

of the cartesian product \(K^n \times K^n\).

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: SL2 Invar (ex-ff4ed2)#

We consider invariant ring of the group \(G = SL_2({\mathbb{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
]

Run in calculator

The simultaneous action of \(G\) on three vectors is given by the matrix \(I_3\otimes 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]]

Run in calculator

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
]

Run in calculator

We see that there are three fundamental invariants. It is well known that the invariant ring of the simultaneous action of \(SL_n\) on \(m\) vectors is generated by the minors of the \(n\times 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
]

Run in calculator

Example: SL2 Tensor (ex-893b15)#

As a second example, we consider the representation of the group \(SL_2({\mathbb{Q}})\times SL_2({\mathbb{Q}})\times SL_2({\mathbb{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

Run in calculator

So in this case, we find that the invariant ring is generated by a single polynomial.

Example: Alg Group1 (ex-06a17f)#

We compute fundamental invariants for the invariant ring of \(G = {\operatorname{SL}}_{2}({\mathbb{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

Run in calculator

Example: Alg Group2 (ex-9a36c2)#

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
%> DerksenIdeal(R);
%[
%    y1*y4 - x4*y1 - y2*y3 + x2*y3,
%    y1*y6 - x6*y1 - y2*y5 + x2*y5,
%    y3*y6 - x6*y3 - y4*y5 + x4*y5,
%    y1 - x1,
%    y3 - x3,
%    y5 - x5
%]

Run in calculator