Home Online Manual
Top
Back: InvariantQ
Forward: LinearActionQ
FastBack:
FastForward:
Up: rinvar_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.7.3.7 LinearizeAction

Procedure from library rinvar.lib (see rinvar_lib).

Usage:
LinearizeAction(G,action,r); ideal G, action; int r

Purpose:
linearize the group action 'action' and find an equivariant embedding of K^m where m = size(action).

Assume:
G contains only variables var(1..r) (r = nrs)
basering = K[s(1..r),t(1..m)], K = Q or K = Q(a) and minpoly != 0.

Return:
polynomial ring containing the ideals 'actionid', 'embedid', 'groupid' - 'actionid' is the ideal defining the linearized action of G - 'embedid' is a parameterization of an equivariant embedding (closed) - 'groupid' is the ideal of G in the new ring

Note:
set printlevel > 0 to see a trace

Example:
 
LIB "rinvar.lib";
ring B   = 0,(s(1..5), t(1..3)),dp;
ideal G =  s(3)-s(4), s(2)-s(5), s(4)*s(5), s(1)^2*s(4)+s(1)^2*s(5)-1, s(1)^2*s(5)^2-s(5), s(4)^4-s(5)^4+s(1)^2, s(1)^4+s(4)^3-s(5)^3, s(5)^5-s(1)^2*s(5);
ideal action = -s(4)*t(1)+s(5)*t(1), -s(4)^2*t(2)+2*s(4)^2*t(3)^2+s(5)^2*t(2), s(4)*t(3)+s(5)*t(3);
LinearActionQ(action, 5);
==> 0
def R = LinearizeAction(G, action, 5);
==> 
==> // 'LinearizeAction' created a new ring.
==> // To see the ring, type (if the name 'R' was assigned to the return valu\
   e):
==>      show(R);
==> // To access the new action and the equivariant embedding, type
==>      setring R; actionid; embedid; groupid
==> 
setring R;
R;
==> // coefficients: QQ
==> // number of vars : 9
==> //        block   1 : ordering dp
==> //                  : names    s(1) s(2) s(3) s(4) s(5) t(1) t(2) t(3) t(\
   4)
==> //        block   2 : ordering C
actionid;
==> actionid[1]=-s(4)*t(1)+s(5)*t(1)
==> actionid[2]=-s(4)^2*t(2)+s(5)^2*t(2)+2*s(4)^2*t(4)
==> actionid[3]=s(4)*t(3)+s(5)*t(3)
==> actionid[4]=s(4)^2*t(4)+s(5)^2*t(4)
embedid;
==> embedid[1]=t(1)
==> embedid[2]=t(2)
==> embedid[3]=t(3)
==> embedid[4]=t(3)^2
groupid;
==> groupid[1]=s(3)-s(4)
==> groupid[2]=s(2)-s(5)
==> groupid[3]=s(4)*s(5)
==> groupid[4]=s(1)^2*s(4)+s(1)^2*s(5)-1
==> groupid[5]=s(1)^2*s(5)^2-s(5)
==> groupid[6]=s(4)^4-s(5)^4+s(1)^2
==> groupid[7]=s(1)^4+s(4)^3-s(5)^3
==> groupid[8]=s(5)^5-s(1)^2*s(5)
LinearActionQ(actionid, 5);
==> 1