Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-18 Thread Luca De Feo
> The algorithm in question is described in “Ideals, Varieties, and > Algorithms” by David Cox, John Little and Donal O’Shea in Section "§3 A > Division Algorithm in k[x_1 , … , x_n]". It is not: sage: A. = PolynomialRing(QQ, order="lex") sage: (x*y^2 + 1).reduce([x*y + 1, y+1]) x + 1

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread john_perry_usm
Perhaps it would be clearer if the wording were changed to, "return a remainder," because there can be more than one, and strike the words between and including "the normal form" and "i.e.", because in many places "normal form" implies uniqueness. For instance, speaking of Cox, Little, and O'Sh

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread Travis Scrimshaw
On Tuesday, October 17, 2017 at 4:50:20 AM UTC-5, Luca De Feo wrote: > > > It takes I as the generators of the ideal and uses that as the reduction > > set. > > That's not a definition. I'm in front of a class asking what this > function does, and I'm unable to give a mathematical definition o

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread 'Martin R. Albrecht' via sage-devel
Hi there, I’m fairly certain that I wrote that code or was at least involved since I wrote most of the first version of the libsingular stuff, David’s commit output by `git blame` is a merge commit. The algorithm in question is described in “Ideals, Varieties, and Algorithms” by David Cox, J

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread 'Martin R. Albrecht' via sage-devel
Hi there, AFAIK if you do that you prevent high-level 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. Cheers, Martin Daniel Krenn writes: On 2017-10-17 11:49, Luca De Feo wrote: It t

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread Luca De Feo
> +1 for doing something. > > What about the following fix: When the input is a list/tuple, we check > if it is a Groebner basis or not. If it is, do the computation, if not, > print a warning or raise an error. Sounds reasonable. Other options would be: - Just refuse list input. - Always comput

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread Daniel Krenn
On 2017-10-17 11:49, Luca De Feo wrote: >> It takes I as the generators of the ideal and uses that as the reduction >> set. > > That's not a definition. I'm in front of a class asking what this > function does, and I'm unable to give a mathematical definition of > what Sage means by "reduction" mo

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-17 Thread Luca De Feo
> It takes I as the generators of the ideal and uses that as the reduction > set. That's not a definition. I'm in front of a class asking what this function does, and I'm unable to give a mathematical definition of what Sage means by "reduction" modulo something that's not a Groebner basis. > Wha

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-16 Thread Travis Scrimshaw
> Can you tell from this documentation what the function will compute > prior to running it? I can't. > It takes I as the generators of the ideal and uses that as the reduction set. > > I agree with Daniel: this function does something useful and sensible > when I is an ideal, so it shouldn

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-16 Thread Luca De Feo
On Mon, Oct 16, 2017 at 7:35 PM, 'Martin R. Albrecht' via sage-devel wrote: > Hi there, > > this is already documented: > > “ Return the normal form of self w.r.t. "I", i.e. return the > remainder of this polynomial with respect to the polynomials in > "I". If the polynomial set/list "I" is no

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-16 Thread 'Martin R. Albrecht' via sage-devel
Hi there, this is already documented: “ Return the normal form of self w.r.t. "I", i.e. return the remainder of this polynomial with respect to the polynomials in "I". If the polynomial set/list "I" is not a (strong) Groebner basis the result is not canonical. ” Cheers, Martin Daniel Kre

Re: [sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-16 Thread Daniel Krenn
On 2017-10-16 18:41, Luca De Feo wrote: > Here's a Sage session: > > sage: A. = QQ[] > sage: (x+y).reduce([(x-y), (x+y)]) > 0 > sage: (x-y).reduce([(x-y), (x+y)]) > -2*y > > The docstring says reduce computes "the normal form of self w.r.t. I, > i.e. [...] the remainder of thi

[sage-devel] What does MPolynomial_libsingular.reduce() do?

2017-10-16 Thread Luca De Feo
Hi everyone, Here's a Sage session: sage: A. = QQ[] sage: (x+y).reduce([(x-y), (x+y)]) 0 sage: (x-y).reduce([(x-y), (x+y)]) -2*y The docstring says reduce computes "the normal form of self w.r.t. I, i.e. [...] the remainder of this polynomial with respect to the polynomials i