#### D.4.35.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

User manual for Singular version 4.4.1, 2025, generated by texi2html.