
D.7.3.4 ImageGroup
Procedure from library rinvar.lib (see rinvar_lib).
 Usage:
 ImageGroup(G, action); ideal G, action;
 Purpose:
 compute the ideal of the image of G in GL(m,K) induced by the linear
action 'action', where G is an algebraic group and 'action' defines
an action of G on K^m (size(action) = m).
 Return:
 ring, a polynomial ring over the same ground field as the basering,
containing the ideals 'groupid' and 'actionid'.
 'groupid' is the ideal of the image of G (order <= order of G)
 'actionid' defines the linear action of 'groupid' on K^m.
 Note:
 'action' and 'actionid' have the same orbits
all variables which give only rise to 0's in the m x m matrices of G
have been omitted.
 Assume:
 basering K[s(1..r),t(1..m)] has r + m variables, G is the ideal of an
algebraic group and F is an action of G on K^m. G contains only the
variables s(1)...s(r). The action 'action' is given by polynomials
f_1,...,f_m in basering, s.t. on the ring level we have
K[t_1,...,t_m] > K[s_1,...,s_r,t_1,...,t_m]/G
t_i > f_i(s_1,...,s_r,t_1,...,t_m)
Example:
 LIB "rinvar.lib";
ring B = 0,(s(1..2), t(1..2)),dp;
ideal G = s(1)^31, s(2)^101;
ideal action = s(1)*s(2)^8*t(1), s(1)*s(2)^7*t(2);
def R = ImageGroup(G, action);
==>
==> // 'ImageGroup' 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 ideal of the image of the input group and to access the \
new
==> // action of the group, type
==> setring R; groupid; actionid;
==>
setring R;
groupid;
==> groupid[1]=s(1)+s(2)^4
==> groupid[2]=s(1)^8s(2)^2
==> groupid[3]=s(1)^7*s(2)^21
actionid;
==> actionid[1]=s(1)*t(1)
==> actionid[2]=s(2)*t(2)

