# i want to find factorization ideal (3) in integral closure of Z_3 in Q_3(sqrt(2),sqrt(3))

my problem is to define Q_3(sqrt(2),sqrt(3)) ii)find factorization of ideal

edit retag close merge delete

By $Z_3$ and $Q_3$ do you mean 3-adic integers and 3-adic numbers?

( 2018-10-25 05:39:55 -0500 )edit

Since it is unlikely/impossible that Anonymous will comment, I will go ahead and say yes.

( 2018-10-25 08:38:11 -0500 )edit

Sort by » oldest newest most voted

It's a bit unclear what you want to achieve in general. But for the first part of your question, since https://trac.sagemath.org/ticket/23218 we have more general extensions of p-adic rings. So with Sage 8.4 you can do

sage: K.<a> = Zq(9)
sage: R.<x> = K[]
sage: L.<b> = K.extension(x^2 - 3)


In general you can create a ramified extension of an unramified extension, so if you can transform your field into this form, you can create the corresponding ring. I am not sure what you are trying to achieve in general, as of course, once you have it in this form, the question how the prime factors is trivial. Explicitly, you can then also do:

sage: L.ideal(3)
Principal ideal (b^2 + O(b^42)) of 3-adic Eisenstein Extension Ring in b defined by x^2 - 3 over its base ring


Number fields probably provide the most convenient path to currently answer this question, if you're only looking at small examples where performance does not matter:

sage: R.<x> = QQ[]
sage: K.<a> = NumberField(x^2 - 2)
sage: L.<b> = K.extension(x^2 - 3)
sage: L.ideal(3).factor()
(Fractional ideal (b))^2


If you don't mind the language of valuations, you could try with the following which might avoid some expensive calls:

sage: QQ.valuation(3).extensions(L)
sage: v = _[0]
sage: v.value_group()
Additive Abelian Group generated by 1/2


Finally, there is also the henselization package which allows you to work with Henselizations instead of $Q_p$ which you can also use to compute such factorizations:

sage: from henselization import *
sage: K = QQ.henselization(3)
sage: R.<x> = K[]
sage: L.<a> = K.extension(x^2 - 3)
sage: R.<x> = L[]
sage: M.<b> = L.extension(x^2 - 2)
sage: v = M.valuation()
sage: v.value_group()
Additive Abelian Group generated by 1/2

more