|
D.4.29.5 symmStd
Procedure from library symodstd.lib (see symodstd_lib).
- Usage:
- symmStd(I,sigma,#); I ideal, sigma intvec
- Assume:
- size(sigma) = nvars(basering) =: n, basering has an order(sigma)-th
primitive root of unity a (if char(basering) > 0) and sigma(I) = I
- Return:
- ideal, a standard basis of I
- Note:
- Assuming that the ideal I is invariant under the variable permutation
sigma and the basering has an order(sigma)-th primitive root of unity
the procedure uses linear transformation of variables in order to
improve standard basis computation.
If char(basering) = 0 all computations are done in the polynomial ring
over the smallest field extension that has an order(sigma)-th primitive
root of unity.
Example:
| LIB "symodstd.lib";
ring R = 0, x(1..4), dp;
ideal I = cyclic(4);
I;
==> I[1]=x(1)+x(2)+x(3)+x(4)
==> I[2]=x(1)*x(2)+x(2)*x(3)+x(1)*x(4)+x(3)*x(4)
==> I[3]=x(1)*x(2)*x(3)+x(1)*x(2)*x(4)+x(1)*x(3)*x(4)+x(2)*x(3)*x(4)
==> I[4]=x(1)*x(2)*x(3)*x(4)-1
intvec pi = 2,3,4,1;
ideal sI = symmStd(I,pi);
sI;
==> sI[1]=x(1)+x(2)+x(3)+x(4)
==> sI[2]=x(2)^2+2*x(2)*x(4)+x(4)^2
==> sI[3]=x(2)*x(3)^2+x(3)^2*x(4)-x(2)*x(4)^2-x(4)^3
==> sI[4]=x(2)*x(3)*x(4)^2+x(3)^2*x(4)^2-x(2)*x(4)^3+x(3)*x(4)^3-x(4)^4-1
==> sI[5]=x(2)*x(4)^4+x(4)^5-x(2)-x(4)
==> sI[6]=x(3)^3*x(4)^2+x(3)^2*x(4)^3-x(3)-x(4)
==> sI[7]=x(3)^2*x(4)^4+x(2)*x(3)-x(2)*x(4)+x(3)*x(4)-2*x(4)^2
ring S = 31, (x,y,z), dp;
ideal J;
J[1] = xy-y2+xz;
J[2] = xy+yz-z2;
J[3] = -x2+xz+yz;
intvec tau = 3,1,2;
ideal sJ = symmStd(J,tau);
sJ;
==> sJ[1]=y2-xz+yz-z2
==> sJ[2]=xy+yz-z2
==> sJ[3]=x2-xz-yz
==> sJ[4]=yz2-z3
==> sJ[5]=xz2
==> sJ[6]=z4
|
|