1 | initial version |

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

.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.