Macaulay2 » Documentation
Packages » InvariantRing :: invariants(FiniteGroupAction,ZZ)
next | previous | forward | backward | up | index | toc

# invariants(FiniteGroupAction,ZZ) -- basis for graded component of invariant ring

- Function: invariants
- Usage:
    `invariants(G,d)`
- Inputs:
  - G, an instance of the type FiniteGroupAction
  - d, an integer, a degree or multidegree
- Optional inputs:
  - Strategy (missing documentation) => ..., default value UseNormaliz, the strategy used to compute diagonal invariants, options are UsePolyhedra or UseNormaliz.
  - DegreeBound => ..., default value infinity, degree bound for invariants of finite groups
  - DegreeLimit => ..., default value {}, GB option for invariants
  - SubringLimit => ..., default value infinity, GB option for invariants
  - UseCoefficientRing => ..., default value false, option to compute invariants over the given coefficient ring
  - UseLinearAlgebra => ..., default value false, strategy for computing invariants of finite groups
- Outputs:
  - L, a list, an additive basis for a graded component of the ring of invariants

## Description

This function is provided by the package InvariantRing

When called on a finite group action and a (multi)degree, it computes an additive basis for the invariants of the action in the given degree.

This function uses an implementation of the Linear Algebra Method described in §3.1.1 of

- Derksen, H. & Kemper, G. (2015).Computational Invariant Theory. Heidelberg: Springer.

For example, consider the following action of a dihedral group.

    i1 : K=toField(QQ[a]/(a^2+a+1));

    i2 : R = K[x,y]

    o2 = R

    o2 : PolynomialRing

    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 : invariants(D6,20)

           10 10   13 7    7 13   16 4    4 16   19       19
    o6 = {x  y  , x  y  + x y  , x  y  + x y  , x  y + x*y  }

    o6 : List

It is important to note that this implementation uses the group generators provided by the user, which can be recovered using generators(FiniteGroupAction). To improve efficiency the user should provide a generating set for the group that is as small as possible.

## See also

- invariantRing -- the ring of invariants of a group action
- isInvariant -- check whether a polynomial is invariant under a group action
- finiteAction -- the group action generated by a list of matrices

## Ways to use this method:

- `invariants(FiniteGroupAction,List)`
- invariants(FiniteGroupAction,ZZ) -- basis for graded component of invariant ring

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/InvariantRing/InvariantsDoc.m2:549:0.