# primaryInvariants(...,DegreeVector=>...) -- an optional argument for primaryInvariants that finds invariants of certain degrees

## Synopsis

• Usage:
primaryInvariants G
• Inputs:
• Outputs:
• a list, consisting of a homogeneous system of parameters (hsop) for the invariant ring of the group action

## Description

By default, primaryInvariants uses an optimising algorithm which tests for the existence of a homogeneous system of parameters (hsop) (f1,...,fn) with positive degrees corresponding to (d1,...,dn) in ZZn. If it is known that a hsop exists for a certain collection of degrees, this can be assigned, as a List, to the optional argument DegreeVector. primaryInvariants will then output a hsop corresponding to this list of degrees. If however no such hsop exists, primaryInvariants outputs an error message.

Note that the List assigned to DegreeVector is ignored if Dade is set to true.

 i1 : A=matrix{{0,1,0},{0,0,1},{1,0,0}}; 3 3 o1 : Matrix ZZ <--- ZZ i2 : B=matrix{{0,1,0},{1,0,0},{0,0,1}}; 3 3 o2 : Matrix ZZ <--- ZZ i3 : S3=finiteAction({A,B},QQ[x,y,z]) o3 = QQ[x..z] <- {| 0 1 0 |, | 0 1 0 |} | 0 0 1 | | 1 0 0 | | 1 0 0 | | 0 0 1 | o3 : FiniteGroupAction i4 : primaryInvariants(S3,DegreeVector=>{3,3,4}) 3 3 3 2 2 2 2 2 2 3 3 3 o4 = {x + y + z , x y + x*y + x z + y z + x*z + y*z , x y + x*y + x z + ------------------------------------------------------------------------ 3 3 3 y z + x*z + y*z } o4 : List

## Further information

• Default value: 0
• Function: primaryInvariants -- computes a list of primary invariants for the invariant ring of a finite group
• Option key: DegreeVector -- an optional argument for primaryInvariants that finds invariants of certain degrees

## Caveat

Currently users can only use primaryInvariants to calculate a hsop for the invariant ring over a finite field by using the Dade algorithm. Users should enter the finite field as a GaloisField or a quotient field of the form ZZ/p and are advised to ensure that the ground field has cardinality greater than |G|n-1, where n is the number of variables in the polynomial ring R. Using a ground field smaller than this runs the risk of the algorithm getting stuck in an infinite loop; primaryInvariants displays a warning message asking the user whether they wish to continue with the computation in this case. See hsop algorithms for a discussion on the Dade algorithm.