In [1]: declare_ring([Block("x",3),Block("y",3)],globals())
Out[1]: <polybori.dynamic.PyPolyBoRi.Ring object at 0x1848b10>
In [2]: change_ordering(block_dp_asc)
In [3]: for b in block_start_hints:
...: append_ring_block(b)
...:
...:
In [4]: G=[x(0)*x(2)*y(0)*y(1) + y(1)*y(2) + y(1),
...: x(1)*x(2)*y(0)*y(2) + x(0)*x(1)*y(2) + y(1),
...: x(0)*x(1)*x(2)*y(1) + x(1) + y(1)*y(2)]
In [5]: H=groebner_basis(G)
In [6]: H
Out[6]:
[x(0)*y(0)*y(1) + x(0)*y(1) + y(0)*y(1) + y(1),
x(1) + y(1),
x(2)*y(1) + x(0)*y(1) + y(1),
y(1)*y(2) + y(1)]
In [7]: [p for p in H if p.set().navigation().value()>=y(0).index()]
Out[7]: [y(1)*y(2) + y(1)]
For special cases elimination (depending on the formulation of the equations) elimination of (auxiliary) variables can be done much faster as can be seen in
.