On Apr 8, 2008, at 4:27 PM, Alex Ghitza wrote:
> Hi folks, > > On Sunday we had an interesting discussion on #sage-devel about the > current implementation of fractional ideals in Sage. This was spurred > mainly by #821, but went beyond the issues in that ticket. I am going > to try to summarize the main points of the discussion, first so > that we > have a record of it, and also so it can continue and we can see > what we > can/should do about it. > > 1. At the moment, NumberFieldFractionalIdeal inherits from > Ideal_generic, which David Harvey pointed out is *very bad*, since > fractional ideals are *not ideals*. Yes, the terminology is > confusing, > but we don't have the luxury of convincing Kummer or whoever came up > with it that it should be changed. > > 2. Another sketchy thing is that for a number field K, the method > ideal() overrides the ring ideal method and returns 0 or a fractional > ideal. Even if the objection from point 1 did not exist, this > behavior > is bad, because if I want to write a function that deals with > ideals in > rings, I would have to do something special if my ring is a number > field > (since ideal() does not have a consistent behavior). > > Here is, as far as I remember, what the irc discussion identified as > preferred behavior: > > (a) For any ring R, R.ideal([list of elements of R]) should return the > ideal of R which is generated by the elements in the list. This > should > in particular happen for a number field, i.e. if K is a number field > then K.ideal([list of elements of K]) should return either the > Principal > ideal generated by 0 or the Principal ideal generated by 1. > > (b) mathematically speaking, a fractional ideal is a rank one > projective > module over a Dedekind domain R; equivalently, it is a nonzero > finitely-generated R-submodule of the fraction field K=Frac(R). This > latter description might be more amenable to computation. I don't > think > we have Dedekind domains in Sage, so maybe we can just have this > work in > the main area of application (algebraic number theory), by having > fractional ideals in number fields. So if O is an order in a number > field K, we would like O.fractional_ideal([list of elements of K]) to > return the fractional ideal of O generated by the elements in the > list. > ~ For convenience, we might also want K.fractional_ideal([list of > elements of K]) to be an alias for OK.fractional_ideal([list of > elements > of K]), where OK is the ring of integers of K. > > Just getting all of this straightened out for rings of integers would > already be a serious but very worthwhile endeavor. > > Whoever was around #sage-devel when this was going on, please correct > anything that I might have misrepresented. Everybody else, please > comment! Alex, Strongly support everything you've said here, and thanks for taking the time to write this summary. (I'm slightly concerned about what should happen for non-maximal orders, but I can't quite remember how this is supposed to work mathematically....) 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 -~----------~----~----~----~------~----~------~--~---