# Characters and number fields

Hello!

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

A=DirichletGroup(7)
K.<a>=NumberField(cyclotomic_polynomial(6))
R=K.maximal_order()


Then I take a character, namely

character=A
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 close merge delete

Sort by » oldest newest most voted

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())
sage: R=K.maximal_order()

sage: A=DirichletGroup(7)
sage: character=A
sage: character(3) in R.fractional_ideal(a)
True


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())
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...

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:

K.<a>=CyclotomicField(6)
R=K.maximal_order()

A=DirichletGroup(7,K)

character=A

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! :-)