Processing math: 100%
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can define a homomorphism from Q(μp(p1)) to Qp(μ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(p1)-th root of unity in ˆK. Now you can do f(something in K).valuation().