> I would formulate it more precisely as "no monomial in the output is > divisible by the leading monomial of any polynomial in I". This seems > to be true given the examples I have, it would be good to have a > confirmation (hidden somewhere in Singular's docs?) >
Curiously, the definition of "normal form" in the Singular docs differs from that in the Singular text; see http://www.singular.uni-kl.de/Manual/latest/sing_845.htm#IDX415 where normal form is defined with a standard basis G. In the text G can be any list of polynomials. It is possible in Singular to reduce by something that is not a Gröbner basis but Singular usually complains when that happens. So, for instance, here is a computation I just carried out in Singular: > ring R = 43,(x,y),dp; > > ideal I = x2+y2-4,xy-1; > > reduce(x3,I); > // ** I is no standard basis > 4x-y The check that produces the warning is NOT a thorough check that G is a Gröbner basis; it merely inspects a flag to see if a Gröbner basis has been computed. You can circumvent the warning by setting the flag, so that even when it isn't a Gröbner basis there is no warning. I don't remember offhand how to set that flag. Looking at the code, Sage first tries to see if it has cached a reduction already (at least, I think that's what I._groebner_strategy is about). If not, it invokes the Singular function kNF (line 4479 of sage/libs/singular/decl.pxd in Sage 8.0). Singular's source code is not well-known for documentation, and kNF is no exception: in my copy of the source there is more or less no documentation of what kNF is supposed to do. (My copy is old, but I know a developer pretty well & it's something we've talked about.) I worked with it some years back and as I recall kNF and the functions it calls together behave according to the description from the Singular text that I quoted earlier: "normal form" in that text is not the same as "normal form" in CLO. Figuring out exactly how they do this could be a challenge, because Singular can take one of many paths depending on the underlying data. This is a long way of saying that I agree with the suggestion. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.