SageMath:商环减少(x ^ 2-x = 0)

时间:2018-11-30 01:25:24

标签: python math sage

感谢您抽出宝贵的时间阅读本文,非常感谢。

我的问题涉及如何确保商环内的多项式具有以下属性:

(x^2)k = 0

其中,x是商环中的任何变量,k是正整数。

这是我尝试解决此问题的方法:我创建了一个多项式环

P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')

由于我不在商环内工作,因此x ^ 2(或其他三个变量中的任何一个)不会“变为”0。由于我希望x ^ 2 = 0的属性,所以我决定创建一个带有某些场方程的商环:

Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))

由此q = P.base_ring.order()。 但是,当我随后创建以下多项式时,其父代仍为P,因此我更改了其环:

f1 = y*z + y*w + w^2
f1 = f1.change_ring(Q)

但是,当我打印f1时,w ^ 2仍然是w ^ 2,并且没有减小到0。我想知道我是否缺少某些东西?这很烦人,因为我将要与Macaulay矩阵一起工作,因此,在商圈内工作非常重要。也许我错过了一些数学知识,因为这对我来说是非常新的……

这是我的圣人输入:

sage: P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))
sage: f1 = y*z + y*w + w^2
sage: f1
y*z + y*w + w^2
sage: f1 = f1.change_ring(Q)
sage: f1
y*z + y*w + w^2

将如何确保w ^ 2 = 0?在创建商环并随后更改其环时,我已经尝试过将原始多项式添加到场方程中,如下所示:

sage: P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: f1 = y*z + y*w + w^2
sage: Q = P.quotient_ring(ideal([f1] + [var**q - var for var in P.gens()]))
sage: f1 = f1.change_ring(Q)
sage: f1
y*z + y*w + w^2

但是如您所见,什么也没发生... 谢谢!

1 个答案:

答案 0 :(得分:0)

您应该执行f1 = change_ring(Q)而不是f1 = Q(f1)change_ring仅影响系数,而不影响不确定的元素,而Q(f1)强制多项式f1驻留在Q中,将每个变量转换为Q中的图像。例如:

sage: P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))
sage: f1 = y*z + y*w + w^2
sage: f1
y*z + y*w + w^2
sage: f1.change_ring(Q)
y*z + y*w + w^2
sage: Q(f1)
ybar*zbar + ybar*wbar + wbar

附加了bar的变量是Q中的图像。

定义Q后的另一个选项:

sage: x,y,z,w = Q.gens()
sage: f1 = y*z + y*w + w^2 # now living in Q, since x,y,z,w are in Q
sage: f1
ybar*zbar + ybar*wbar + wbar

顺便说一句,如果您希望w^2为零,则不应该施加关系w**2而不是w**2 - w吗?