> < ^ From:

< ^ Subject:

Dear GAP Forum,

Allan Adler asked for more details concerning Molien series.

Let us look at an example, the Molien series corresponding to

any of the irreducible degree 3 representations

of the alternating group on 5 points.

gap> G:= AlternatingGroup( 5 );; gap> psi:= First( Irr( G ), x -> Degree( x ) = 3 );; gap> molser:= MolienSeries( psi ); ( 1-z^2-z^3+z^6+z^7-z^9 ) / ( (1-z^5)*(1-z^3)*(1-z^2)^2 )

For GAP 4, this Molien series is first of all a rational function.

In the printed form, numerator and denominator are in general

not coprime; in this example, `1-z' divides is a common divisor.

The chosen denominator is minimal with the property

that it is a product of polynomials of the form `1-z^k'.

(This minimal denominator is determined by those cyclotomic

polynomials that necessarily divide the denominator.)

But this form of the Molien series does in general not reflect

the structure of the invariant ring.

In the example, this can be seen from the fact that some of the

coefficients in the numerator are negative.

One possibility to ``guess'' a denominator that encodes the

degrees of the primary invariants and such that the numerator

encodes the degrees of the secondary invariants

is to look at the first coefficients of the series.

gap> List( [ 0 .. 20 ], i -> ValueMolienSeries( molser, i ) ); [ 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 3, 0, 4, 0, 4, 1, 5, 1, 6, 1, 7 ]

We see that invariants of degrees 2, 6, 10, and 15 exist

that do not arise from invariants of smaller degrees.

So we try a representation of the Molien series with appropriately

larger denominator.

(This functionality was not available in GAP 3.)

gap> MolienSeriesWithGivenDenominator( molser, [ 2, 6, 10 ] ); ( 1+z^15 ) / ( (1-z^10)*(1-z^6)*(1-z^2) )

This is in fact a representation that reflects the structure

of the invariant ring.

Currently GAP does not provide other tools for finding

reasonable denominators of Molien series.

If more information about the handling of Molien series in GAP

is needed, only the GAP library code is available

(see the files `ctblmoli.gd' and `ctblmoli.gi').

In particular, the attribute `MolienSeriesInfo' might be interesting;

each rational function constructed by `MolienSeries' stores the

value of this attribute, and the functions `ValueMolienSeries'

and `MolienSeriesWithGivenDenominator' rely only on this value.

Kind regards,

Thomas

> < [top]