Opened 10 years ago

Closed 10 years ago

#540 closed bug (fixed)

issue in quotient() over integers?

Reported by: kroeker@… Owned by: anne
Priority: major Milestone: Release 4-0-0
Component: singular-kernel Version: spielwiese
Keywords: Cc:

Description

Hello,

it seems that over integers there is an open problem in 'quotient' or respectively in its used routines; here is the failing example:

LIB("primdecint.lib");

proc quotientZWrapper(ideal J, ideal I)
{
  return( Primdecint::quotientZ(J,I) ) ;
}

ring rng= integer,(xe,xv),dp;

ideal j= 4*xv^3+3*xv^2, 3*xe*xv^2+xe-2*xv;
ideal i= -3,-3*xv-1,-3;

def qZ = quotientZWrapper( std(j), std(i) );
def q = quotient( j,i);
option("redSB");
reduce(std(qZ),std(q)); // <>0, but expected 0!
reduce(std(q),std(qZ)); //=0, ok

The problem does not occur, when removing duplicate generator occurrences in ideal i

i = -3,-3*xv-1;
def q = quotient( j, i );
reduce( std(qZ),std(q) ); //=0, ok
reduce(std(q),std(qZ)); //=0, ok

or working in ring 'integer,(xv,xe),dp;' instead

ring rng= integer,(xv,xe),dp;

ideal j= 4*xv^3+3*xv^2, 3*xe*xv^2+xe-2*xv;
ideal i= -3,-3*xv-1,-3;

def qZ = quotientZWrapper( std(j), std(i) );
def q = quotient( j,i);
option("redSB");
reduce(std(qZ),std(q)); //=0, ok
reduce(std(q),std(qZ)); //=0, ok

Jakob

Change History (4)

comment:1 Changed 10 years ago by anonymous

The background of the problem is that internally the quotient calculation boils down to an appropriate syzygy calculation. This in turn uses a bound based on regularity which is only valid over fields.

Solution: Make sure OPT_NOTREGULARITY is set (or respective block is disabled) in idSyzygies

in ideals.cc for rField_is_Ring.

Bug fix already added.

Anne

comment:2 Changed 10 years ago by decker

Owner: changed from somebody to anne

comment:3 Changed 10 years ago by kroeker@…

bug was finally fixed with commit github.com/adipopescu/Sources/commit/c96539c8cb8f7efc0675834e3424864bf2acb62d by deactivating OPT_SB_1 (test(29)) when the coefficients are not a field(?)

Jakob

comment:4 Changed 10 years ago by hannes

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.