# find characteristic polynomial in a tower of extensions over Qp

We have a tower of extensions W/T/U where U is an unramified extension of $Q_p$, T is given by an eisenstein polynomial $f\in U[x]$ and W is given by an eisenstein polynomial $g\in T[x]$. Hence T is an $deg(g)deg(f)-$dimensional $U-$vector space with basis consisting of products $\alpha^i \beta^j$ such that $0\leq i < deg(f), 0\leq j < deg(g)$, where $\alpha$ is a root of $f$ and $\beta$ is a root of $g$.

Let $\gamma \in W$ be arbitrary. The goal is to compute the matrix of multiplication by $\gamma$ wrt the above $U-$basis. The issue is that the field $W$ cannot be created as an extension of $T$ in Sage, it seems that at the moment you cannot create an extension given by an eisenstein polynomial if T is already an eisenstein extension.

Example of how it does not work:

sage: U = Qq(2^2,names="u")

sage: R.<x> = U[]

sage: f = x^2 - U.uniformizer()

sage: T = U.extension(f,names="alpha")

sage: S.<x> = T[]

sage: g = x^2-T.uniformizer()

sage: W = T.extension(g,names="beta")

TypeError: Unable to coerce -alpha to a rational

We can create W as a quotient ring T[x]/(g), but I don't know how to get coefficients of $\gamma$ w.r.t. the power basis $1,\bar{x},\bar{x}^2,\dots,\bar{x}^{deg(g)-1}$.

sage: U = Qq(2^2,names="u")

sage: R.<x> = U[]

sage: f = x^2 - U.uniformizer()

sage: T = U.extension(f,names="alpha")

sage: S.<x> = T[]

sage: g = x^2-T.uniformizer()

**sage: W = S.quotient_ring(g)
sage: V, map_to_W, map_from_W, = W.free_module()**
NotImplementedError:

If the above were possible, we could simply map $\gamma$ to the free module, then find coefficients wrt the power basis. Then we could do the same thing for each coefficient with W replaced by T to get the U-coefficients.