Спасибо, что нашли время прочитать это, это очень ценится.
Мой вопрос касается того, как обеспечить, чтобы полином в фактор-кольце имел следующее свойство:
(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
Но, как вы можете видеть, ничего не произошло ... Спасибо!