Loading [MathJax]/jax/output/HTML-CSS/jax.js
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

answered 4 years ago

dan_fulea gravatar image

We can ask sage for all subfields, take then those that are totally real among them. This first try gives:

sage: var('x');
sage: L.<a> = NumberField(x^8-7)
sage: [F_data for F_data in L.subfields() if F_data[0].is_totally_real()]
[(Number Field in a0 with defining polynomial x,
  Ring morphism:
    From: Number Field in a0 with defining polynomial x
    To:   Number Field in a with defining polynomial x^8 - 7
    Defn: 0 |--> 0,
  None),
 (Number Field in a1 with defining polynomial x^2 - 7,
  Ring morphism:
    From: Number Field in a1 with defining polynomial x^2 - 7
    To:   Number Field in a with defining polynomial x^8 - 7
    Defn: a1 |--> -a^4,
  None)]

So the totally real subfields in the list come with their embeddings. I.e. the F_data is a tuple with three components, the pythonically 0.th component is the field.

The first field listed above is Q=Q(0), where 0 is the root of x, the second field is the field Q(7), where 7 (considered algebraically) is the root of x27. We want the maximal degree, so an idea is to sort w.r.t. the degrees and take the maximal degree. The code doing this is:

sage: var('x');
sage: L.<a> = NumberField(x^8-7)
sage: L_totally_real_subfields = [(F, emb) for (F, emb, _) in L.subfields() if F.is_totally_real()]
sage: L_totally_real_subfields.sort(key=lambda data: data[0].degree())
sage: L_totally_real_subfields[-1]
(Number Field in a1 with defining polynomial x^2 - 7,
 Ring morphism:
   From: Number Field in a1 with defining polynomial x^2 - 7
   To:   Number Field in a with defining polynomial x^8 - 7
   Defn: a1 |--> -a^4)

Let's "do the same" with some nice cyclotomic field...

sage: K.<z> = CyclotomicField(17)
sage: K_totally_real_subfields = [F for (F, emb, _) in K.subfields() if F.is_totally_real()]
sage: len(K_totally_real_subfields)
4
sage: K_totally_real_subfields.sort(key=lambda F: F.degree())
sage: K_totally_real_subfields[-1]
Number Field in z3 with defining polynomial x^8 + x^7 - 7*x^6 - 6*x^5 + 15*x^4 + 10*x^3 - 10*x^2 - 4*x + 1 with z3 = 1.864944458808712?
sage: _.defining_polynomial().roots(ring=QQbar, multiplicities=False)
[-1.965946199367804?,
 -1.700434271459229?,
 -1.205269272758513?,
 -0.5473259801441657?,
 0.1845367189266040?,
 0.8914767115530766?,
 1.478017834441319?,
 1.864944458808712?]