# Revision history [back]

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^3+2*x+5 # f = P([5,2,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^3 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$.

What is going wrong? Is this the right way to construct the extension field with two roots?

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^3+2*x+5 # f = P([5,2,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^3 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$.

$\mathbb{Q}$. Doing it as:

P.<x> = QQ[]
f = x^3+2*x+5
f_roots = f.roots(QQbar, multiplicities=False)
alpha = f_roots
K.<a> = QQ[alpha]
beta = f_roots
K1.<b> = K[beta]


Gives error:

ValueError: base field and extension cannot have the same name 'a'


What is going wrong? Is this the right way to construct the extension field with two roots? roots?

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^3+2*x+5 # f = P([5,2,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^3 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$. Doing it as:

P.<x> = QQ[]
f = x^3+2*x+5
f_roots = f.roots(QQbar, multiplicities=False)
alpha = f_roots
K.<a> = QQ[alpha]
beta = f_roots
f_roots
K1.<b> = K[beta]


Gives error:

ValueError: base field and extension cannot have the same name 'a'


What is going wrong? Is this the right way to construct the extension field with two roots?

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^3+2*x+5 x^4+2*x+5 # f = P([5,2,0,1]) P([5,2,0,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^3 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$. Doing it as:

P.<x> = QQ[]
f = x^3+2*x+5
f_roots = f.roots(QQbar, multiplicities=False)
alpha = f_roots
K.<a> = QQ[alpha]
beta = f_roots
K1.<b> = K[beta]


Gives error:

ValueError: base field and extension cannot have the same name 'a'


What is going wrong? Is this the right way to construct the extension field with two roots?

Edit

Let me emphasize that I'm looking for a method that works for an arbitrary degree not just for degree 3. My actual problem goes on a degree four polynomial. I've changed the example accordingly.

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^4+2*x+5 # f = P([5,2,0,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^3 (x^4 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$. Doing it as:

P.<x> = QQ[]
f = x^3+2*x+5
f_roots = f.roots(QQbar, multiplicities=False)
alpha = f_roots
K.<a> = QQ[alpha]
beta = f_roots
K1.<b> = K[beta]


Gives error:

ValueError: base field and extension cannot have the same name 'a'


What is going wrong? Is this the right way to construct the extension field with two roots?

Edit

Let me emphasize that I'm looking for a method that works for an arbitrary degree not just for degree 3. My actual problem goes on a degree four polynomial. I've changed the example accordingly.

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^4+2*x+5 x^3+2*x+5 # f = P([5,2,0,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^4 (x^3 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$. Doing it as:

P.<x> = QQ[]
f = x^3+2*x+5
f_roots = f.roots(QQbar, multiplicities=False)
alpha = f_roots
K.<a> = QQ[alpha]
beta = f_roots
K1.<b> = K[beta]


Gives error:

ValueError: base field and extension cannot have the same name 'a'


What is going wrong? Is this the right way to construct the extension field with two roots?

Edit

Let me emphasize that I'm looking for a method that works for an arbitrary degree not just for degree 3. My actual problem goes on a degree four polynomial. I've changed the example accordingly.So take as an example:

$f = x^4+2*x+5$

### Extension field adjoining two roots

I'm trying to construct given an irreducible polynomial $f \in \mathbb{Q}[X]$ an extension field that adjoins two of its roots $\alpha_1,\alpha_2$. I'm trying to follow the approach suggested in this question . However, with the following code:

P.<x> = QQ[]
f = x^3+2*x+5 # f = P([5,2,0,0,1]) if you want
f_roots = f.roots(QQbar, multiplicities=False)
print f_roots
alpha = f_roots
beta = f_roots
K = QQ[alpha,beta]
K['x'](f).is_irreducible()


But this gives the error:

ValueError: defining polynomial (x^3 + 2*x + 5) must be irreducible


Although, the polynomial is clearly irreducible over $\mathbb{Q}$. Doing it as:

P.<x> = QQ[]
f = x^3+2*x+5
f_roots = f.roots(QQbar, multiplicities=False)
alpha = f_roots
K.<a> = QQ[alpha]
beta = f_roots
K1.<b> = K[beta]


Gives error:

ValueError: base field and extension cannot have the same name 'a'


What is going wrong? Is this the right way to construct the extension field with two roots?

Edit

Let me emphasize that I'm looking for a method that works for an arbitrary degree not just for degree 3. My actual problem goes on a degree four polynomial. So take as an example:

$f f = x^4+2*x+5$