Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Roots of polynomials over a non-prime finite field in a given extension

I am trying to find the roots of a primitive polynomial over a non-prime finite field, in a desired extension. Here is an example of what I'm trying to do:

First, I define my non-prime finite field (GF(4)), and a primitive polynomial f.

sage: F.<a>=GF(4)                                                              
sage: K.<x>=F[]
sage: F 
Finite Field in a of size 2^2
sage: K
Univariate Polynomial Ring in x over Finite Field in a of size 2^2
sage: f=x^4 + (a + 1)*x^3 + a*x^2 + a       
sage: f.is_primitive()
True

Now, I define an extension field G where f has its roots

 sage: G=f.root_field('b')
 sage: G
 Univariate Quotient Polynomial Ring in b over Finite Field in a of size 2^2 with modulus x^4 + (a + 1)*x^3 + a*x^2 + a
 sage: G.base_field()
 Finite Field in a of size 2^2

I assume that b is a root of f, by definition (correct me if I'm wrong). Now, I take a new primitive polynomial h.

 sage: h=x^4 + x^3 + (a + 1)*x^2 + a
 sage: h.is_primitive()
 True

But when I try to find the roots of h in G, I get nothing. sage: h.roots(ring=G) []

Could somebody tell me how I could get the roots of h in G with respect to b?

click to hide/show revision 2
deleted redundant info

Roots of polynomials over a non-prime finite field in a given extension

I am trying to find the roots of a primitive polynomial over a non-prime finite field, in a desired extension. Here is an example of what I'm trying to do:

First, I define my non-prime finite field (GF(4)), and a primitive polynomial f.

sage: F.<a>=GF(4)                                                              
sage: K.<x>=F[]
sage: F 
Finite Field in a of size 2^2
sage: K
Univariate Polynomial Ring in x over Finite Field in a of size 2^2
sage: f=x^4 + (a + 1)*x^3 + a*x^2 + a       
sage: f.is_primitive()
True

Now, I define an extension field G where f has its roots

 sage: G=f.root_field('b')
 sage: G
 Univariate Quotient Polynomial Ring in b over Finite Field in a of size 2^2 with modulus x^4 + (a + 1)*x^3 + a*x^2 + a
 sage: G.base_field()
 Finite Field in a of size 2^2

I assume that b is a root of f, by definition (correct me if I'm wrong). Now, I take a new primitive polynomial h.

 sage: h=x^4 + x^3 + (a + 1)*x^2 + a
 sage: h.is_primitive()
 True

But when I try to find the roots of h in G, I get nothing. sage: h.roots(ring=G) []

Could somebody tell me how I could get the roots of h in G with respect to b?

Roots of polynomials over a non-prime finite field in a given extension

I am trying to find the roots of a primitive polynomial over a non-prime finite field, in a desired extension. Here is an example of what I'm trying to do:

First, I define my non-prime finite field (GF(4)), and a primitive polynomial f.

sage: F.<a>=GF(4)                                                              
sage: K.<x>=F[]
sage: F 
Finite Field in a of size 2^2
sage: K
Univariate Polynomial Ring in x over Finite Field in a of size 2^2
sage: f=x^4 + (a + 1)*x^3 + a*x^2 + a       
sage: f.is_primitive()
True

Now, I define an extension field G where f has its roots

 sage: G=f.root_field('b')
 sage: G
 Univariate Quotient Polynomial Ring in b over Finite Field in a of size 2^2 with modulus x^4 + (a + 1)*x^3 + a*x^2 + a

I assume that b is a root of f, by definition (correct me if I'm wrong). Now, I take a new primitive polynomial h.

 sage: h=x^4 + x^3 + (a + 1)*x^2 + a
 sage: h.is_primitive()
 True

But when I try to find the roots of h in G, I get nothing. nothing.

 sage: h.roots(ring=G)
     []

[]

Could somebody tell me how I could get the roots of h in G with respect to b?

Roots of polynomials over a non-prime finite field in a given extension

I am trying to find the roots of a primitive polynomial over a non-prime finite field, in a desired extension. Here is an example of what I'm trying to do:

First, I define my non-prime finite field (GF(4)), and a primitive polynomial f.

sage: F.<a>=GF(4)                                                              
sage: K.<x>=F[]
sage: F 
Finite Field in a of size 2^2
sage: K
Univariate Polynomial Ring in x over Finite Field in a of size 2^2
sage: f=x^4 + (a + 1)*x^3 + a*x^2 + a       
sage: f.is_primitive()
True

Now, I define an extension field G where f has its roots

 sage: G=f.root_field('b')
 sage: G
 Univariate Quotient Polynomial Ring in b over Finite Field in a of size 2^2 with modulus x^4 + (a + 1)*x^3 + a*x^2 + a

I assume that b is a root of f, by definition (correct me if I'm wrong). Now, I take a new primitive polynomial h.

 sage: h=x^4 + x^3 + (a + 1)*x^2 + a
 sage: h.is_primitive()
 True

But when I try to find the roots of h in G, I get nothing.

 sage: h.roots(ring=G)
 []

Could somebody tell me how I could get the roots of h in G with respect to b?