Infinite Completions of Number Fields

Infinite Completions of Number Fields

This file implements the function infinite_completions(), which computes the infinite completions of a number field \(K\), i.e. the real embeddings \(K \to \RR\) and the pairs of complex embeddings \(K \to \CC\). The domains of the embeddings we return are interval fields (RIF and CIF). As trac-ticket #31604 describes, the method K.places() of number fields claims to provide embeddings into interval fields in its documentation, but the code does not actually do this. As this ticket is not yet resolved in SageMath version 9.2, we use the function below instead for our adèles and idèles.

AUTHORS:

  • Mathé Hertogh (2021-07): initial version

adeles.completion.infinite_completions(K, fields_only=False, embeddings_only=False)

Return the infinite completions of the number field K

INPUT:

  • K – a number field

  • fields_only - boolean (default: False); if True, only return the fields, not the embeddings.

  • embeddings_only - boolean (default: False); if True, only return the embeddings, not the fields.

OUTPUT:

A list of pairs \((L, \phi)\) with \(L\) equal to RIF or CIF and \(\phi\) an embedding \(K \to L\). The embeddings returned correspond to the infinite primes of \(K\) and they are returned in the same order as K.places().

Depending on fields_only and embeddings_only, only the fields \(L\) or the embeddings \(\phi\) are returned. If they are both set to True, an exception is raised.

EXAMPLES:

sage: infinite_completions(QQ)
[(Real Interval Field with 53 bits of precision,
  Ring morphism:
    From: Rational Field
    To:   Real Interval Field with 53 bits of precision
    Defn: 1 |--> 1)]
sage: K.<a> = NumberField(x^3+2)
sage: infinite_completions(K)
[(Real Interval Field with 53 bits of precision,
  Ring morphism:
    From: Number Field in a with defining polynomial x^3 + 2
    To:   Real Interval Field with 53 bits of precision
    Defn: a |--> -1.259921049894873?),
 (Complex Interval Field with 53 bits of precision,
  Ring morphism:
    From: Number Field in a with defining polynomial x^3 + 2
    To:   Complex Interval Field with 53 bits of precision
    Defn: a |--> 0.62996052494743671? + 1.0911236359717214?*I)]

We can obtain only the embeddings as follows:

sage: K.<sqrt2> = NumberField(x^2-2)
sage: infinite_completions(K, embeddings_only=True)
[Ring morphism:
   From: Number Field in sqrt2 with defining polynomial x^2 - 2
   To:   Real Interval Field with 53 bits of precision
   Defn: sqrt2 |--> -1.414213562373095?,
 Ring morphism:
   From: Number Field in sqrt2 with defining polynomial x^2 - 2
   To:   Real Interval Field with 53 bits of precision
   Defn: sqrt2 |--> 1.414213562373095?]

And we obtain only the fields as follows:

sage: K.<a> = NumberField(x^8-3*x^5+1)
sage: infinite_completions(K, fields_only=True)
[Real Interval Field with 53 bits of precision,
 Real Interval Field with 53 bits of precision,
 Complex Interval Field with 53 bits of precision,
 Complex Interval Field with 53 bits of precision,
 Complex Interval Field with 53 bits of precision]
sage: K.signature() # the above is consistent with K's signature:
(2, 3)