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

Reply via email to