> I agree that Sage devs don't (need to) know what *exact* algorithm is > used. But at least it is clear that the .reduce() method does polynomial > reductions and continues till no further reduction is possible; all this > for a fixed monomial ordering (determined by the polynomial ring), in > *some* order of execution that is considered an implementation detail > and is thus not necessarily backwards compatible or compatible with an > order of execution proposed in the literature.
Something along the lines of this paragraph would be a valuable addition to the docstring of .reduce(). However, what's the use of such a function with implementation-dependent outputs? If I understand Martin's argument correctly, he is saying that .reduce() *could* be used for a schoolbook "implementation of Gröbner basis algorithms in Sage which call reduce, i.e. polynomial division with remainders, on S-polynomials wrt to the current basis." However for .reduce() to be useful for such applications, we would need to have at least *some* documented guarantee on its output. You say: > But at least it is clear that the .reduce() method does polynomial > reductions and continues till no further reduction is possible; I agree with your analysis, but "no reduction is possible" is ambiguous: different textbooks mean different things by it (some mean Travis' algorithm, some others agree with Cox, Little and O'Shea). 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?) Luca -- 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.