Ask Your Question

Polynomial Mod Ideal

asked 2017-11-16 00:23:54 -0600

orangejake gravatar image

I have a polynomial $R\in\mathbb{Z}[x]$. I then define $R' = \frac{d}{dx}R$, and look at the splitting field of $R'$, $K$, an algebraic number field. Now, I want to find a prime ideal $\mathfrak{p}$ of $L$ of absolute degree 1 such that $R\mod\mathfrak{p}$ is irreducible.

To do this, I've set up:

p0, n = 5, 7
L = PolynomialRing(ZZ,'x')
R = L(x^n-p0^(n-1)x+p0)
Rprime = L(n*x^(n-1)-p0^(n-1))
K = NumberField(Rprime, 'z')
for P in K.primes_of_degree_one_iter():

I'm now trying ti find the right thing to do for <stuff>. Namely, how can I reduce the polynomial R with respect to the ideal P?

edit retag flag offensive close merge delete


Let us do the above, and further insert some print:

p0, n = 5, 7
L.<x> = PolynomialRing( ZZ )

R = L( x^n - p0^(n-1)*x + p0 )
Rprime = L( n*x^(n-1) - p0^(n-1) )

K.<z> = NumberField( Rprime )
for P in K.primes_of_degree_one_iter():
    print P

The long list ends with:

Fractional ideal (44893, 26936/625*z^5 - 134679/5*z - 8174)
Fractional ideal (49697, -99393/3125*z^5 + 99394/5*z - 24271)
Fractional ideal (71429, -71428/3125*z^5 + 71429/5*z - 13020)

P is now the last entry, it is a fractional ideal. We can factor it like:

sage: P.factor()
(Fractional ideal (7, 7/3125*z^5))^-1 * (Fractional ideal (71429, 7/3125*z^5 - 19711))

Please explain what should be done in this situation. I need one more comment to paste some code...

dan_fulea gravatar imagedan_fulea ( 2017-11-16 07:34:47 -0600 )edit

... continuation:

sage: P
Fractional ideal (71429, -71428/3125*z^5 + 71429/5*z - 13020)
sage: for f, pow in P.factor():
....:     print "pow=%s ideal is %s" % ( pow, f )

pow=-1 ideal is Fractional ideal (7, 7/3125*z^5)
pow=1 ideal is Fractional ideal (71429, 7/3125*z^5 - 19711)

Now f is the last fractional ideal. Its gens are algebraic integers:

sage: for g in f.gens():
....:     print g, 'with norm', ZZ(g.norm()).factor()

71429 with norm 71429^6
7/3125*z^5 - 19711 with norm 2 * 3 * 11311 * 71429 * 12098321599065661

and we may build K.quotient( f ), but this is maybe not wanted.

Passing to ZZ / 71429 first, then modulo ... is what you want?

Also, note that K(R) has degree one, -93750/7*z + 5, we need maybe a new R in K[]...

dan_fulea gravatar imagedan_fulea ( 2017-11-16 07:55:17 -0600 )edit

I'm trying to implement Lemma 2.3 from Kedlaya's A construction of polynomials with squarefree discriminants (I don't believe I can post links, its identifier on Arxiv is 1103.5728). This lemma says "Let $p_0$ be a prime not dividing $n(n−1)$. Then there exist infinitely many primes $p_1$ modulo which the polynomial $R(x) = x^n − p_0^{n−1}x + p_0$ is irreducible and its derivative $R′(x) = nx^{n−1} − p_0^{n−1}$ splits into distinct linear factors.

orangejake gravatar imageorangejake ( 2017-11-16 14:42:33 -0600 )edit

The proof is:

"The polynomial $R′$ has splitting field $L = \mathbb{Q}(\zeta_n−1, n^{1/(n−1)})$, in which $p_0$ does not ramify because $p_0$ does not divide $n(n−1)$. Thus $R$ is an Eisenstein polynomial with respect to any prime above $p_0$ in $L$; in particular, $R$ is irreducible over $L$. By the Chebotarev density theorem, there exist infinitely many prime ideals of $L$ of absolute degree 1 modulo which $R$ is irreducible; the norm of any such prime ideal is the prime we want."

I'm not entirely sure what "absolute degree 1" means for a prime ideal, and if K.primes_of_degree_one_iter() is giving me something else (namely, fractional ideals), this could be the issue. Do you know how I could find prime ideals of $L$ of absolute degree 1?

orangejake gravatar imageorangejake ( 2017-11-16 14:45:28 -0600 )edit

1 answer

Sort by » oldest newest most voted

answered 2017-11-17 03:22:45 -0600

dan_fulea gravatar image

The link to the article is ([http... .

    I think, the following code is relevant - for the comment, not for the posted question:

p0 = 5
n  = 7

S.<x> = ZZ[]

R  =   x^n     - p0^(n-1)*x + p0
Rx = n*x^(n-1) - p0^(n-1)

F.<u> = CyclotomicField( n-1 )
L.<a> = F.extension( x^(n-1) - n )

LPrimes = L.primes_of_degree_one_list( 100 )

for LP1 in LPrimes:
    p1  = LP1.relative_norm().norm()
    Fp1 = GF(p1)
    Rp1 = PolynomialRing( Fp1, names='x' )
    print "p1 = %s" % p1
    print "R  mod p1 is %s :: %s" % ( Rp1(R ), 'IRRED' if Rp1(R).is_irreducible() else 'RED' )
    print "Rx mod p1 is %s == %s" % ( Rp1(Rx), Rp1(Rx).factor() )

(Have to send, and catch that train, possibly be back again.)

edit flag offensive delete link more


This is exactly what I needed! A few questions: 1. Is there any particular reason that the field $F$ is constructed as an extension of a cyclotomic, instead of just specifying the two generators? 2. Similar to the above, is there any particular reason the norm of p1 is computed as the relative norm, and then the (what I'm assuming is) absolute norm?

orangejake gravatar imageorangejake ( 2017-11-19 16:23:01 -0600 )edit

Your Answer

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

Add Answer

Question Tools


Asked: 2017-11-16 00:23:54 -0600

Seen: 36 times

Last updated: Nov 17