Fwd: [sage-support] Divisibility between Archimedean places

23 views
Skip to first unread message

John Cremona

unread,
May 9, 2014, 11:06:54 AM5/9/14
to sage-nt


---------- Forwarded message ----------
From: Yves Lignac <yhp...@gmail.com>
Date: 9 May 2014 13:30
Subject: [sage-support] Divisibility between Archimedean places
To: sage-s...@googlegroups.com


Hello all,

I am looking for a way to determine if an embedding $\sigma$ of a number field $L$ into the complex numbers restricts to a given embedding $\tau$ of a subfield $K$ (asking for equality between $\tau$ and $\sigma \circ i$ where $i$ is the embedding of $K$ into $L$ does not work).
More specifically, I have a cubic field $K$ of signature (1,1) and a quadratic extension $L/K$ with $L$ of signature (0,3), and I want to be able to obtain one of the two complex places of $L$ that does not lie above the real place of $K$. I have tried to do this by taking a polynomial for $L$ over $K$, taking one of its (complex) roots at the complex place of $K$ and using create_embedding_from_approx, but this does not work (on my computer at least) because the latter seems to work only with real embeddings
(for completeness, here is the code I used (given the number fields K,L and the embedding i from K to L :

                        L_over_K.<u,t> = L.relativize(i)
                        g = L_over_K.relative_polynomial()
                        coef = g.coefficients()
                        expo = g.exponents()
                        Q = K.places() ; q = Q[1]
                        coef2 = []
                        for c in coef :
                            coef2.append(q(c))
                        h = 0
                        y = polygen(CC)
                        for i in range(0,len(coef)) :
                            h = h + coef2[i] * y^(expo[i])
                        root = (complex_roots(h)[0][0]).center()
                        p = create_embedding_from_approx(L, root)

In any case, if there is a way to test divisibility between archimedean places of number fields without using the above uncomfortable way I would be very much happier to use it.

--
You received this message because you are subscribed to the Google Groups "sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-support...@googlegroups.com.
To post to this group, send email to sage-s...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Nils Bruin

unread,
May 12, 2014, 2:49:43 PM5/12/14
to sag...@googlegroups.com
On Friday, May 9, 2014 8:06:54 AM UTC-7, John Cremona wrote:
In any case, if there is a way to test divisibility between archimedean places of number fields without using the above uncomfortable way I would be very much happier to use it.
You could leave more of the numerical stability checking in the hands of sage/pari, in the hope some effort is taken there to ensure the reported precision.

You'll have an embedding of K into L, so you could look at the embedding of K.0 that you want and select the embeddings of L that put K.0 embedded L close to the value you want:

#set up an example
K.<a>=NumberField(x^3-2)
KX.<X>=K[]
Lrel.<b>=NumberField(X^2-(a-2))
Labs=Lrel.absolute_field('babs')

#this selects a complex place that extends the one that sends a to aemb:
aemb=a.complex_embeddings()[0]

min((phi for phi in Labs.embeddings(CC)), key = lambda phi: abs(phi(Labs(Lrel(a)))-aemb))

#alternatively, if you don't want to/can't depend on coercion:

KtoL=Hom(K,Labs)(a.minpoly().roots(Labs,multiplicities=False)[0])
min((phi for phi in Labs.embeddings(CC)), key = lambda phi: abs(phi(KtoL(a))-aemb))





Reply all
Reply to author
Forward
0 new messages