【发布时间】:2018-11-30 01:25:23
【问题描述】:
感谢您花时间阅读本文,非常感谢。
我的问题是关于如何确保商环内的多项式具有以下属性:
(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。请问我是否遗漏了什么?这很烦人,因为我将使用麦考利矩阵,因此,我必须在商环内工作。也许我错过了一些数学,因为这对我来说都是全新的......
这是我的圣人输入:
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
但正如你所见,什么也没发生…… 谢谢!
【问题讨论】:
-
好的,我相信如果我这样做:
Q(f1).lift()它会起作用。但是,如果我需要专门使用这个 Q,这会使代码变得非常难看……请问有更好的方法吗?