19.1 Creating small generating sets: RRTrue, RRByCatTrue, SBFalse, SBByCatTrue

Section 16.3.3 discusses why the NCProcess commands used algorithms for creating small sets X from a partial GB Y such that the ideal generated by X equals the ideal generated by Y . The options of the NCProcess commands are

RR,  RRByCat,   SB, SBByCat    .
These actually abbreviate longer names. For example, RR abbreviates RemoveRedundant. See §19.5. Any combination of options will leave the output of NCProcess a generating set for the ideal generated by the input relations. The more (redundant) relations you try to remove, the slower NCProcess runs. The options indicate which algorithms will be used to remove the redundant relations. RemoveRedundant, for instance, runs very quickly, but does not do a very thorough job.

A complete list of options together with indications of their speed can be found at the end of the chapter. If two overlapping options are set to True, like RR and RRByCat, then only one of them is actually run. The amount of time that it takes to run NCProcess depends on which options are set.

The defaults for NCProcess are: SBByCat and RR are set to True while SmallBasis and SBFlatOrder are set to False.

SBFlatOrderFalse

If SBFlatOrder True the small basis algorithm will be performed under the length lexicographic monomial order. Relations which have a leading term with only one indeterminate, also known as singletons, are not included in the input to the small basis algorithm since the user typically does not want them removed. The singletons do however appear in the output of NCProcess when SBFlatOrder True. The default is SBFlatOrder False, however SBFlatOrder True is probably significantly faster.

DegreeCapSBaNumber1 and DegreeSumCapSBaNumber2

Beginners should skip this part of Appendix 19 and rely on the NCProcess defaults. The reducing algorithms SmallBasis and SmallBasisByCategory call NCMakeGB (§9.3). These calls to NCMakeGB can be very time consuming and so it can be beneficial to direct NCMakeGB. The NCProcess options DegreeCapSB and DegreeSumCapSB are used when NCProcess calls SmallBasis or SmallBasisByCategory. Thus DegreeCaps are valuable in limiting the time they consume. In particular,

NCProcess[polys, iters, "filename", DegreeCapSB -> j1,  
                          DegreeSumCapSB -> j2, OtherOptions]

produces the call

NCMakeGB[polys, iters, DegreeCap -> j1, DegreeSumCap -> j2, OtherOptions]

inside SmallBasis or SmallBasisByCategory (§More appears on this in the long document describing the commands SmallBasis and SmallBasisByCategory.

The defaults at the moment inside of NCProcess are

DegreeCapSB    →  - 1
DegreeSumCapSB      →  - 1