Ilya Zakharevich on Thu, 4 May 2000 18:13:10 -0400 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Bug in Mod (2.0.15) |
On Tue, Mar 07, 2000 at 02:06:45PM +0100, Karim BELABAS wrote: > (13:01) gp > \y > simplify = 0 (off) > (13:01) gp > u = Mod(z,x^2+y^2+t^2) > %6 = Mod(Mod(x, x^2 + y^2), x^2 + (y^2 + t^2)) > > which is an incorrect object... But is a "much more correct" answer. What I see is the following: simplify() assumes that any ring in which POLMODs live is a ring of principal ideals. (This assumption is hidden in the algorithm of converting to the lowest common denominator when combining POLMODs with different moduli). Thus I would guess that a) a way to represent an element in a quotient by a non-principal ideal in terms of the PARI type system; b) a change of simplify() to support this convention; would immediately make PARI able to do calculations in any algebra with finite number of generators - without any change to the calculation engine. To solve "a": if we can canonically associate to any ideal I a sequence of generators p1, ... pk, then we can represent x mod I by Mod(...Mod(Mod(x, p1), p2), ... pk) I can be wrong, but do not Groebner bases give a canonical system of generators of any ideal? Then if all my assumptions are valid, then adding a function to calculate the Groebner basis of the ideal generated by [q1,...,qn] and making simplify() use this function may be all what is required... Ilya