# Finding p-adic valuations in high degree cyclotomic fields

I'm looking at a cyclotomic field ${\bf Q}(\mu_{p(p-1)})$ for $p$ a prime around 50 and so this field has fairly large degree. In this field, $p$ has ramification index $p$ and has $p-1$ primes sitting above it.

I'm trying to compute the valuation of an element in this field at any of these primes above $p$. Using commands like "primes_above" won't seem to work as the computer just hangs presumably because this extensions degree is just too big.

Questions:

1) Is there another way to compute $p$-adic valuations in this field?

2) Locally, this is only a $p$-th degree extension of ${\bf Q}_p$. So I created a p-adic field by using pAdicField(p).ext(1+(x+1)+(x+1)^2+...+(x+1)^(p-1)) to create this local p-th degree extension of Q_p. However, I can't find any way to map my global elements in ${\bf Q}(\mu_{p(p-1)})$ to this local field. Any ideas on how to proceed along these lines?

edit retag close merge delete

Sort by » oldest newest most voted

You can define a homomorphism from ${\bf Q}(\mu_{p(p-1)})$ to ${\bf Q}_p(\mu_p)$. Here's an example, using $p=47$.

p=47
K.<zeta> = CyclotomicField(p*(p-1))  # this is the field you're interested in.
Khat.<pi> = Qp(p).ext(sum((1+x)^i for i in range(p)))  # its completion
a = Khat.residue_field().primitive_element()  # this is a primitive (p-1)-th root of unity in the residue field


In the example case with $p=47$, we get $a=5$.

zeta1 = Khat.teichmuller(ZZ(a))  # this is a primitive (p-1)-th root of unity in Khat.


I don't know why you need ZZ(a) instead of just a. I get 5 + O(pi) when I do Khat.teichmuller(a).

zeta2 = 1+pi  # this is a primitive p-th root
f = K.hom([zeta1*zeta2])


This f will be the homomorphism that sends the generator of $K$, above called zeta, to zeta1*zeta2, which is a primitive $p(p-1)$-th root of unity in $\hat K$. Now you can do f(something in K).valuation().

more