Я пытаюсь построить многочлены над двузначным конечным полем {0, 1}, и я хочу, чтобы они автоматически упрощались с использованием некоторых тождеств, существующих в этом параметре.
Я пробовал следующее:
from sympy import *
from sympy.polys.domains.finitefield import FiniteField
x, y, z, t = symbols('x y z t')
k = Poly(x+y * z*z + (x + y) + y + 1, domain=FiniteField(2))
Это уже упрощается до:
Poly(y*z**2 + 1, x, y, z, modulus=2)
Однако z ** 2 фактически совпадает с z в поле, которое я хочу использовать. Кажется, он автоматически распознает, что y + y = 0. Как я могу реализовать другую идентичность, z * z = z (идемпотентность)?