# 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](algebraic.md#rnginvar-algebraic)). 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`

```magma
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`

```magma
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`

```magma
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$.

```magma
> 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 $I_3\otimes A$:

```magma
> 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.

```magma
> 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 $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.

```magma
> 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: 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:

```magma
> 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: 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.

```magma
> 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: 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.

```magma
> 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
%]

```
