On 9/18/07, Robert Bradshaw <[EMAIL PROTECTED]> wrote: > > On Sep 18, 2007, at 12:25 AM, John Cremona wrote: > > > It's ok for sqrt(2).parent() to be an order, but what about > > sqrt(1/2).parent() ? Would that be the field? Not very nice since it > > will not be obvious from the form of the input whether or not the > > symbolic expression is integral. > > sqrt(1/2) = (1/2).sqrt(extend=True) would live in the field. > > > There is a whole can of worms here just waiting to be released, under > > the heading "nested radicals". > > Yes, I think we could handle it gracefully (as above), but perhaps > I'm overly optimistic. > > > Having said that, I do like the idea of generating number fields (as > > opposed to orders) by giving generators in a natural way. > > > > John > > I think QQ[sqrt(2)] should be the number field, and ZZ[sqrt(2)] the > order. >
so would ZZ["expression"] give an error if "expression" was not an algebraic integer? So (odd the top of my head) ZZ[(1+2^(1/3)+2^(2/3))/3] would be wrong, but ZZ[(1+10^(1/3)+10^(2/3))/3] would be ok? I'm happy with that if your proposed implementation can handle it ok! John > > > > On 9/18/07, Robert Bradshaw <[EMAIL PROTECTED]> wrote: > >> > >> On Sep 17, 2007, at 9:00 PM, William Stein wrote: > >> > >>> This is being cc'd to sage-devel, since no reason not to. It's me > >>> and Robert Bradshaw working on reworking the algebraic number > >>> theory code in Sage (we've done a lot now). > >>> > >>> On 9/17/07, Robert Bradshaw <[EMAIL PROTECTED]> wrote: > >>> BTW, I've been working on quadratic number field elements... > >>> > >>> That's a good idea. > >>> I have been working on grant proposals all day long. > >>> I'm going to switch gears and work on the ANT package > >>> soon. I'll probably work only on getting all the doctests > >>> not in the number_field directory to pass, since much > >>> was broken by my changes. > >>> > >>> I also want to make ZZ[a,b,c] > >>> work, if a,b,c are algebraic integers. > >>> > >>> It would also be really neat to have a function that can > >>> compute the minimal polynomial of a symbolic element: > >>> sage: a = sqrt(2) > >>> sage: a.minpoly() > >>> x^2 - 2 > >>> sage: a = 5^(1/3) > >>> sage: a.minpoly() > >>> x^3 - 5 > >>> > >>> One possibility would be to numerically approximate a, > >>> use pari's algdep to get a candidate minpoly f, then > >>> do bool(f(a) == 0). If it works, we're golden. If not, > >>> we give up. Since bool(f(a) == 0) errors on the side of > >>> caution, this would probably be fine. > >> > >> That sounds like a really slick idea. > >> > >>> With that, we could do > >>> > >>> ZZ[sqrt(2), 5^(1/7), sqrt(7)] > >>> > >>> and it would work. Thoughts? > >> > >> I think this would make for a really natural way of constructing > >> number fields. I am still of the mind that I would like sqrt > >> (2).parent > >> () to be an order in a number field (with an embedding into C > >> choosing the positive root), assuming the coercion model was robust > >> enough to find resonable compositums of these things. > >> > >> - Robert > >> > >> > >>> > >> > > > > > > -- > > John Cremona > > > > > > > > -- John Cremona --~--~---------~--~----~------------~-------~--~----~ 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://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---