Revision history [back]

You should define g as an element of the univariate polynomial ring with coefficients in F:

sage: R.<y>=F[]
sage: R
Univariate Polynomial Ring in y over Number Field in a with defining polynomial x^2 + 4
sage: g=y^4+16
sage: g.parent()
Univariate Polynomial Ring in y over Number Field in a with defining polynomial x^2 + 4
sage: g.is_irreducible()
False
sage: g.factor()
(y^2 - 2*a) * (y^2 + 2*a)

You should define g as an element of the univariate polynomial ring with coefficients in F:

sage: R.<y>=F[]
R.<y> = F[]
sage: R
Univariate Polynomial Ring in y over Number Field in a with defining polynomial x^2 + 4
sage: g=y^4+16
g = y^4+16
sage: g.parent()
Univariate Polynomial Ring in y over Number Field in a with defining polynomial x^2 + 4
sage: g.is_irreducible()
False
sage: g.factor()
(y^2 - 2*a) * (y^2 + 2*a)

EDIT If you want the splitting field of g, together with a map to embed F into it, you can do:

sage: g.splitting_field('b')
Number Field in b with defining polynomial y^4 + 1
sage: g.splitting_field('b', map=True)
(Number Field in b with defining polynomial y^4 + 1, Ring morphism:
From: Number Field in a with defining polynomial x^2 + 4
To:   Number Field in b with defining polynomial y^4 + 1
Defn: a |--> 2*b^2)