primaryInvariants -- computes a list of primary invariants for the invariant ring of a finite group
Synopsis
-
- Usage:
primaryInvariants G
-
Inputs:
-
Optional inputs:
-
Dade => ..., default value false, an optional argument for primaryInvariants determining whether to use the Dade algorithm
-
DegreeVector => ..., default value 0, an optional argument for primaryInvariants that finds invariants of certain degrees
-
Outputs:
-
a list, consisting of a homogeneous system of parameters (hsop) for the invariant ring of the group action
Description
There are two algorithms implemented in primaryInvariants. The default algorithm (corresponding to the optional argument Dade taking the value false) currently only works with polynomial rings over fields of characteristic zero. The second is the Dade algorithm, corresponding to the optional argument Dade taking the value true. This algorithm can calculate an hsop over finite fields, so long as the field is sufficiently large. See hsop algorithms for a discussion comparing the two algorithms.
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
2 2 2 2 2 2 2 2 2
o4 = {x + y + z, x + y + z , x y + x*y + x z + y z + x*z + y*z }
o4 : List
|
Below, the invariant ring QQ[x,y,z]S3 is calculated with K being the field with 101 elements.
i5 : K=GF(101)
o5 = K
o5 : GaloisField
|
i6 : S3=finiteAction({A,B},K[x,y,z])
o6 = K[x..z] <- {| 0 1 0 |, | 0 1 0 |}
| 0 0 1 | | 1 0 0 |
| 1 0 0 | | 0 0 1 |
o6 : FiniteGroupAction
|
i7 : primaryInvariants(S3,Dade=>true)
6 5 4 2 3 3 2 4 5 6 5
o7 = {- 45x - 28x y - 45x y - 42x y - 45x y - 28x*y - 45y - 28x z +
------------------------------------------------------------------------
4 3 2 2 3 4 5 4 2 3 2
11x y*z + 23x y z + 23x y z + 11x*y z - 28y z - 45x z + 23x y*z +
------------------------------------------------------------------------
2 2 2 3 2 4 2 3 3 2 3 2 3 3 3
18x y z + 23x*y z - 45y z - 42x z + 23x y*z + 23x*y z - 42y z -
------------------------------------------------------------------------
2 4 4 2 4 5 5 6 6 5
45x z + 11x*y*z - 45y z - 28x*z - 28y*z - 45z , 9x + 32x y +
------------------------------------------------------------------------
4 2 3 3 2 4 5 6 5 4 3 2
13x y - 21x y + 13x y + 32x*y + 9y + 32x z + 48x y*z + 14x y z +
------------------------------------------------------------------------
2 3 4 5 4 2 3 2 2 2 2 3 2
14x y z + 48x*y z + 32y z + 13x z + 14x y*z - 33x y z + 14x*y z +
------------------------------------------------------------------------
4 2 3 3 2 3 2 3 3 3 2 4 4
13y z - 21x z + 14x y*z + 14x*y z - 21y z + 13x z + 48x*y*z +
------------------------------------------------------------------------
2 4 5 5 6 6 5 4 2 2 4 5
13y z + 32x*z + 32y*z + 9z , 13x - 43x y + 45x y + 45x y - 43x*y
------------------------------------------------------------------------
6 5 4 3 2 2 3 4 5 4 2
+ 13y - 43x z - 23x y*z - 39x y z - 39x y z - 23x*y z - 43y z + 45x z
------------------------------------------------------------------------
3 2 2 2 2 3 2 4 2 2 3 2 3 2 4
- 39x y*z + 29x y z - 39x*y z + 45y z - 39x y*z - 39x*y z + 45x z
------------------------------------------------------------------------
4 2 4 5 5 6
- 23x*y*z + 45y z - 43x*z - 43y*z + 13z }
o7 : List
|
This function is provided by the package InvariantRing.
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 . 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.
Ways to use primaryInvariants :
-
primaryInvariants(FiniteGroupAction)