[sage-devel] Re: Why is the Groebner basis not an ideal

2008-01-25 Thread David Kohel

> 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

2008-01-24 Thread Simon King

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

2008-01-23 Thread mhampton

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

2008-01-23 Thread Martin Albrecht

> 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

2008-01-23 Thread Mike Hansen

> 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
-~--~~~~--~~--~--~---