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

hilbertIdeal -- compute generators for the Hilbert ideal

Synopsis

Description

This function is provided by the package InvariantRing.

This function computes the Hilbert ideal for the action of a linearly reductive group on a (quotient of a) polynomial ring, i.e., the ideal generated by all ring elements of positive degree invariant under the action. The algorithm is based on:

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. Note that the generators of the Hilbert ideal need not be invariant.

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 : L = 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 L

                    2
o7 = ideal (x + y, y )

o7 : Ideal of R
i8 : apply(H_*, f -> isInvariant(f,L))

o8 = {true, false}

o8 : List

We offer a slight variation on the previous example to illustrate this method at work on a quotient of a polynomial ring.

i9 : S = QQ[z];
i10 : I = ideal(z^2 - 1);

o10 : Ideal of S
i11 : M = matrix{{(z+1)/2, (1-z)/2},{(1-z)/2, (z+1)/2}};

              2       2
o11 : Matrix S  <--- S
i12 : Q = QQ[x,y] / ideal(x*y)

o12 = Q

o12 : QuotientRing
i13 : L = linearlyReductiveAction(I, M, Q)

                    2
o13 = Q <- S/ideal(z  - 1) via 

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

o13 : LinearlyReductiveAction
i14 : H = hilbertIdeal L

o14 = ideal(x + y)

o14 : Ideal of Q

The algorithm 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 generators for the Hilbert ideal.

Caveat

The generators of the Hilbert ideal computed by this function need not be invariant.

Ways to use hilbertIdeal :

For the programmer

The object hilbertIdeal is a method function with options.