next | previous | forward | backward | up | top | index | toc | Macaulay2 website
InvariantRing :: hironakaDecomposition

hironakaDecomposition -- calculates a Hironaka decomposition for the invariant ring of a finite group



This function is provided by the package InvariantRing.

hironakaDecomposition makes use of the functions primaryInvariants and secondaryInvariants in order to compute a Hironaka decomposition of the invariant ring of a finite group G acting on a polynomial ring R. It outputs a sequence ({f1,...,fn}, {g1,...,gr}) of primary and secondary invariants such that RG=Ag1\oplus...\oplusAgr, where A=K[f1,...,fn] and K is the field of coefficients of R.

All of the optional arguments of hironakaDecomposition play the same role as for the functions primaryInvariants and secondaryInvariants. By default, the function hironakaDecomposition calls upon primaryInvariants, with the optional argument Dade set to false, to compute a set of primary invariants, resulting in Kemper's 'optimal' algorithm being used (see hsop algorithms for more information).

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

i1 : C4=finiteAction({matrix{{0,-1},{1,0}}},QQ[x,y])

o1 = QQ[x..y] <- {| 0 -1 |}
                  | 1 0  |

o1 : FiniteGroupAction
i2 : hironakaDecomposition C4

        2    2   2 2        3       3
o2 = ({x  + y , x y }, {1, x y - x*y })

o2 : Sequence

From the output one sees that QQ[x,y]C4=QQ[f1f2]\oplusQQ[f1f2](x4+y4), where f1=x2+y2 and f2=xy3-x3y.


Currently hironakaDecomposition works only with polynomial rings and matrices over fields of characteristic 0.

See also

Ways to use hironakaDecomposition :

For the programmer

The object hironakaDecomposition is a method function with options.