next | previous | forward | backward | up | top | index | toc | Macaulay2 website
InvariantRing :: invariants(DiagonalAction)

invariants(DiagonalAction) -- computes the generating invariants of a group action

Synopsis

Description

This function is provided by the package InvariantRing. It implements an algorithm to compute a minimal set of generating monomial invariants for a diagonal action of an abelian group $(k^*)^r \times \mathbb{Z}/d_1 \times \cdots \times \mathbb{Z}/d_g$ on a polynomial ring $R = k[x_1, \dots, x_n]$. Saying the action is diagonal means that $(t_1,\ldots,t_r) \in (k^*)^r$ acts by $$(t_1,\ldots,t_r) \cdot x_j = t_1^{w_{1,j}}\cdots t_r^{w_{r,j}} x_j$$ for some integers $w_{i,j}$ and the generators $u_1, \dots, u_g$ of the cyclic abelian factors act by $$u_i \cdot x_j = \zeta_i^{w_{r+i,j}} x_j$$ for $\zeta_i$ a primitive $d_i$-th root of unity. The integers $w_{i,j}$ comprise the weight matrix W. In other words, the $j$ -th column of W is the weight vector of $x_j$.

The algorithm combines a modified version of an algorithm for tori due to Derksen and Kemper which can be found in:

together with an algorithm for finite abelian groups due to Gandini which can be found in:

Here is an example of a one-dimensional torus acting on a two-dimensional vector space:

i1 : R = QQ[x_1,x_2]

o1 = R

o1 : PolynomialRing
i2 : W = matrix{{1,-1}}

o2 = | 1 -1 |

              1        2
o2 : Matrix ZZ  <--- ZZ
i3 : T = diagonalAction(W, R)

            *
o3 = R <- QQ  via 

     | 1 -1 |

o3 : DiagonalAction
i4 : invariants T

o4 = {x x }
       1 2

o4 : List

Here is an example of a product of two cyclic groups of order 3 acting on a three-dimensional vector space:

i5 : R = QQ[x_1..x_3]

o5 = R

o5 : PolynomialRing
i6 : d = {3,3}

o6 = {3, 3}

o6 : List
i7 : W = matrix{{1,0,1},{0,1,1}}

o7 = | 1 0 1 |
     | 0 1 1 |

              2        3
o7 : Matrix ZZ  <--- ZZ
i8 : A = diagonalAction(W, d, R)

o8 = R <- ZZ/3 x ZZ/3 via 

     | 1 0 1 |
     | 0 1 1 |

o8 : DiagonalAction
i9 : invariants A

       3   3   3       2   2 2
o9 = {x , x , x , x x x , x x x }
       3   2   1   1 2 3   1 2 3

o9 : List

Here is an example of a diagoanl action by the product of a two-dimensional torus with a cyclic group of order 3 acting on a two-dimensional vector space:

i10 : R = QQ[x_1, x_2]

o10 = R

o10 : PolynomialRing
i11 : d = {3}

o11 = {3}

o11 : List
i12 : W1 = matrix{{1,-1}, {-1,1}}

o12 = | 1  -1 |
      | -1 1  |

               2        2
o12 : Matrix ZZ  <--- ZZ
i13 : W2 = matrix {{1,0}}

o13 = | 1 0 |

               1        2
o13 : Matrix ZZ  <--- ZZ
i14 : D = diagonalAction(W1, W2, d, R)

              * 2
o14 = R <- (QQ )  x ZZ/3 via 

      (| 1  -1 |, | 1 0 |)
       | -1 1  |

o14 : DiagonalAction
i15 : invariants D

        3 3
o15 = {x x }
        1 2

o15 : List

Caveat

By default, the invariants are computed over an infinite extension of the ground field specified by the user over which the action is defined. Provided the action is defined, it is possible to compute invariants literally over the specified ground field in prime characteristic using the option UseCoefficientRing.

See also