Opened 8 years ago

Closed 8 years ago

# overflow hell strikes back

Reported by: Owned by: kroeker@… somebody minor 4-1-0 and higher dontKnow 4-0-1 exponent overflow hell

### Description

A working example for a starters

```LIB("primdec.lib");
ring R = 0,(x,y),dp;
short = 0;
ring G = 0,(a,b),dp;
short = 0;
ideal phi = a^3,b;
map m = R,phi;
ideal I = a^645*b;
setring R;
ideal pI = preimage(G,m,I);

setring G;
ideal mpI = m(pI);
mpI; // = a^645*b; ok
ASSUME(0, idealsEqual(mpI , I) ); //ok
```

and now a failing one:

```LIB("primdec.lib");
ring R = 0,(x,y),dp;
short = 0;
ring G = 0,(a,b),dp;
short = 0;
ideal phi = a^3,b;
map m = R,phi;
ideal I = a^2147483645*b;
setring R;
ideal pI = preimage(G,m,I);

setring G;
ideal mpI = m(pI);
mpI; // mpI=a^65535*b
ASSUME(0, idealsEqual(mpI , I) ); // fails
```

This is not just a single issue, this is overflow hell, you know? (unfortunately)

And it is very unlikely that I will catch them all.

### comment:1 Changed 8 years ago by kroeker@…

update: the failing example should really be

```LIB("primdec.lib");
ring R = 0,(x,y),dp;
short = 0;
ring G = 0,(a,b),dp;
short = 0;
ideal phi = a^3,b;
map m = R,phi;
ideal I = a^131070;
setring R;
ideal pI = preimage(G,m,I);
pI;
ideal pIexpected =  x^43690;
setring G;
ideal mpIexpected = m(pIexpected);
mpIexpected;
ASSUME(0, idealsEqual(mpIexpected , I) );

ideal mpI = m(pI);
mpI;
ASSUME(0, idealsEqual(mpI , I) );
```

( 2147483645 is not 0 mod 3)

But screwing up that example did let me see another flaw of `preimage`. Can you see it, too?

### comment:2 Changed 8 years ago by hannes

Resolution: → not a bug new → closed

"not a bug" is not really the right solution, but the closest one. Should be "not correctly stated problem". Solved by changing the policy from "trying the best possible" to "sticking strictly to the documentation" (which limits the maximal expontent to 32767 in this case).

Note: See TracTickets for help on using tickets.