Ask Your Question
1

The lattice of number fields

asked 2015-07-30 07:38:53 +0100

Ofir gravatar image

Let $L$ be some number field, and $\sigma_1,...,\sigma_{(r+s)}$ its embeddings in the real\complex field. Given an element $a$ in a $L$, how can I produce the vector $(\sigma_1(a),...,\sigma_{(r+s)}(a))$ , or better yet, is there a function returning the lattice embedding of $\mathcal{O}_L$ inside $\mathbb{R}^r \times \mathbb{C}^s $? Similarly, after computing the units group is there some function that returns $(\log |\sigma_i(u) |)$ for a given unit $u$ or the corresponding unit lattice?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2015-07-30 13:01:11 +0100

tmonteil gravatar image

Let me first create a number field L, and use the Python variable a as a generator:

sage: L = NumberField(x^3+x+1,'a')
sage: L.inject_variables()
Defining a

Then, you can get the list of embeddings of L into the complex (floating-point) numbers as follows:

sage: L.embeddings(CC)
[
Ring morphism:
  From: Number Field in a with defining polynomial x^3 + x + 1
  To:   Complex Field with 53 bits of precision
  Defn: a |--> -0.682327803828019,
Ring morphism:
  From: Number Field in a with defining polynomial x^3 + x + 1
  To:   Complex Field with 53 bits of precision
  Defn: a |--> 0.341163901914010 - 1.16154139999725*I,
Ring morphism:
  From: Number Field in a with defining polynomial x^3 + x + 1
  To:   Complex Field with 53 bits of precision
  Defn: a |--> 0.341163901914010 + 1.16154139999725*I
]

So, to get the images of (say) 1+a for all those embeddings, you can do:

sage: [e(1+a) for e in L.embeddings(CC)]
[0.317672196171981,
 1.34116390191401 - 1.16154139999725*I,
 1.34116390191401 + 1.16154139999725*I]

If you want to have algebraic numbers instead of floating point appxoximations, you can replace CC by QQbar:

sage: [e(1+a) for e in L.embeddings(QQbar)]
[0.3176721961719807?,
 1.341163901914010? - 1.161541399997252?*I,
 1.341163901914010? + 1.161541399997252?*I]

If you want the images for the real embeddings (there is only one), you can do:

sage: [e(1+a) for e in L.embeddings(RR)]
[0.317672196171981]

sage: [e(1+a) for e in L.embeddings(AA)]
[0.3176721961719807?]

Now, if you pick an element of the unit element as follows:

sage: u = L.unit_group().random_element() ; u
u0*u1^6

You can get the images you wanted as follows:

sage: [log(abs(e(u))) for e in L.embeddings(QQbar)]
[-2.29347051504021, 1.14673525752011, 1.14673525752011]
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2015-07-30 07:38:53 +0100

Seen: 561 times

Last updated: Jul 30 '15