Ask Your Question

siggytm's profile - activity

2015-09-03 19:06:19 +0200 commented answer Can't construct automorphisms of p-adic fields

Thank you! That's a nice easy workaround.

2015-09-03 19:06:15 +0200 received badge  Scholar (source)
2015-09-03 00:40:36 +0200 asked a question Can't construct automorphisms of p-adic fields

I'm trying to construct automorphisms of finite extensions of $\mathbb Q_p$ and getting a funny error. Here's a prototypical example:

Evaluating the cyclotomic polynomial $x^4 + x^3 + x^2 + x + 1$ at $x+1$ gives an Eisenstein polynomial for the prime $p=5$. If $\pi$ is a root of $(x+1)^4 + (x+1)^3 + (x+1)^2 + (x+1) + 1$ then $\pi+1$ will be a primitive 5th root of unity.

K.<pi> = Qp(5).ext(sum((1+x)^i for i in range(5)))

So $K=\mathbb Q_p(\zeta_5)$ with uniformizer $\pi=\zeta_5-1$. Now I want to define the automorphism $\tau:\zeta_5\mapsto\zeta_5^2$. We have $\tau(\pi)=(1+\pi)^2-1=2\pi+\pi^2$. But the following

tau = K.hom([2*pi+pi^2])

results in the error TypeError: images do not define a valid homomorphism. What's going on? Are hom's of $p$-adic fields not really implemented yet or am I doing something wrong?

2015-09-02 23:45:41 +0200 answered a question Finding p-adic valuations in high degree cyclotomic fields

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