On 7 May 2014 12:06, <ad14...@bristol.ac.uk> wrote: > I think I have something about the generator thing : > > sage: N=25 > sage: K = CyclotomicField(N) > sage: ZK.<x> = K.ring_of_integers() > sage: ZK > Maximal Order in Cyclotomic Field of order 25 and degree 20 > sage: x > 1 > sage: y = ZK.gen(0) > sage: y > 1 > sage: z = ZK.gen(1) > sage: z > zeta25 > sage: z2 = ZK.gen(2) > sage: z2 > zeta25^2 > sage: ZK.<x,y> = K.ring_of_integers() > sage: x > 1 > sage: y > zeta25 > > > It makes more sense because it is a vector space, but that's not really what > I expect when I ask for a generator of the ring of integers. Moreover, as > zeta25 has order 25, I don't understand what is zeta0...
I see no zeta0! > OK, this explains what is going on. The ring of integers is (as with any order in the field) a free Z-module, and its gens are the Z-module gens. So having 1 as the first of these is no surprise: sage: N=25 sage: K = CyclotomicField(N) sage: ZK.<x> = K.ring_of_integers() sage: ZK.gens() [1, zeta25, zeta25^2, zeta25^3, zeta25^4, zeta25^5, zeta25^6, zeta25^7, zeta25^8, zeta25^9, zeta25^10, zeta25^11, zeta25^12, zeta25^13, zeta25^14, zeta25^15, zeta25^16, zeta25^17, zeta25^18, zeta25^19] As expected since the ring of integers is Z[zeta15] so has a power basis. > > > On Tuesday, 6 May 2014 17:06:10 UTC+1, ad1...@bristol.ac.uk wrote: >> >> Tanks for your help. The "lambda: True" thing is really odd but seems to >> work... I will try to find how PARI and Sage (cyclotomic) ring of integers >> are implemented. >> >> On Tuesday, 6 May 2014 16:24:26 UTC+1, John Cremona wrote: >>> >>> On 6 May 2014 16:11, <ad1...@bristol.ac.uk> wrote: >>> > I'm sorry but I use the notebook / worksheet working on virtual box so >>> > copy-paste the file is long and painful. So actually I wrote it >>> > manually, >>> > that's why there is a mistake on "Fractional". My version is 5.13. I >>> > know I >>> > could have use K.ring_of_integers(), but I don't want that : I don't >>> > want >>> > sage to compute the ring of integer when I know it. >>> >>> The ring of integers is computed by the pari library. I don't know if >>> pari checks to see if the field is cyclotomic and uses a short-cut if >>> it is. We should check that, and of not then Sage could put in the >>> shortcut instead; then you would not have to do what you were doing. >>> >>> > >>> > I restarted the notebook, and tried once more to have a complete >>> > session. I >>> > admit I was unable to reproduce the factor problem, but there is still >>> > something odd : x should not be 1. >>> >>> Agree, and that is a bug in the way that the syntax ZK.<x> = ... is >>> interpreted. Try replacing that line with >>> >>> sage: ZK = ZZ[zeta] >>> sage: x = ZK.gen(0) >>> sage: x >>> zeta0 >>> >>> but even more simply set >>> >>> sage: ZK = K.order(zeta) >>> >>> (but there may be a delay when Sage first decides that it needs to test >>> sage: ZK.is_maximal() >>> True >>> >>> though you could try to cheat like this >>> >>> sage: ZK=K.order(zeta) >>> sage: ZK.is_maximal = lambda: True >>> sage: ZK.is_maximal() >>> True >>> >>> John >>> >>> > >>> > sage: N=25 >>> > sage: K.<zeta> = CyclotomicField(N) >>> > sage: n = K.degree() >>> > sage: ZK.<x> = ZZ[zeta] >>> > sage: ZK >>> > Order in Number Field in zeta0 with defining polynomial x^20 + x^15 + >>> > x^10 + >>> > x^5 + 1 >>> > sage: x >>> > 1 >>> > sage: zeta0 >>> > Traceback (most recent call last): >>> > ... >>> > NameError: name 'zeta0' is not defined >>> > sage: x^2-1 >>> > 0 >>> > >>> > >>> > On Tuesday, 6 May 2014 15:12:32 UTC+1, John Cremona wrote: >>> >> >>> >> The normal way to get at the ring of integers would be to write ZK = >>> >> K.ring_of_integers(). You have defined two separate algebraic >>> >> objects, a ring and a field, and it is not clear what the relationship >>> >> is beteween them. >>> >> >>> >> You should have said what version of Sage you are running. In >>> >> 6.2.rc2, at least, the word "fractional" is spelled correctly. >>> >> >>> >> What you posted cannot be a complete Sage sessions, since you do not >>> >> define zeta0, and the ideal I you define is not the 20th power of >>> >> anything. In future you should post exactly what you have in a >>> >> complete session. >>> >> >>> >> John Cremona >>> >> >>> >> On 6 May 2014 14:52, <ad1...@bristol.ac.uk> wrote: >>> >> > >>> >> > >>> >> > Hi. >>> >> > >>> >> > I have some issue with ideals in number fields. I wanted to test >>> >> > something >>> >> > about cyclotomic polynomials, so I had the following result : >>> >> > >>> >> > sage: N = 25 >>> >> > sage: K.<zeta> = CyclotomicField(N) >>> >> > sage: n = K.degree() >>> >> > sage: ZK = ZZ[zeta] >>> >> > sage: ZK >>> >> > Order in Number Field in zeta0 with defining Polynomial >>> >> > x^20+x^15+x^10+x^5+1 >>> >> > >>> >> > sage: I=ZK.ideal(5,zeta-1) >>> >> > sage: I >>> >> > Fractionnal ideal (5,zeta0-1) >>> >> > >>> >> > sage: I.factor() >>> >> > (Fractionnal ideal (5,zeta0-1))^20 >>> >> > >>> >> > sage: I==I^20 >>> >> > False >>> >> > >>> >> > sage: zeta0 >>> >> > 1 >>> >> > >>> >> > sage: zeta >>> >> > zeta >>> >> > >>> >> > I think there is a problem with the zeta0 (actually I tried to >>> >> > enforce >>> >> > the >>> >> > name of the ZK variable by ZK.<zeta_int> = ZZ[zeta] or ZK.<zeta0> = >>> >> > ZZ[zeta] or ZK.<zeta> = ZZ[zeta] but that doesn't work : it gives >>> >> > the >>> >> > same >>> >> > result. >>> >> > >>> >> > -- >>> >> > You received this message because you are subscribed to the Google >>> >> > Groups >>> >> > "sage-support" group. >>> >> > To unsubscribe from this group and stop receiving emails from it, >>> >> > send >>> >> > an >>> >> > email to sage-support...@googlegroups.com. >>> >> > To post to this group, send email to sage-s...@googlegroups.com. >>> >> > Visit this group at http://groups.google.com/group/sage-support. >>> >> > For more options, visit https://groups.google.com/d/optout. >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> > Groups >>> > "sage-support" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> > an >>> > email to sage-support...@googlegroups.com. >>> > To post to this group, send email to sage-s...@googlegroups.com. >>> > Visit this group at http://groups.google.com/group/sage-support. >>> > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "sage-support" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-support+unsubscr...@googlegroups.com. > To post to this group, send email to sage-support@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-support. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.