IsGroup takes Boolean values and by default is set to true. If it is set to false, then invariantRing will apply generateGroup to the input List at the beginning of the computation and work with the resulting group. Note that the second argument of generateGroup will be set to the coefficientRing of the polynomial ring entered into invariantRing. Otherwise, invariantRing will assume that the List input is a group and will not apply generateGroup to it. This saves time in the evaluation of invariantRing, but will produce unintended results if the List input is not a group. One can test whether or not a List of matrices forms a group using generateGroup.
The example below computes a set of primary and secondary invariants for an action of the cyclic group of order 4 on QQ[x,y]. The optional argument IsGroup is set to false so that invariantRing will first generate a group of matrices, defined over the coefficientRing QQ, from the List C4.
i1 : C4={sub(matrix{{0,-1},{1,0}},QQ)}; |
i2 : invariantRing(QQ[x,y],C4,IsGroup=>false) 2 2 4 4 3 3 o2 = ({x + y , x + y }, {1, x y - x*y }) o2 : Sequence |