# invariants(DiagonalAction) -- computes the generating invariants of a group action

## Synopsis

• Function: invariants
• Usage:
invariants D
• Inputs:
• D, an instance of the type DiagonalAction, a diagonal action on a polynomial ring
• Optional inputs:
• Strategy (missing documentation) => ..., default value UseNormaliz, the strategy used to compute diagonal invariants, options are UsePolyhedra or UseNormaliz.
• DegreeBound => ..., default value infinity, degree bound for invariants of finite groups
• DegreeLimit => ..., default value {}, GB option for invariants
• SubringLimit => ..., default value infinity, GB option for invariants
• UseCoefficientRing => ..., default value false, option to compute invariants over the given coefficient ring
• UseLinearAlgebra => ..., default value false, strategy for computing invariants of finite groups
• Outputs:
• L, a list, a minimal set of generating invariants for the group action

## Description

This function is provided by the package InvariantRing. It implements an algorithm to compute a minimal set of generating monomial invariants for a diagonal action of an abelian group $(k^*)^r \times \mathbb{Z}/d_1 \times \cdots \times \mathbb{Z}/d_g$ on a polynomial ring $R = k[x_1, \dots, x_n]$. Saying the action is diagonal means that $(t_1,\ldots,t_r) \in (k^*)^r$ acts by $$(t_1,\ldots,t_r) \cdot x_j = t_1^{w_{1,j}}\cdots t_r^{w_{r,j}} x_j$$ for some integers $w_{i,j}$ and the generators $u_1, \dots, u_g$ of the cyclic abelian factors act by $$u_i \cdot x_j = \zeta_i^{w_{r+i,j}} x_j$$ for $\zeta_i$ a primitive $d_i$-th root of unity. The integers $w_{i,j}$ comprise the weight matrix W. In other words, the $j$ -th column of W is the weight vector of $x_j$.

The algorithm combines a modified version of an algorithm for tori due to Derksen and Kemper which can be found in:

• Derksen, H. & Kemper, G. (2015).Computational Invariant Theory. Heidelberg: Springer. pp 159-164

together with an algorithm for finite abelian groups due to Gandini which can be found in:

• Gandini, F. Ideals of Subspace Arrangements. Thesis (Ph.D.)-University of Michigan. 2019. ISBN: 978-1392-76291-2. pp 29-34.

Here is an example of a one-dimensional torus acting on a two-dimensional vector space:

 i1 : R = QQ[x_1,x_2] o1 = R o1 : PolynomialRing i2 : W = matrix{{1,-1}} o2 = | 1 -1 | 1 2 o2 : Matrix ZZ <--- ZZ i3 : T = diagonalAction(W, R) * o3 = R <- QQ via | 1 -1 | o3 : DiagonalAction i4 : invariants T o4 = {x x } 1 2 o4 : List

Here is an example of a product of two cyclic groups of order 3 acting on a three-dimensional vector space:

 i5 : R = QQ[x_1..x_3] o5 = R o5 : PolynomialRing i6 : d = {3,3} o6 = {3, 3} o6 : List i7 : W = matrix{{1,0,1},{0,1,1}} o7 = | 1 0 1 | | 0 1 1 | 2 3 o7 : Matrix ZZ <--- ZZ i8 : A = diagonalAction(W, d, R) o8 = R <- ZZ/3 x ZZ/3 via | 1 0 1 | | 0 1 1 | o8 : DiagonalAction i9 : invariants A 3 3 3 2 2 2 o9 = {x , x , x , x x x , x x x } 3 2 1 1 2 3 1 2 3 o9 : List

Here is an example of a diagoanl action by the product of a two-dimensional torus with a cyclic group of order 3 acting on a two-dimensional vector space:

 i10 : R = QQ[x_1, x_2] o10 = R o10 : PolynomialRing i11 : d = {3} o11 = {3} o11 : List i12 : W1 = matrix{{1,-1}, {-1,1}} o12 = | 1 -1 | | -1 1 | 2 2 o12 : Matrix ZZ <--- ZZ i13 : W2 = matrix {{1,0}} o13 = | 1 0 | 1 2 o13 : Matrix ZZ <--- ZZ i14 : D = diagonalAction(W1, W2, d, R) * 2 o14 = R <- (QQ ) x ZZ/3 via (| 1 -1 |, | 1 0 |) | -1 1 | o14 : DiagonalAction i15 : invariants D 3 3 o15 = {x x } 1 2 o15 : List

## Caveat

By default, the invariants are computed over an infinite extension of the ground field specified by the user over which the action is defined. Provided the action is defined, it is possible to compute invariants literally over the specified ground field in prime characteristic using the option UseCoefficientRing.