# primaryInvariants(...,Dade=>...) -- an optional argument for primaryInvariants determining whether to use the Dade algorithm

## 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

Dade takes Boolean values and is set to false by default. If Dade is set to true, then primaryInvariants will use the Dade algorithm to calculate a homogeneous system of parameters (hsop) for the invariant ring of a finite group.

The example below computes the invariant ring of S3 acting on QQ[x,y,z] by permutations on the variables. 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,Dade=>true) 6 5 4 2 3 3 o4 = {39382402500x + 249046812000x y + 642775481775x y + 866232067050x y + ------------------------------------------------------------------------ 2 4 5 6 5 642775481775x y + 249046812000x*y + 39382402500y + 249046812000x z + ------------------------------------------------------------------------ 4 3 2 2 3 1295309543850x y*z + 2642253080670x y z + 2642253080670x y z + ------------------------------------------------------------------------ 4 5 4 2 1295309543850x*y z + 249046812000y z + 642775481775x z + ------------------------------------------------------------------------ 3 2 2 2 2 3 2 2642253080670x y*z + 3999578334634x y z + 2642253080670x*y z + ------------------------------------------------------------------------ 4 2 3 3 2 3 642775481775y z + 866232067050x z + 2642253080670x y*z + ------------------------------------------------------------------------ 2 3 3 3 2 4 2642253080670x*y z + 866232067050y z + 642775481775x z + ------------------------------------------------------------------------ 4 2 4 5 1295309543850x*y*z + 642775481775y z + 249046812000x*z + ------------------------------------------------------------------------ 5 6 6 5 4 2 249046812000y*z + 39382402500z , 576x + 3888x y + 10448x y + ------------------------------------------------------------------------ 3 3 2 4 5 6 5 4 14276x y + 10448x y + 3888x*y + 576y + 3888x z + 21332x y*z + ------------------------------------------------------------------------ 3 2 2 3 4 5 4 2 3 2 44710x y z + 44710x y z + 21332x*y z + 3888y z + 10448x z + 44710x y*z ------------------------------------------------------------------------ 2 2 2 3 2 4 2 3 3 2 3 + 68613x y z + 44710x*y z + 10448y z + 14276x z + 44710x y*z + ------------------------------------------------------------------------ 2 3 3 3 2 4 4 2 4 5 44710x*y z + 14276y z + 10448x z + 21332x*y*z + 10448y z + 3888x*z ------------------------------------------------------------------------ 5 6 6 5 4 2 3 3 + 3888y*z + 576z , 104976x + 1714608x y + 8461908x y + 14720616x y + ------------------------------------------------------------------------ 2 4 5 6 5 4 8461908x y + 1714608x*y + 104976y + 1714608x z + 19397232x y*z + ------------------------------------------------------------------------ 3 2 2 3 4 5 4 2 55116180x y z + 55116180x y z + 19397232x*y z + 1714608y z + 8461908x z ------------------------------------------------------------------------ 3 2 2 2 2 3 2 4 2 + 55116180x y*z + 100398673x y z + 55116180x*y z + 8461908y z + ------------------------------------------------------------------------ 3 3 2 3 2 3 3 3 14720616x z + 55116180x y*z + 55116180x*y z + 14720616y z + ------------------------------------------------------------------------ 2 4 4 2 4 5 5 8461908x z + 19397232x*y*z + 8461908y z + 1714608x*z + 1714608y*z + ------------------------------------------------------------------------ 6 104976z } o4 : List

Compare this result to the hsop output when Dade is left to its default value false.

 i5 : primaryInvariants(S3) 3 3 3 o5 = {x + y + z, x*y + x*z + y*z, x + y + z } o5 : List

Below, the invariant ring QQ[x,y,z]S3 is calculated with K being the field with 101 elements.

 i6 : K=GF(101) o6 = K o6 : GaloisField i7 : S3=finiteAction({A,B},K[x,y,z]) o7 = K[x..z] <- {| 0 1 0 |, | 0 1 0 |} | 0 0 1 | | 1 0 0 | | 1 0 0 | | 0 0 1 | o7 : FiniteGroupAction i8 : primaryInvariants(S3,Dade=>true) 6 5 4 2 3 3 2 4 5 6 5 o8 = {- 4x - 12x y + 28x y - 23x y + 28x y - 12x*y - 4y - 12x z - ------------------------------------------------------------------------ 4 3 2 2 3 4 5 4 2 3 2 17x y*z - 36x y z - 36x y z - 17x*y z - 12y z + 28x z - 36x y*z - ------------------------------------------------------------------------ 2 2 2 3 2 4 2 3 3 2 3 2 3 3 3 20x y z - 36x*y z + 28y z - 23x z - 36x y*z - 36x*y z - 23y z + ------------------------------------------------------------------------ 2 4 4 2 4 5 5 6 6 5 28x z - 17x*y*z + 28y z - 12x*z - 12y*z - 4z , 37x - 26x y + ------------------------------------------------------------------------ 4 2 3 3 2 4 5 6 5 4 3 2 32x y - 21x y + 32x y - 26x*y + 37y - 26x z - 32x y*z + 16x y z + ------------------------------------------------------------------------ 2 3 4 5 4 2 3 2 2 2 2 3 2 16x y z - 32x*y z - 26y z + 32x z + 16x y*z - 5x y z + 16x*y z + ------------------------------------------------------------------------ 4 2 3 3 2 3 2 3 3 3 2 4 4 32y z - 21x z + 16x y*z + 16x*y z - 21y z + 32x z - 32x*y*z + ------------------------------------------------------------------------ 2 4 5 5 6 6 5 4 2 3 3 2 4 32y z - 26x*z - 26y*z + 37z , 31x + 27x y - 46x y + 23x y - 46x y ------------------------------------------------------------------------ 5 6 5 4 3 2 2 3 4 5 + 27x*y + 31y + 27x z - 8x y*z + 46x y z + 46x y z - 8x*y z + 27y z - ------------------------------------------------------------------------ 4 2 3 2 2 2 2 3 2 4 2 3 3 2 3 46x z + 46x y*z + 17x y z + 46x*y z - 46y z + 23x z + 46x y*z + ------------------------------------------------------------------------ 2 3 3 3 2 4 4 2 4 5 5 6 46x*y z + 23y z - 46x z - 8x*y*z - 46y z + 27x*z + 27y*z + 31z } o8 : List

## Further information

• Default value: false
• Function: primaryInvariants -- computes a list of primary invariants for the invariant ring of a finite group
• Option key: Dade -- an optional argument for primaryInvariants determining whether to use the Dade algorithm

## 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.