Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

When you have unknowns in GF(2), you might want to use BooleanPolynomialRing, instead of the more general PolynomialRing. The BooleanPolynomialRing takes care of that for all unknowns in GF(2) it holds: x^2 = x. With this you code looks like this:

P.<x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35>=BooleanPolynomialRing(35,order='lex');
I=Ideal([x1*x21*x22*x23*x24*x25*x26*x27*x28*x29*x30*x31*x32*x33*x34*x35-1,x2*x14*x15*x16*x17*x18*x19*x20*x2*x22*x23*x24*x25*x26*x27*x28-1,x3*x11*x12*x13*x15*x17*x19*x20*x21*x22*x23*x24*x29*x30*x31*x35-1,x4*x8*x9*x10*x14*x18*x19*x20*x23*x24*x25*x27*x29*x30*x32*x34-1,x5*x7*x8*x10*x12*x13*x19*x20*x22*x24*x25*x26*x29*x31*x32*x33-1,x6*x7*x9*x10*x11*x13*x16*x17*x18*x20*x22*x23*x25*x26*x29*x30-1,x1^2-1,x2^2-1,x3^2-1,x4^2-1,x5^2-1,x6^2-1,x7^2-1,x8^2-1,x9^2-1,x10^2-1,x11^2-1,x12^2-1,x13^2-1,x14^2-1,x15^2-1,x16^2-1,x17^2-1,x18^2-1,x19^2-1,x20^2-1,x21^2-1,x22^2-1,x23^2-1,x24^2-1,x25^2-1,x26^2-1,x27^2-1,x28^2-1,x29^2-1,x30^2-1,x31^2-1,x32^2-1,x33^2-1, x34^2-1,x35^2-1])
I.groebner_basis();

My laptop computes this Groebner basis within seconds.