-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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! Best, Alex - -- Alexandru Ghitza Assistant Professor Department of Mathematics Colby College Waterville, ME 04901 http://bayes.colby.edu/~ghitza/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFH+9U1dZTaNFFPILgRAhUfAJ0X846IOwIezS9TyJcunyWgQJ6shwCgmgCW KOsZVf/0ojPDm61RsYalwko= =611u -----END PGP SIGNATURE----- --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---