Opened 13 years ago

Closed 13 years ago

#224 closed bug (fixed)

Bug in std with additional generators

Reported by: Simon King Owned by: hannes
Priority: blocker Milestone: 3-1-2 and higher
Component: singular-kernel Version: 3-1-1
Keywords: std additional generators Cc:


What I found is either a bug in std with additional generators, or a wrong specification in the manual.

The manual says:

Use an optional second argument of type poly/vector/ideal, resp. module, to construct the standard basis from an already computed one (given as the first argument) and additional generator(s) (the second argument).

Hence, it is not assumed that the second argument (if it is an ideal) must be a standard basis. This is only assumed for the first argument.

Consider the following example in Singular 3-1-0:

> ring R = (2),(b_2_4,b_2_5,b_4_17,c_4_18,a_1_0,b_1_1,c_1_2,b_3_9,b_3_10),(M(2,2,4,4,1,1,1,3,3,0,0,0,-1,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0),C);
> ideal I = std(ideal(a_1_0^2,a_1_0*b_1_1,b_2_4*a_1_0,b_2_5*a_1_0,a_1_0*b_3_9,a_1_0*b_3_10,b_2_4*b_1_1^2+b_2_4^2,b_1_1*b_3_9+b_2_4*b_2_5,b_4_17*a_1_0,b_2_4*b_3_9+b_2_4*b_2_5*b_1_1,b_4_17*b_1_1+b_2_5^2*b_1_1+b_2_4*b_3_10,b_2_4*b_1_1*b_3_10+b_2_4*b_4_17+b_2_4*b_2_5^2,b_3_9^2+b_2_4*b_2_5^2,b_3_9*b_3_10+b_2_5*b_4_17+b_2_5^3,b_3_10^2+b_2_5*b_1_1*b_3_10+b_2_5^3+b_2_4*b_4_17+b_2_4*b_2_5^2+c_4_18*b_1_1^2,b_4_17*b_3_9+b_2_5^2*b_3_9+b_2_4*b_2_5*b_3_10,b_4_17*b_3_10+b_2_5^2*b_3_10+b_2_5^2*b_3_9+b_2_4*b_2_5*b_3_10+b_2_4^2*b_3_10+b_2_4*c_4_18*b_1_1,b_4_17^2+b_2_5^4+b_2_4*b_2_5*b_4_17+b_2_4^2*b_4_17+b_2_4^2*b_2_5^2+b_2_4^2*c_4_18));
> ideal P = b_1_1^2 + b_2_5, b_1_1, c_4_18, c_1_2;

So, I is a standard basis, but P isn't.

If one wants to add P to I using std, the result and even the Krull dimension depends on whether P is standard or not:

> matrix(std(I,P))==matrix(std(I,std(P)));
> dim(std(I,P));
> dim(std(I,std(P)));

If this is a bug in std (and not just a wrong documentation), I consider this a quite serious thing and thus mark it a blocker.

Change History (2)

comment:1 Changed 13 years ago by levandov

I observed a similar bug where either I or P is zero, then the behaviour is incorrect.

comment:2 Changed 13 years ago by hannes

Resolution: fixed
Status: newclosed

The standard criteria need a specific order of evaluation of the s-pairs. This is not true in the case of std(ideal I, ideal P) if size(P) > 1. We do it not step by step.

Version 0, edited 13 years ago by hannes (next)
Note: See TracTickets for help on using tickets.