Singular Manual: syModStd

| #### D.4.36.6 syModStd Procedure from library `symodstd.lib` (see symodstd_lib). Usage: syModStd(I,sigma); I ideal, sigma intvec Assume: size(sigma) = nvars(basering) and sigma(I) = I. If size(#) > 0, then # contains either 1, 2 or 4 integers such that - #[1] is the number of available processors for the computation, - #[2] is an optional parameter for the exactness of the computation, if #[2] = 1, the procedure computes a standard basis for sure, - #[3] is the number of primes until the first lifting, - #[4] is the constant number of primes between two liftings until the computation stops. Return: ideal, a standard basis of I if no warning appears; Note: The procedure computes a standard basis of the ideal I (over the rational numbers) by using modular methods and the fact that I is invariant under the variable permutation sigma. By default the procedure computes a standard basis of I for sure, but if the optional parameter #[2] = 0, it computes a standard basis of I with high probability. The procedure distinguishes between different variants for the standard basis computation in positive characteristic depending on the ordering of the basering, the parameter #[2] and if the ideal I is homogeneous. - variant = 1, if I is homogeneous, - variant = 2, if I is not homogeneous, 1-block-ordering, - variant = 3, if I is not homogeneous, complicated ordering (lp or > 1 block), - variant = 4, if I is not homogeneous, ordering lp, dim(I) = 0. Example:
    LIB "symodstd.lib";
    ring R1 = 0, (x,y,z), dp;
    ideal I;
    I[1] = -2xyz4+xz5+xz;
    I[2] = -2xyz4+yz5+yz;
    intvec sigma = 2,1,3;
    ideal sI = syModStd(I,sigma);
    sI;
    ==> sI[1]=x2yz-xy2z
    ==> sI[2]=xz5-yz5+xz-yz
    ==> sI[3]=xyz4-1/2yz5-1/2yz
    ==> sI[4]=y2z5-1/2yz6-xyz+y2z-1/2yz2
    ring R2 = 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 sJ1 = syModStd(I,pi,1);
    ideal sJ2 = syModStd(I,pi,1,0);
    size(reduce(sJ1,sJ2));
    ==> 0
    size(reduce(sJ2,sJ1));
    ==> 0

User manual for Singular version 4.3.0p1, 2022, generated by texi2html.