# The Algebra of an Invariant Ring and Algebraic Relations

Let $R=K[V]^G$ be the invariant ring of a finite group $G$ over the field $K$ and suppose the degree of $G$ is $n$. Suppose also that primary invariants $\{ f_1, \ldots, f_n \}$ for $R$ have been constructed, together with minimal secondary invariants $S = \{ g_1, \ldots, g_m \}$ for $R$ with respect to these primary invariants. Suppose also that the irreducible secondary invariants for R are $S = \{ h_1, \ldots, h_r \}$ so that the $g_i$ are power products of the $h_i$. We write $g_i=p_i(h_i)$ where the $p_i$ are monomials of the indeterminates $t_1,\ldots,t_r$. Then $R$ is generated as an algebra over $K$ by the primary invariants $f_1, \ldots, f_n$ and the irreducible secondary invariants $h_1, \ldots, h_r$. Magma allows the construction of a polynomial algebra $A$ with indeterminate names `"f1"`, `"f2"`, etc. corresponding to the primary invariants and indeterminate names `"h1"`, `"h2"`, etc. corresponding to the irreducible secondary invariants. Thus $R$ can be regarded as an homomorphic image of $A$ and finding the algebraic relations between these (algebra) generators of $R$ yields a presentation of $R$ as a quotient of a polynomial algebra. The functions in this section construct the algebra $A$ and the algebraic relations for $R$. When creating the algebra $A$, the algebra $A$ is assigned the print names `"f1", "f2", "h1", "h2"`, etc. – the angle bracket notation or the $.$ operator should be used to assign the variables of $A$ to actual Magma variables.

## `Algebra(R): RngInvar -> RngMPol, [ RngMPolElt ]`

Given an invariant ring $R=K[V]^G$, return the polynomial algebra $A=K[f_1,\ldots,f_n,h_1,\ldots,h_r]$ of which $R$ is an homomorphic image. This function also returns a sequence $Q$ giving the secondary invariants in terms of the irreducible secondary invariants as monomials in $A$. Thus $Q[i]$ is the monomial $p_i(t_i)$ mentioned in the introduction to this section. Note that the secondary invariant $1$ is *not* an irreducible secondary invariant so no $h$-variable corresponds to it (the polynomial $1$ in $A$ simply corresponds to it).

## `Relations(R): RngInvar -> [ RngMPolElt ]`

Given an invariant ring $R=K[V]^G$, return a (sorted) sequence $L$ giving the algebraic relations amongst the algebra generators of $R$ as elements of the algebra $A$ corresponding to $R$. Thus $R$ is isomorphic as an algebra (or ring) to the quotient of $A$ by the ideal of $A$ generated by the relations in $L$.

## `RelationIdeal(R): RngInvar -> RngMPol`

Given an invariant ring $R=K[V]^G$, return the ideal of algebraic relations corresponding to $R$. This is simply the same as taking the ideal generated by the algebra $A$ by the sequence $L$ returned by the function `Relations(R)`.

## `PrimaryAlgebra(R): RngInvar -> RngMPol`

Given an invariant ring $R=K[V]^G$, return the algebra corresponding to the primary invariants of $R$ as a graded polynomial ring (with the weights corresponding to the degrees of the primary invariants).

## `PrimaryIdeal(R): RngInvar -> RngMPol`

Given an invariant ring $R=K[V]^G$, return the ideal generated by the primary invariants of $R$ (this is stored in $R$).

## `Example: Relations (ex-899101)`

We create the invariant ring $R=K[V]^G$ where $G$ is a degree-6 permutation representation of the direct product $C_3 \times C_3$ of two cyclic groups both of order 3 and $K$ is the rational field. We construct the algebra $A$ and the sequence $Q$ giving the secondary invariants in terms of the irreducible secondary invariants. We then note that the degree-6 secondary invariant is obtained as the product of two degree-3 irreducible secondary invariants. We then construct the list $L$ of algebraic relations in $A$ for $R$. Thus $R$ is isomorphic to the quotient ring $A/<L>$. We then construct an homomorphism $h$ from $A$ onto $R$ and check that the relations in $L$ are correct. Finally, we check that the Hilbert series of the (quotient by the) ideal of $A$ generated by $L$ is the same as the Hilbert series of $R$ as expected.

