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... On Tuesday, 6 May 2014 17:06:10 UTC+1, [email protected] 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, <[email protected]> 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, <[email protected]> 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 [email protected]. >> >> > To post to this group, send email to [email protected]. >> >> > 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 [email protected]. >> > To post to this group, send email to [email protected]. >> > 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
