With a Strategy option, the code is experimental, subject to interface changes, and might have bugs. So use at your own risk! However, it appears to work correctly and is often very fast, in cases where it applies. If you encounter any bugs, please let us know!
If either "MGB" (MGB stands for mathicGB, the name of the package used), or "F4" is given for the Strategy, then experimental code (written by Bjarke Roune and M. Stillman) is used. The plan is for this to become the default version for Groebner bases in later versions of Macaulay2. But for now, it is experimental.
These strategies only work for ideals in polynomial rings over a finite field ZZ/p. In other cases, either an error will be given, or the current default Groebner basis algorithm will be used.
i4 : R = ZZ/101[a..e]
o4 = R
o4 : PolynomialRing
|
i5 : I = ideal sub(random(R^1, R^{4:-2}), e=>1);
o5 : Ideal of R
|
i6 : netList I_*
+------------------------------------------------------------------------------------------------------+
| 2 2 2 2 |
o6 = |- 33a - 19a*b - 39b + 17a*c + 36b*c + 4c - 20a*d + 9b*d + 13c*d + 22d + 44a - 39b - 26c - 49d - 11|
+------------------------------------------------------------------------------------------------------+
| 2 2 2 2 |
|- 8a + 43a*b - 22b - 8a*c - 30b*c - 28c + 36a*d + 41b*d - 6c*d - 9d - 3a + 16b + 35c - 35d + 6 |
+------------------------------------------------------------------------------------------------------+
| 2 2 2 2 |
|40a + 3a*b - 41b - 31a*c - 49b*c + 30c + 25a*d - 13b*d - 47c*d - 40d - 2a + 4b + 27c + 37d - 35 |
+------------------------------------------------------------------------------------------------------+
| 2 2 2 2 |
|- 31a - 39a*b - 48b - 31a*c + 30b*c - 49c - 48a*d - 37b*d + 28c*d + 46d - 29a + 47b - 18c + d + 40|
+------------------------------------------------------------------------------------------------------+
|
i7 : gbI = ideal groebnerBasis(I, Strategy=>"MGB");
o7 : Ideal of R
|
i8 : netList gbI_*
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 |
o8 = |a*c + 12b*c - 46c + 43a*d + 33b*d - 26c*d - 3d - 15a + 42b + 49c - 13 |
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 2 |
|b + 28b*c + 40c + 28a*d - 11b*d + 35c*d - 13d - 29a + 18b - 15c - 17d + 15 |
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 |
|a*b + 21b*c + 15c + 26a*d + 42b*d + 46c*d - 34d - 32a + 8b + 38c + 14d - 49 |
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 2 |
|a + 15b*c - 43c - 10a*d - 22b*d + c*d - 4d - 39a + 28c + 38d - 2 |
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 2 2 3 2 2 |
|c d - 34a*d + 37b*d + 29c*d + 42d + 10b*c - 11c + 17a*d + 9b*d + 32c*d + 8d - 39a - 36b + 32c + 25d - 49 |
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 2 3 2 2 |
|b*c*d - 22a*d + 5b*d + 42c*d - 21d - 43b*c - 36c - 2a*d - 13b*d - 3c*d + 25d + 7a + 11b - 37c + 40d - 22 |
+-------------------------------------------------------------------------------------------------------------------+
| 3 2 2 2 3 2 2 |
|c - 31a*d + 30b*d - 22c*d - 29d + 12b*c + 34c + 41a*d - b*d - 27c*d + 33d - 13a - 21b - 49c - 29d - 24 |
+-------------------------------------------------------------------------------------------------------------------+
| 2 2 2 2 3 2 2 |
|b*c + 19a*d + 2b*d - 16c*d - d - 35b*c + 32c - 19a*d - 33b*d - 24c*d - 37d + 47a - 33b - 31c - 28d - 12 |
+-------------------------------------------------------------------------------------------------------------------+
| 3 4 2 2 3 2 2 |
|c*d - 43d - 33a*d - 12b*d + 7d - 18b*c - 40c - 16a*d - 5b*d - 5c*d + 30d + 32a - 26b - 43c + 20d + 34 |
+-------------------------------------------------------------------------------------------------------------------+
| 3 4 2 2 2 3 2 2 |
|b*d - 32d - 16a*d + 3b*d - 34c*d - 33d + b*c + 24c + 39a*d - b*d - 45c*d + 13d - 49a + 18b - 3c + 2d + 34 |
+-------------------------------------------------------------------------------------------------------------------+
| 3 4 2 2 2 3 2 2 |
|a*d - 15d + 10a*d - 25b*d - 43c*d + 21d - 15b*c + 46c - 3a*d - b*d - 5c*d - 8d - 29a + 19b + 30c - 8d + 21 |
+-------------------------------------------------------------------------------------------------------------------+
| 5 4 2 2 2 3 2 2 |
|d + 34d + 41a*d - 21b*d - 39c*d + 10d - 16b*c - 44c - 13a*d + 47b*d + c*d + 44d - 29a - 18b + 25c + 2d - 19|
+-------------------------------------------------------------------------------------------------------------------+
|