# secondaryInvariants(...,PrintDegreePolynomial=>...) -- an optional argument for secondaryInvariants that determines the printing of an informative polynomial

## Synopsis

• Usage:
secondaryInvariants(P,G)
• Inputs:
• P, a list, a list of primary invariants in n variables f1,...,fn for the invariant ring of G defined over a field K of characteristic zero
• G, an instance of the type FiniteGroupAction
• Outputs:
• a list, a list S of secondary invariants for the invariant ring R=K[x1,...,xn]G of G that makes R into a free K[f1,...,fn]-module with basis S

## Description

PrintDegreePolynomial takes a Boolean value and is set to false by default. If it is set to true, then secondaryInvariants will print a polynomial in the variable T. This polynomial encodes the degrees of the secondary invariants (given by the exponents of T appearing in it) and the number of secondary invariants of a given degree (the coefficient of the corresponding term in the polynomial). Specifically, if secondaryInvariants takes as input a set of primary invariants of degrees d1,...,dn for an invariant ring SG of a finite group G, and H(SG,T)denotes the Molien (Hilbert) series of SG, then secondaryInvariants will compute the polynomial H(SG,T)*(1-Td1)*...*(1-Tdn).

The example below computes the secondary invariants for the dihedral group with 6 elements, given a set of primary invariants P. The optional argument PrintDegreePolynomial is set to true in order to see which degrees the secondary invariants should have.

 i1 : K=toField(QQ[a]/(a^2+a+1)); i2 : R=K[x,y]; 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 : P={x^3+y^3,-(x^3-y^3)^2}; i7 : secondaryInvariants(P,D6,PrintDegreePolynomial=>true) 4 2 t + t + 1 2 2 o7 = {1, x*y, x y } o7 : List

## Further information

• Default value: false
• Function: secondaryInvariants -- computes secondary invariants for the invariant ring of a finite group
• Option key: PrintDegreePolynomial -- an optional argument for secondaryInvariants that determines the printing of an informative polynomial

## Caveat

Currently, a user needs to ensure that the all primary invariants are defined with coefficients in a ring that Macaulay2 recognises as a characteristic zero field (see toField for a way to do this).