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

Revision history [back]

click to hide/show revision 1
initial version

asked 4 years ago

mvk gravatar image

Inconsistentency in parent of specialization of a polynomial?

I have a family of polynomials and I want to consider special members of this family. In other words I'm considering polynomials in a ring R=K[x] where K=Q[t]. In sage I do the following:

K = PolynomialRing(QQ, ["t"])                                                                            
R = PolynomialRing(K, ["x"])                                                                             

t = K.gen(0)                                                                                             
x = R.gen(0)                                                                                             

f = (t**2 - QQ(1/10)*t + 1)*x**2 + (QQ(3/4)*t + QQ(7/2))*x - t + 8                                       
f1 = f.specialization({t: 1})

This works fine and as expected f1 is a polynomial only in x:

f1.parent() == QQ["x"] # True

Now I want to do exactly the same but over ¯Q instead:

L = PolynomialRing(QQbar, ["t"])                                                                         
S = PolynomialRing(L, ["x"])                                                                             

t = L.gen(0)                                                                                             
x = S.gen(0)                                                                                             

g = (t**2 - QQ(1/10)*t + 1)*x**2 + (QQ(3/4)*t + QQ(7/2))*x - t + 8                                       
g1 = g.specialization({t: 1})

I would expect g1 to be a polynomial only in x as above, i.e. I would expect g1¯Q[x]. However, I get:

g1.parent() == QQbar["x"] # False
g1.parent() == S # True

Is this a bug? Or am I misunderstanding something?

Inconsistentency in parent of specialization of a polynomial?

I have a family of polynomials and I want to consider special members of this family. In other words I'm considering polynomials in a ring R=K[x] where K=Q[t]. In sage I do the following:

K = PolynomialRing(QQ, ["t"])                                                                            
["t"])
R = PolynomialRing(K, ["x"])                                                                             
["x"])

t = K.gen(0)                                                                                             
x = R.gen(0)                                                                                             

f = (t**2 - QQ(1/10)*t + 1)*x**2 + (QQ(3/4)*t + QQ(7/2))*x - t + 8                                       
8
f1 = f.specialization({t: 1})

This works fine and as expected f1 is a polynomial only in x:

f1.parent() == QQ["x"] # True

Now I want to do exactly the same but over ¯Q instead:

L = PolynomialRing(QQbar, ["t"])                                                                         
["t"])
S = PolynomialRing(L, ["x"])                                                                             
["x"])

t = L.gen(0)                                                                                             
L.gen(0)
x = S.gen(0)                                                                                             
S.gen(0)

g = (t**2 - QQ(1/10)*t + 1)*x**2 + (QQ(3/4)*t + QQ(7/2))*x - t + 8                                       
8
g1 = g.specialization({t: 1})

I would expect g1 to be a polynomial only in x as above, i.e. I would expect g1¯Q[x]. However, I get:

g1.parent() == QQbar["x"] # False
g1.parent() == S # True

Is this a bug? Or am I misunderstanding something?