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

Evaluating a polynomial at root of unity over finite fields

asked 2 years ago

tungnt gravatar image

updated 2 years ago

Hi everyone!

I need to do some simulations for a project that I am working on. This involves the following "puzzle" which I don't know how to resolve. Your help is much appreciated.

Suppose I have a polynomial FZ[x]. Let p be a prime number and Fp be the reduction of F modulo p. In other words, FpFp[x]. Let n be a number relatively prime to p and ζn is an n-primitive root of unity over Fp. I want to compute the following number Fp(ζn)Fp(ζ1n).

I searched on this website and the closest answer that I got is the following

I tried to modify this approach without success. More precisely, I do the following.

Step 1: To get Fp, I use F.change_ring(GF(p)).

Step 2: Define K=GF(p) and K.<w> = CyclotomicField(n).

Step 3: Compute F_p(w)*F_p(1/w)

It seems to me that Step 2 causes some problems. Additionally, the term 1/w also causes an issue as 1 is recognized here as an integer and not an element over Fp.

Please let me know if you have any comments or suggestions. Thank you very much!

Best wishes, Tung

Preview: (hide)

2 Answers

Sort by » oldest newest most voted
1

answered 2 years ago

dan_fulea gravatar image

An alternative way to think about the problem, shifting the solution on the mathematical side, is as follows. I will denote by g the given polynomial with integer coefficients (instead of F), and by F=Fp the field with p elements. Let Φn be the n.th cyclotomic polynomial. So instead of ζn, seen as an element of the field Q(ζn) we will work with a variable w, seen as an element of the field K=Z(w)=Z[W]/(Φn(W)), constructed as quotient of the polynomial ring in W, and w is the class of W modulo the ideal J generated by Φn(W). We can build then g(W)g(Wn1) as an element in the polynomial ring Z[W], then consider g(w)g(wn1)=g(w)g(w1) by working in Z[W] modulo J. Now we pass to the quotient modulo p. This could have been done also earlier, sooner or later, we work in the ring R=Z[W]/(Φn(W), p)=Z[W]/p/(Φn(W))=Fp[W]/(Φn(W)) The question tacitly assumes that the result does not depend on W. Let's see if this is the case in some example with p=5 and n=2022, my sample polynomial is W+1:

p, n = 5, 30
R.<W> = PolynomialRing(GF(p))
g = W + 1
Q.<w> = R.quotient(cyclotomic_polynomial(n)(W))
g(w) * g(w^(n-1))

I'm getting

4*w^7 + 4*w^6 + w^4 + w^3 + w^2 + w + 1

(I hope i have correctly understood the algebraic situation... do not see the reason why some corresponding Galois automorphisms in w should invariate the expression g(W)g(W1) for a general g.)

Preview: (hide)
link

Comments

Thank you for your answer!

I like this approach as it allows us to see the coefficients of wm. My original goal is to show that F(ζn)F(ζ1n) is not zero mod p and this goal does not depend on the choice of w as you explained.

tungnt gravatar imagetungnt ( 2 years ago )
1

answered 2 years ago

Max Alekseyev gravatar image

updated 2 years ago

Perhaps, the easiest approach would be extending GF(p) with ζn - like in the following example, where z stands for ζn:

p, n = 7, 5
Fp.<x> = GF(p)[]
K.<z> = GF(p).extension(cyclotomic_polynomial(n))
f = x^2 + x + 1
print( f(z)*f(1/z) )
Preview: (hide)
link

Comments

Thank you very much for your answer!

tungnt gravatar imagetungnt ( 2 years ago )

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: 2 years ago

Seen: 399 times

Last updated: Jul 08 '22