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

# invariants(LinearlyReductiveAction) -- invariant generators of Hilbert ideal

- Function: invariants
- Usage:
    `invariants V`
- Inputs:
  - V, an instance of the type LinearlyReductiveAction
- 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, of invariants generating the Hilbert ideal

## Description

This function is provided by the package InvariantRing

When called on a linearly reductive group action and a degree, this function returns a list of generators for the Hilbert ideal that are also invariant under the action. This function computes the Hilbert ideal first using hilbertIdeal then finds invariant generators degree by degree using invariants(LinearlyReductiveAction,ZZ).

The next example constructs a cyclic group of order 2 as a set of two affine points. Then it introduces an action of this group on a polynomial ring in two variables and computes the Hilbert ideal. The action permutes the variables of the polynomial ring.

    i1 : S = QQ[z]

    o1 = S

    o1 : PolynomialRing

    i2 : I = ideal(z^2 - 1)

                2
    o2 = ideal(z  - 1)

    o2 : Ideal of S

    i3 : M = matrix{{(z+1)/2, (1-z)/2},{(1-z)/2, (z+1)/2}}

    o3 = | 1/2z+1/2  -1/2z+1/2 |
         | -1/2z+1/2 1/2z+1/2  |

                 2      2
    o3 : Matrix S  <-- S

    i4 : sub(M,z=>1),sub(M,z=>-1)

    o4 = (| 1 0 |, | 0 1 |)
          | 0 1 |  | 1 0 |

    o4 : Sequence

    i5 : R = QQ[x,y]

    o5 = R

    o5 : PolynomialRing

    i6 : V = linearlyReductiveAction(I, M, R)

                       2
    o6 = R <- S/ideal(z  - 1) via

         | 1/2z+1/2  -1/2z+1/2 |
         | -1/2z+1/2 1/2z+1/2  |

    o6 : LinearlyReductiveAction

    i7 : H = hilbertIdeal V

                        2
    o7 = ideal (x + y, y )

    o7 : Ideal of R

    i8 : invariants V

    o8 = {x + y, x*y}

    o8 : List

The algorithm for the Hilbert ideal performs an elimination using Groebner bases. The options DegreeLimit and SubringLimit are standard gb options that can be used to interrupt the computation before it is complete, yielding a partial list of invariant generators for the Hilbert ideal.

## Caveat

Both hilbertIdeal and invariants(LinearlyReductiveAction,ZZ) require Groebner bases computations, which could lead to long running times. It might be helpful to run these functions separately.

## See also

- hilbertIdeal -- compute generators for the Hilbert ideal
- invariants -- computes the generating invariants of a group action

## Ways to use this method:

- invariants(LinearlyReductiveAction) -- invariant generators of Hilbert ideal

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