up previous next
 NmzFiniteDiagInvariants

ring of invariants of a finite group action

 Syntax
 `NmzFiniteDiagInvariants(M: MAT, M: Ring): LIST of RINGELEM`

 Description
This function computes the ring of invariants of a finite abelian group G acting diagonally on the surrounding polynomial ring K[X_1,...,X_n].

The group is the direct product of cyclic groups generated by finitely many elements g_1,...,g_w. The element g_i acts on the indeterminate X_j by g_i(X_j)= l_i^{u_{ij}} X_j where l_i is a primitive root of unity of order equal to ord(g_i).

The ring of invariants is generated by all monomials satisfying the system u_{i1} a_1+...+u_{in} and congruent to 0 mod ord(g_i) i=1,...,w.

The input to the function is the w times (n+1) matrix U with rows u_{i1} ...u_{in} ord(g_i), i=1,...,w. The output is the monomial subalgebra of invariants R^G = {f in R : g_i f = f for all i=1,...,w}.

 Example
 ```/**/ Use R::=QQ[x,y,z,w]; /**/ U := matrix([[1,1,1,1,3],[1,0,2,0,4]]); /**/ NmzFiniteDiagInvariants(U,R); [x^2*z, z^2*w, y*z^2, x^12, y^3, z^6, w^3, x^8*w, x^4*w^2, y*w^2, x^8*y, x^4*y*w, y^2*w, x^4*y^2] ```