Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
the default behaviour of reduce() for ideals
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  3 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Thomas Feulner  
View profile  
 More options Jul 30 2012, 4:18 am
From: Thomas Feulner <thomas.feul...@uni-bayreuth.de>
Date: Mon, 30 Jul 2012 01:18:02 -0700 (PDT)
Local: Mon, Jul 30 2012 4:18 am
Subject: the default behaviour of reduce() for ideals

Hi,

in the definition of a QuotientRing there is the following assumption

    ASSUMPTION:

    ``I`` has a method ``I.reduce(x)`` returning the normal form
    of elements `x\in R`. In other words, it is required that
    ``I.reduce(x)==I.reduce(y)`` `\iff x-y \in I`, and
    ``x-I.reduce(x) in I``, for all `x,y\in R`.

On the other hand, the default definition of reduce in
sage/rings/ideal.py says
    def reduce(self, f):
        return f       # default

Wouldn't it be better to raise a NotImplementedError?

These are the consequences:

sage: Z16x.<x> = Integers(16)[]
sage: GR.<y> =  Z16x.quotient(x**2 + x+1 )
sage: I = GR.ideal(4)
sage: I.reduce(GR(6))
6 # should be reduced mod 4

another example is
sage: J = Z16x.ideal([x+1, x+1]) # just to avoid that the ideal is
identified as a principal ideal
sage: R.<z> = Z16x.quotient(J)
sage: R(x) # should be 15

Best,
Thomas


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marco Streng  
View profile  
 More options Jul 30 2012, 5:36 am
From: Marco Streng <marco.str...@gmail.com>
Date: Mon, 30 Jul 2012 11:36:06 +0200
Local: Mon, Jul 30 2012 5:36 am
Subject: Re: [sage-devel] the default behaviour of reduce() for ideals
2012/7/30 Thomas Feulner <thomas.feul...@uni-bayreuth.de>:

It would be safer, but it sounds like it would break a lot of code.
Right now, reduce does exactly what it says:
"""
        Return the reduction of the element of `f` modulo the ideal
        `I` (=self). This is an element of `R` that is
        equivalent modulo `I` to `f`.
"""

If you don't get any objections, you could change this documentation
and add a deprecation warning to this default implementation. Then
later it can be changed to NotImplementedError.

> These are the consequences:

> sage: Z16x.<x> = Integers(16)[]
> sage: GR.<y> =  Z16x.quotient(x**2 + x+1 )
> sage: I = GR.ideal(4)
> sage: I.reduce(GR(6))
> 6 # should be reduced mod 4
> another example is
> sage: J = Z16x.ideal([x+1, x+1]) # just to avoid that the ideal is
> identified as a principal ideal
> sage: R.<z> = Z16x.quotient(J)
> sage: R(x) # should be 15

I'm fine with all the outputs above, though they can be improved.
However, I think the following is a bug:

sage: R(x+1) == 0
False

The only correct answer is "True". This goes wrong because the
"ASSUMPTION" that you quotes above is not satisfied. However, I would
trust R to be correct, because I never get to see the assumption, even
when I type

Z16x.quotient??
R??

Suggested fixes:
- add the assumption to the documentation of the quotient method of Z16x, or
- add some checks to the equality tests of QuotientRing, or
- kill the default implementation of reduce as you suggest (but do
deprecation first).

(or some combination of the above)

Best,
Marco


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marco Streng  
View profile  
 More options Aug 6 2012, 5:50 pm
From: Marco Streng <marco.str...@gmail.com>
Date: Mon, 6 Aug 2012 14:50:27 -0700 (PDT)
Local: Mon, Aug 6 2012 5:50 pm
Subject: Re: [sage-devel] the default behaviour of reduce() for ideals

I'm just letting the list know that there is a patch
at http://trac.sagemath.org/sage_trac/ticket/13345 deprecating the default
implementation of "Ideal_generic.reduce" in favour of NotImplementedError.

Op maandag 30 juli 2012 11:36:06 UTC+2 schreef Marco Streng het volgende:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »