Opened 5 years ago

Closed 5 years ago

# proc syz() does not always give a minimal set of syzygies or sorted degree list

Reported by: Owned by: gabriel.sticlaru@… somebody minor 4-2-0 and higher dontKnow 4-0-2

### Description

The SINGULAR procedure syz() does not always give a minimal set of generators (syzygies) or sorted degree list. For the polynomial f= x3*z+x2*y2+y2*w*(y+w) it lists

1. 6 generators of degree = [2;2;2;2;3;3;] for the order rp
2. 7 generators of degree= [2;2;2;2;3;3;3;] for the order dp
3. 8 generators of degree= [2;2;3;2;2;3;3;3;] for the order lp (unsorted list)
4. 8 generators of degree= [2;2;2;2;3;3;3;3;] for the order Dp

Here the minimal number of generators is 6 (case 1) with degree = [2;2;2;2;3;3;]

run my proc syzygies(order) with parameter order=1, 2, 3 or 4 proc syzygies(int order) "USAGE: syzygies(k); where k is 1, 2, 3 or 4 RETURN: None NOTE: compute a minimal set of syzygies for ideal jacob(f)=(f_x, f_y, f_z, f_w), where f is homogeneous polynomial of degree 4, " { if(order>4) {ERROR("Error: parameter must be integer 1, 2, 3 or 4 !");} if (order==1) {ring R=0,(x,y,z,w), rp;} if (order==2) {ring R=0,(x,y,z,w), dp;} if (order==3) {ring R=0,(x,y,z,w), lp;} if (order==4) {ring R=0,(x,y,z,w), Dp;} int nr, i; string ssyz, sdegree; poly f; f= x3*z+x2*y2+y2*w*(y+w); ideal J=jacob(f); nr=size(syz(jacob(f))); int d, d1, d2, d3, d4; list v; print("The first syzygy module of Jacobian (f_x, f_y, f_z, f_w)"); print(" Number of syzygies = "+string(nr)); sdegree="["; for (i=1;i<=nr;i=i+1){ d1=deg(syz(J)[i][1]); d2=deg(syz(J)[i][2]); d3=deg(syz(J)[i][3]); d4=deg(syz(J)[i][4]); d=max( d1,d2); if (d3 >d) {d=d3;} if (d4 >d) {d=d4;} v[i]=d; ssyz="syz+string(i)+?: "+ "(" +string(syz(J)[i][1])+")f_x"+ "+("+string(syz(J)[i][2])+")f_y"+ "+("+string(syz(J)[i][3])+")f_z"+ "+("+string(syz(J)[i][4])+")f_w"+"=0"; ssyz; sdegree=sdegree+string(d)+";"; } sdegree=sdegree+"]"; print ("of degree= "+sdegree); }

### comment:1 Changed 5 years ago by hannes

Resolution: → not a bug new → closed

syz returns a generating set of the syzygy module. Nothing can be assumed about the ordering of the generators (they are not ordered) nor its minimality (the set is usually not minimal). If a minimal generating set is required, apply minbase to the result of syz.

Note: See TracTickets for help on using tickets.