Fake \(p\)-adic embeddings

Let \(K\) and \(L\) be \(p\)-adic number fields. In this module we define a class FakepAdicEmbedding whose objects represent embeddings \(\phi:K\to L\) over \(\mathbb{Q}_p\).

Here the \(p\)-adic number fields \(K\) and \(L\) are objects of the class FakepAdicCompletion. This means that \(K\) and \(L\) represented as pairs \((K_0,v_K)\) and \((L_0,v_L)\), where e.g. \(K_0\) is a number field and \(v_K\) a \(p\)-adic valuation on \(K_0\) such that \(K\) is the completion of \(K_0\) at \(v_K\). In fact, we do not work with actual \(p\)-adic numbers.

Given an embedding \(\phi:K\to L\), there need not exist any embedding \(K_0\to L_0\) of the underlying number fields. Therefore, the embedding \(\phi\) has to be construced in a rather indirect way. Recall that \(K_0\) and \(L_0\) are absolute number fields generated by prime elements \(\pi_K\) and \(\pi_L\) over \(\mathbb{Q}\) (with respect to \(v_K\) and \(v_L\)). So an embedding \(\phi:K\to L\) is uniquely determined by a root of the absolute minimal polynomial \(P_K\) of \(\pi_K\) over \(\mathbb{Q}\) in \(L\). Such a root may be represented by a limit pseudo valuation \(v\) on the polynomial ring \(L_0[x]\) with \(v(P_K)=\infty\).

AUTHORS:

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

EXAMPLES:

TO DO:

class mclf.padic_extensions.fake_padic_embeddings.FakepAdicEmbedding(K, L, approximation=None)

Bases: SageObject

Return an embedding of two \(p\)-adic number fields.

INPUT:

  • K, L – two \(p\)-adic number fields, given as objects of FakepAdicCompletion
  • approximation - an approximation of the desired emdding, or None (default: None)

OUTPUT: an embedding of \(K\) into \(L\) which is approximated by approximation, or None if no such embedding exists.

WARNING: to return None doesn’t make sense, because __init__ returns an instance of FakepAdicEmbedding.

Internally, the embedding \(\phi\) is represented by a limit pseudo valuation \(v\) on \(L_0[x]\) such that \(v(P_K)=\infty\). Here \(K_0\) and \(L_0\) are the algebraic number fields underlying \(K\) and \(L\) and \(P_K\) is the minimal valuation of the canonical generator of \(K_0\) over \(\mathbb{Q}\).

An approximation of \(\phi\) is any discrete valuation \(v_0\) on \(L_0[x]\) which approximates \(v\). This may actually be \(v\) itself.

Note that the resulting embedding may not be unique, in which case an arbitrary embedding is chosen.

eval(alpha, precision=2)

Evaluate this embedding on an element of this domain, or on a polynomial.

INPUT:

  • alpha – an element of the domain of this embedding, or a polynomial over the underlying number field of the domain
  • precision – a positive integer, or None (default: None)

OUTPUT:

the image of alpha under this embedding \(\phi:K\to L\), with the guaranteed precision precision.

The element \(\alpha\) of \(K\) may be given as an element of the number field \(K_0\) underlying \(K\). In this case the image \(\phi(\alpha)\) will be given as an element of the number field \(L_0\) underlying \(L\), which is an approximation of the true value of \(\phi(\alpha)\) modulo \(p^N\), where \(N\) is the guaranteed precision. If precision is given then \(N\) is larger or equal to precision. Otherwise the internal precision of \(\phi\) is used (which only guarantees that \(\phi\) is uniquely determined).

The element \(\alpha\) in \(K\) may also be given by a …

improve_approximation(N=None)

Improve the underlying approximation of this embedding.

INPUT:

  • N – a positive integer, or None (default: None)

The effect of this method is that the underlying approximation of the limit valuation representing this embedding is improved. If N is given then this improvement will guarantee that for any integral element \(\alpha\) of the number field \(K_0\) underlying the domain \(K\) of this embedding, the value of self.eval(alpha) will agree with the true value \(\phi(\alpha)\) modulo \(p^N\).