Top
Back: D.6.2 ainvar_lib
Forward: D.6.2.2 derivate
FastBack: D. SINGULAR libraries
FastForward: E. Release Notes
Up: D.6.2 ainvar_lib
Top: Singular 2-0-4 Manual
Contents: Table of Contents
Index: F. Index
About: About This Document

D.6.2.1 invariantRing

Procedure from library ainvar.lib (see ainvar_lib).

Usage:

invariantRing(m,p,q,b[,r,pa]); m matrix, p,q poly, b,r int, pa string

Assume:

p,q variables with m(p)=q and q invariant under m
i.e. if p=x(i) and q=x(j) then m[j,1]=0 and m[i,1]=x(j)

Return:

ideal, containing generators of the ring of invariants of the additive group (K,+) given by the vector field

 
         m = m[1,1]*d/dx(1) +...+ m[n,1]*d/dx(n).

If b>0 the computation stops after all invariants of degree <= b (and at least one of higher degree) are found or when all invariants are computed.
If b<=0, the computation continues until all generators of the ring of invariants are computed (should be used only if the ring of invariants is known to be finitely generated otherwise the algorithm might not stop).
If r=1 a different reduction is used which is sometimes faster (default r=0).

Display:

if pa is given (any string as 5th or 6th argument), the computation pauses whenever new invariants are found and displays them

Theory:

The algorithm to compute the ring of invariants works in char 0 or big enough characteristic. (K,+) acts as the exponential of the vector field defined by the matrix m. For background see G.-M. Greuel, G. Pfister, Geometric quotients of unipotent group actions, Proc. London Math. Soc. (3) 67, 75-105 (1993).

Example:

 
LIB "ainvar.lib";
//Winkelmann: free action but Spec(k[x(1),...,x(5)]) --> Spec(invariant ring)
//is not surjective
ring rw=0,(x(1..5)),dp;
matrix m[5][1];
m[3,1]=x(1);
m[4,1]=x(2);
m[5,1]=1+x(1)*x(4)+x(2)*x(3);
ideal in=invariantRing(m,x(3),x(1),0);      //compute full invarint ring
in;
→ in[1]=x(1)
→ in[2]=x(2)
→ in[3]=x(2)*x(3)*x(4)-x(2)*x(5)+x(4)
→ in[4]=x(1)*x(3)*x(4)-x(1)*x(5)+x(3)
//Deveney/Finston: The ring of invariants is not finitely generated
ring rf=0,(x(1..7)),dp;
matrix m[7][1];
m[4,1]=x(1)^3;
m[5,1]=x(2)^3;
m[6,1]=x(3)^3;
m[7,1]=(x(1)*x(2)*x(3))^2;
ideal in=invariantRing(m,x(4),x(1),6);      //all invariants up to degree 6
in;
→ in[1]=x(1)
→ in[2]=x(3)
→ in[3]=x(2)
→ in[4]=x(3)^3*x(4)-x(1)^3*x(6)
→ in[5]=x(2)^3*x(4)-x(1)^3*x(5)
→ in[6]=x(2)^2*x(3)^2*x(4)-x(1)*x(7)
→ in[7]=x(1)^2*x(2)^2*x(6)-x(3)*x(7)
→ in[8]=x(1)^2*x(3)^2*x(5)-x(2)*x(7)
→ in[9]=x(1)^2*x(2)*x(3)^4*x(4)*x(5)+x(1)^2*x(2)^4*x(3)*x(4)*x(6)-x(1)^5*x(\
   2)*x(3)*x(5)*x(6)-2*x(2)^2*x(3)^2*x(4)*x(7)+x(1)*x(7)^2

Top Back: D.6.2 ainvar_lib Forward: D.6.2.2 derivate FastBack: D. SINGULAR libraries FastForward: E. Release Notes Up: D.6.2 ainvar_lib Top: Singular 2-0-4 Manual Contents: Table of Contents Index: F. Index About: About This Document
            User manual for Singular version 2-0-4, October 2002, generated by texi2html.