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

## Synopsis

• Usage:
hironakaDecomposition G
• Inputs:
• Optional inputs:
• DegreeVector => ..., default value 0, an optional argument for primaryInvariants that finds invariants of certain degrees
• PrintDegreePolynomial => ..., default value false, an optional argument for secondaryInvariants that determines the printing of an informative polynomial
• Outputs:
• , (P,S), where P is a List of primary invariants (i.e. a homogeneous system of parameters for the invariant ring) and S is a List of corresponding secondary invariants

## Description

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 3 3 4 4 o2 = ({x + y , - x y + x*y }, {1, 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.

## Caveat

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

## See also

• hsop algorithms -- an overview of the algorithms used in primaryInvariants

## Ways to use hironakaDecomposition :

• "hironakaDecomposition(FiniteGroupAction)"

## For the programmer

The object hironakaDecomposition is .