Opened 9 years ago

Closed 9 years ago

# issue in quotient() over integers?

Reported by: Owned by: kroeker@… anne major Release 4-0-0 singular-kernel spielwiese

### 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

### comment:1 Changed 9 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.

Anne

### comment:2 Changed 9 years ago by decker

Owner: changed from somebody to anne

### comment:3 Changed 9 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 9 years ago by hannes

Resolution: → fixed new → closed
Note: See TracTickets for help on using tickets.