Fake \(p\)-adic extensions

Let \(K\) be a \(p\)-adic number field. For our project we need to be able to compute with Galois extensions \(L/K\) of large degree.

At the moment, computations with general extensions of \(p\)-adic fields of large degree are still problematic. In particular, it seems difficult to obtain results which are provably correct. For this reason we do not work which \(p\)-adic numbers at all. Instead, we use our own class FakepAdicCompletion, in which a \(p\)-adic number field is approximated by a pair \((K_0, v_K)\), where \(K_0\) is a suitable number field and \(v_K\) is a \(p\)-adic valuation on \(K_0\) such that \(K\) is the completion of \(K_0\) at \(v_K\).

In this module we define a class FakepAdicExtension, which realizes a finite extension \(L/K\) of \(p\)-adic number fields. Both fields \(K\) and \(L\) are realized as objects in the class FakepAdicCompletion, the embedding \(K\to L\) as an object of FakepAdicEmbedding.

AUTHORS:

  • Stefan Wewers (2017-08-30): initial version

EXAMPLES:

TO DO:

  • the method polynomial should give an exact result, namely a object of some class FakepAdicPolynomial
class mclf.padic_extensions.fake_padic_extensions.FakepAdicExtension(phi)

Bases: SageObject

Return the extension of \(p\)-adic number fields corresponding to an embedding.

INPUT:

  • phi – an embedding of \(p\)-adic number fields

OUTPUT: the extension \(L/K\) where \(K\) is the domain and \(L\) the target of \(phi\)

base_field()

Return the base field.

degree()

Return the degree of the extension.

extension_field()

Return the extension field.

inertia_degree()

Return the inertia degree of the extension.

normalized_valuation()

Return the normalized valuation.

p()

Return the prime \(p\).

polynomial()

Return the minimal polynomial of a generator of this extension.

OUTPUT:

A monic, integral and irreducible polynomial \(P\) over the number field underlying the base field of this extension.

Let \(L/K\) be our extension of \(p\)-adic number fields. Then \(P\) is a monic polynomial over the number field \(K_0\) underlying \(K\), of degree \([L:K]\), with the following properties:

  • \(P\) is integral and irreducible over \(K\)
  • \(P\) is the minimal polynomial of a prime element \(\pi\) of \(L\) such that \(L = K[\pi]\).

Note, however, that \(\pi\) is in general not equal to the canonical absolute generator \(\pi_L\) of \(L/\mathbb{Q}_p\). Moreover, in general no root of \(P\) is contained in the number field \(L_0\) underlying \(L\).

TODO:

\(P\) should be naturally equipped with

ramification_degree()

Return the ramification degree of the extension.

subextension(alpha, d)

Return a subextension of given degree, containing (approximately) a given element.

INPUT:

  • alpha – an (approximate) element of this extension field
  • d – a positive integer

OUTPUT:

a subextension of degree \(d\) which (approximately) contains alpha, or None if no such subextension exists.

Let \(L/K\) be the given extension of \(p\)-adic number fields. Then we are looking for a subextension \(K \subset M \subset L\) such that \([M:K] = d\). If \(\alpha\) is given exactly, then we demand that \(\alpha\in M\). If \(\alpha\) is given by an approximation \((\alpha_0,N)\) then we demand that there exists an element \(\alpha_1\in M\) such that

\[v_M(\alpha_1-\alpha_0) \geq N`.\]

Here the valuation \(v_M\) is normalized such that \(v_M(p)=1\).

valuation()

Return the valuation of the extension.