# diagonalAction -- diagonal group action via weights

## Synopsis

• Usage:
diagonalAction(W, R), diagonalAction(W, d, R), diagonalAction(W1, W2, d, R)
• Inputs:
• W, , of weights of the diagonal group action
• W1, , of weights for the torus action
• W2, , of weights for the finite abelian action
• d, a list, of orders of cyclic abelian factors in the decomposition of the diagonal group
• R, , on which the group acts
• Outputs:
• an instance of the type DiagonalAction, the diagonal action of the product of a torus with a finite abelian group corresponding to the given weight matrices

## Description

This function is provided by the package InvariantRing.

Use this function to set up a diagonal action of a group $(k^*)^r \times \mathbb{Z}/d_1 \times \cdots \times \mathbb{Z}/d_g$ on a polynomial ring $R = k[x_1,\ldots,x_n]$ over a field. 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 following example defines an action of a two-dimensional torus on a four-dimensional vector space with a basis of weight vectors whose weights are the columns of the input matrix.

 i1 : R = QQ[x_1..x_4] o1 = R o1 : PolynomialRing i2 : W = matrix{{0,1,-1,1},{1,0,-1,-1}} o2 = | 0 1 -1 1 | | 1 0 -1 -1 | 2 4 o2 : Matrix ZZ <--- ZZ i3 : T = diagonalAction(W, R) * 2 o3 = R <- (QQ ) via | 0 1 -1 1 | | 1 0 -1 -1 | o3 : DiagonalAction

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

 i4 : R = QQ[x_1..x_3] o4 = R o4 : PolynomialRing i5 : d = {3,3} o5 = {3, 3} o5 : List i6 : W = matrix{{1,0,1},{0,1,1}} o6 = | 1 0 1 | | 0 1 1 | 2 3 o6 : Matrix ZZ <--- ZZ i7 : A = diagonalAction(W, d, R) o7 = R <- ZZ/3 x ZZ/3 via | 1 0 1 | | 0 1 1 | o7 : DiagonalAction

## Ways to use diagonalAction :

• "diagonalAction(Matrix,List,PolynomialRing)"
• "diagonalAction(Matrix,Matrix,List,PolynomialRing)"
• "diagonalAction(Matrix,PolynomialRing)"

## For the programmer

The object diagonalAction is .