"Source: Text/Commut/GB.text";
"Line: 2051";
"Date: Thu Sep 25 14:47:46 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Commut/GB.text, line: 2051
// Example: H115E5 ()
print "Example: H115E5";
ei := GetEchoInput();
SetEchoInput(true);
P<a,b,c,d,e> := PolynomialRing(GF(2), 5);
B := [a*b + c*d + 1, a*c*e + d*e, a*b*e + c*e, b*c + c*d*e + 1];
GroebnerBasis(B);
L := [P.i^2 + P.i: i in [1 .. Rank(P)]];
BB := B cat L;
BB;
GroebnerBasis(BB);
I := ideal<P|BB>;             
Variety(I);
P<a,b,c,d,e> := BooleanPolynomialRing(5, "grevlex");
B := [a*b + c*d + 1, a*c*e + d*e, a*b*e + c*e, b*c + c*d*e + 1];
I := Ideal(B);
I;
GroebnerBasis(I);
Variety(I);
R<[x]> := BooleanPolynomialRing(10, "grevlex");
R;
f := x[2]*x[3]*x[5]*x[7] + x[2]*x[4]*x[5]*x[8] + x[3]*x[4]*x[5]*x[9] + 
   x[3]*x[6]*x[7]*x[9] + x[2]*x[3]*x[5] + x[2]*x[4]*x[5] + x[2]*x[3]*x[7] +
   x[2]*x[5]*x[7] + x[3]*x[5]*x[7] + x[3]*x[6]*x[7] + x[2]*x[4]*x[8] + 
   x[2]*x[5]*x[8] + x[4]*x[5]*x[8] + x[3]*x[6]*x[9] + x[3]*x[7]*x[9] + 
   x[6]*x[7]*x[9] + x[2]*x[3] + x[2]*x[4] + x[3]*x[5] + x[4]*x[5] + 
   x[3]*x[6] + x[2]*x[7] + x[5]*x[7] + x[6]*x[7] + x[2]*x[8] + x[4]*x[8] + 
   x[5]*x[8] + x[3]*x[9] + x[6]*x[9] + x[7]*x[9] + x[1]*x[10] + x[1] + x[4]
   + x[6] + x[8] + x[9] + x[10];
I := Ideal([f]);
G := GroebnerBasis(I);
#G;
assert $1 eq 38;
[Length(f): f in G];
G[38];
SetEchoInput(ei);
