# invariants(FiniteGroupAction,ZZ) -- basis for graded component of invariant ring

## Synopsis

• Function: invariants
• Usage:
invariants(G,d)
• Inputs:
• 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, an additive basis for a graded component of the ring of invariants

## Description

This function is provided by the package InvariantRing

When called on a finite group action and a (multi)degree, it computes an additive basis for the invariants of the action in the given degree.

This function uses an implementation of the Linear Algebra Method described in §3.1.1 of

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

For example, consider the following action of a dihedral group.

 i1 : K=toField(QQ[a]/(a^2+a+1)); i2 : R = K[x,y] o2 = R o2 : PolynomialRing i3 : A=matrix{{a,0},{0,a^2}}; 2 2 o3 : Matrix K <--- K i4 : B=sub(matrix{{0,1},{1,0}},K); 2 2 o4 : Matrix K <--- K i5 : D6=finiteAction({A,B},R) o5 = R <- {| a 0 |, | 0 1 |} | 0 -a-1 | | 1 0 | o5 : FiniteGroupAction i6 : invariants(D6,20) 10 10 13 7 7 13 16 4 4 16 19 19 o6 = {x y , x y + x y , x y + x y , x y + x*y } o6 : List

It is important to note that this implementation uses the group generators provided by the user, which can be recovered using generators(FiniteGroupAction). To improve efficiency the user should provide a generating set for the group that is as small as possible.