```magma
> G := PermutationGroup<6 | (1, 2, 3), (4, 5, 6)>;
> R := InvariantRing(G, RationalField());
> P := PrimaryInvariants(R);
> P;
[
    x1 + x2 + x3,
    x4 + x5 + x6,
    x1^2 + x2^2 + x3^2,
    x4^2 + x5^2 + x6^2,
    x1^3 + x2^3 + x3^3,
    x4^3 + x5^3 + x6^3
]
> S := SecondaryInvariants(R);
> S;
[
    1,
    x1^2*x2 + x1*x3^2 + x2^2*x3,
    x4^2*x5 + x4*x6^2 + x5^2*x6,
    x1^2*x2*x4^2*x5 + x1^2*x2*x4*x6^2 + x1^2*x2*x5^2*x6 +
        x1*x3^2*x4^2*x5 + x1*x3^2*x4*x6^2 + x1*x3^2*x5^2*x6 +
        x2^2*x3*x4^2*x5 + x2^2*x3*x4*x6^2 + x2^2*x3*x5^2*x6
]
> H := IrreducibleSecondaryInvariants(R);
> H;
[
    x1^2*x2 + x1*x3^2 + x2^2*x3,
    x4^2*x5 + x4*x6^2 + x5^2*x6
]
> A, Q := Algebra(R);
> A;
Graded Polynomial ring of rank 8 over Rational Field
Lexicographical Order
Variables: f1, f2, f3, f4, f5, f6, h1, h2
Variable weights: 1 1 2 2 3 3 3 3
> Q;
[
    1,
    h1,
    h2,
    h1*h2
]
> // Thus S[4] must be H[1]*H[2]:
> S[4];
x1^2*x2*x4^2*x5 + x1^2*x2*x4*x6^2 + x1^2*x2*x5^2*x6 +
    x1*x3^2*x4^2*x5 + x1*x3^2*x4*x6^2 + x1*x3^2*x5^2*x6 +
    x2^2*x3*x4^2*x5 + x2^2*x3*x4*x6^2 + x2^2*x3*x5^2*x6
> H[1];
x1^2*x2 + x1*x3^2 + x2^2*x3
> H[2];
x4^2*x5 + x4*x6^2 + x5^2*x6
> H[1]*H[2] eq S[4];
true
> L := Relations(R);
> L;
[
    -1/24*f1^6 + 3/8*f1^4*f3 - 1/3*f1^3*f5 - 9/8*f1^2*f3^2 +
        2*f1*f3*f5 + f1*f3*h1 + 1/8*f3^3 - f5^2 - f5*h1 - h1^2,
    -1/24*f2^6 + 3/8*f2^4*f4 - 1/3*f2^3*f6 - 9/8*f2^2*f4^2 +
        2*f2*f4*f6 + f2*f4*h2 + 1/8*f4^3 - f6^2 - f6*h2 - h2^2
]
> // Construct homomorphism h from A onto (polynomial ring of) R:
> h := hom<A -> PolynomialRing(R) | P cat H>;
> // Check images of L under h are zero so that elements of L are relations:
> h(L);
[
    0,
    0
]
> // Create relation ideal and check its Hilbert series equals that of R:
> I := RelationIdeal(R);
> I;
Ideal of Graded Polynomial ring of rank 8 over Rational Field
Lexicographical Order
Variables: f1, f2, f3, f4, f5, f6, h1, h2
Variable weights: 1 1 2 2 3 3 3 3
Basis:
[
    f1^6 - 9*f1^4*f3 + 8*f1^3*f5 + 27*f1^2*f3^2 - 48*f1*f3*f5 -
        24*f1*f3*h1 - 3*f3^3 + 24*f5^2 + 24*f5*h1 + 24*h1^2,
    f2^6 - 9*f2^4*f4 + 8*f2^3*f6 + 27*f2^2*f4^2 - 48*f2*f4*f6 -
        24*f2*f4*h2 - 3*f4^3 + 24*f6^2 + 24*f6*h2 + 24*h2^2
]
> HilbertSeries(I);
(t^4 - 2*t^3 + 3*t^2 - 2*t + 1)/(t^10 - 4*t^9 + 6*t^8 - 6*t^7 +
    9*t^6 - 12*t^5 + 9*t^4 - 6*t^3 + 6*t^2 - 4*t + 1)
> HilbertSeries(I) eq HilbertSeries(R);
true

```
