[sage-devel] Re: Why is the Groebner basis not an ideal
> OK, as a conscious decision it is certainly justified. Of course, > mathematically you are right that an object and a particular basis of > that object are two different things. Only i was surprised, because i > grew up with Singular and not with Magma... FYI, magma has both commands GroebnerBasis, which returns a sequence, and Groebner, which is actually a procedure that modifies the ideal basis in place so that Basis(Groebner(I)) eq GroebnerBasis(I); returns true. Interestingly, the syntax is not Groebner(~I), which is what one would expect for a call-by-reference, modifying the object in place. But that seems to be a design decision that the user-defined ideal generators are not an immutable attribute of the ideal, so GroebnerBasis also changes the ideal generators in place. --David --~--~-~--~~~---~--~~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-devel] Re: Why is the Groebner basis not an ideal
Dear Martin, On 24 Jan., 00:50, Martin Albrecht <[EMAIL PROTECTED]> wrote: > > This looks strange to me (close to a bug). > > This is not a bug but a deliberate design decision that an ideal is a distinct > mathematical object from a set of polynomials spanning the ideal. OK, as a conscious decision it is certainly justified. Of course, mathematically you are right that an object and a particular basis of that object are two different things. Only i was surprised, because i grew up with Singular and not with Magma... Yours Simon --~--~-~--~~~---~--~~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-devel] Re: Why is the Groebner basis not an ideal
Personally I think it makes sense that it is not an ideal, but that might be from my early exposure to Magma in this context. I think of a Groebner basis with respect to different orderings as properties of particular ideals - i.e. the same ideal can have many different Groebner bases, which might be useful in different contexts, so as objects they should be associated with ideals but not ideals themselves. cheers, Marshall Hampton On Jan 23, 5:50 pm, Martin Albrecht <[EMAIL PROTECTED]> wrote: > > This looks strange to me (close to a bug). > > This is not a bug but a deliberate design decision that an ideal is a distinct > mathematical object from a set of polynomials spanning the ideal. We had some > discussion about this a while ago off list: > > -- Forwarded Message -- > > Subject: I.groebner_basis return type > Date: Friday 20 October 2006 > From: Martin Albrecht <[EMAIL PROTECTED]> > To: William Stein <[EMAIL PROTECTED]> > > Quick question: I think I.groebner_basis() should return an ideal not a > Sequence, agreed? > [ I definitely do not agree. A groebner basis *is* a finite > (ordered?) list of elements of a polynomial ring. An ideal is infinite. > They are completely different objects. > > Okay, this was probably not a quick question so let me elaborate this: A > Gröbner Basis is a finite *description* of an ideal (not necessary ordered > btw.) with some special properties. If you compute a Gröbner basis you are > certainly interested in the ideal the Gröbner basis generates. You are right > that by definition a Gröbner basis is a finite set of polynomials but this > finite set has some property with respect to the ideal it represents and > these properties make it interesting. > > My proposal was inspired by lines like this: > > Ideal(Ideal(I.reduced_basis()).transformed_basis("fglm")).reduced_basis() > > Martin > > Btw.: Singular returns an ideal while MAGMA returns a Sequence. > > sage: I._singular_().groebner().type() > 'ideal' > > sage: I._magma_().GroebnerBasis().Type() > SeqEnum > > - > > -- > name: Martin Albrecht > _pgp:http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99 > _www:http://www.informatik.uni-bremen.de/~malb > _jab: [EMAIL PROTECTED] --~--~-~--~~~---~--~~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-devel] Re: Why is the Groebner basis not an ideal
> This looks strange to me (close to a bug). This is not a bug but a deliberate design decision that an ideal is a distinct mathematical object from a set of polynomials spanning the ideal. We had some discussion about this a while ago off list: -- Forwarded Message -- Subject: I.groebner_basis return type Date: Friday 20 October 2006 From: Martin Albrecht <[EMAIL PROTECTED]> To: William Stein <[EMAIL PROTECTED]> Quick question: I think I.groebner_basis() should return an ideal not a Sequence, agreed? [ I definitely do not agree. A groebner basis *is* a finite (ordered?) list of elements of a polynomial ring. An ideal is infinite. They are completely different objects. Okay, this was probably not a quick question so let me elaborate this: A Gröbner Basis is a finite *description* of an ideal (not necessary ordered btw.) with some special properties. If you compute a Gröbner basis you are certainly interested in the ideal the Gröbner basis generates. You are right that by definition a Gröbner basis is a finite set of polynomials but this finite set has some property with respect to the ideal it represents and these properties make it interesting. My proposal was inspired by lines like this: Ideal(Ideal(I.reduced_basis()).transformed_basis("fglm")).reduced_basis() Martin Btw.: Singular returns an ideal while MAGMA returns a Sequence. sage: I._singular_().groebner().type() 'ideal' sage: I._magma_().GroebnerBasis().Type() SeqEnum - -- name: Martin Albrecht _pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99 _www: http://www.informatik.uni-bremen.de/~malb _jab: [EMAIL PROTECTED] --~--~-~--~~~---~--~~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~--~~~~--~~--~--~---
[sage-devel] Re: Why is the Groebner basis not an ideal
> I am very surprized that I.groebner_basis() does not return an ideal. I don't think it should give back an ideal since a Grobner basis is a particular basis for an ideal (particularly the one you started with). sage: R. = PolynomialRing(QQ) sage: I = R.ideal(a*b-1, c*d-1) sage: J = R.ideal(I.groebner_basis()) sage: I == J True --Mike P.S. It is better not to use strings everywhere but instead use the actual variables. > Is it really needed to say: > sage: J=R.ideal(I.groebner_basis()) > sage: type(J) > 'sage.rings.polynomial.multi_polynomial_ideal.MPolynomialIdeal'> > > This looks strange to me (close to a bug). > > Yours > Simon > > > > --~--~-~--~~~---~--~~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~--~~~~--~~--~--~---