Ask Your Question

Characters and number fields

asked 2010-10-19 11:22:52 +0200

updated 2021-07-15 08:17:46 +0200

FrédéricC gravatar image


I have again a question. Could you help me? I defined the Q(6th primitive unity) by


Then I take a character, namely

print character(3)

This character(3) is zeta6, so I would think that the following should be true:

 character(3) in R.fractional_ideal(a)

But it is false, I think because we defined Q(6th primitive unity) without using zeta6. Mathemathically this is true, so could you help me to persuade the computer to recognize such a relation? Thank you! :-)

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2010-10-19 14:31:12 +0200

niles gravatar image

Checking the documentation for NumberField (you can use "NumberField?" to print the documentation from within sage), I found an optional argument embedding which specifies the embedding into another field -- so you have to specify which zeta6 you mean:

Here are the roots over CC:

sage: cyclotomic_polynomial(6).base_extend(CC).roots()
[(0.500000000000000 - 0.866025403784439*I, 1), (0.500000000000000 + 0.866025403784439*I, 1)]

Here we use the first root for our embedding:

sage: K.<a>=NumberField(cyclotomic_polynomial(6), embedding=cyclotomic_polynomial(6).base_extend(CC).roots()[0][0])
sage: R=K.maximal_order()

sage: A=DirichletGroup(7)
sage: character=A[1]
sage: character(3) in R.fractional_ideal(a)

Coercing to CC shows what embedding we're using:

sage: CC(a)
0.500000000000000 - 0.866025403784439*I

You can also use the other root of the cyclotomic polynomial for your embedding:

sage: K.<a>=NumberField(cyclotomic_polynomial(6), embedding=cyclotomic_polynomial(6).base_extend(CC).roots()[1][0])
sage: CC(a)
0.500000000000000 + 0.866025403784439*I

You may also be interested in CyclotomicField, which I came across while I was looking at the documentation for NumberField -- it seems to construct the nth cyclotomic field with canonical embedding to CC automatically...

edit flag offensive delete link more


Hello Niles!

Thank you for your answer! Tomorrow I will read it more carefully, and think the whole business once again, now I am very tired... :-) With my colleague we worked on this very hard and just now we found another solution. But now I am a bit confused, whether it was a good solution or not? Here what we did:




print character(3) 

character(3) in R

Here, in A=DirichletGroup(7,K) means that the Dirichlet character must take their value from the integral domain K, and then everything works perfectly... I really hope we didn't make a fault, by not specifying the value of zeta! (I think not, but I will think it over tomorrow...)

Thanks again! :-)

Katika gravatar imageKatika ( 2010-10-19 14:49:26 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2010-10-19 11:22:52 +0200

Seen: 283 times

Last updated: Oct 19 '10