15.5 Details of NCProcess

The following section gives psuedocode for the NCProcess1 and NCProcess2 commands.

This psuedocode uses the function NCMakeGB which implements a Gröbner Basis Algorithm which returns partial GB’s which are reduced. In particular, running the function NCMakeGB for 0 iterations on a set F does not compute any S-polynomials, but does produce a set G which is reduced. G will be called a reduced form of F.

15.5.1 NCProcess1 command

The input to NCProcess1 is a set of starting equations start, a number of iterations n for the GBA and a collection of user selects.

The steps NCProcess1 takes are:

I. Preparation for the main call to NCMakeGB
(1) Run the GBA on the equations in start which do not involve any unknown variables together with the user selects for at most n + 1 iterations. Let A denote this partial GB.
(2) Shrink A using the RemoveRedundantProtected operation. Call this shrunken set B.
II. The main call to NCMakeGB
(3) Run NCMakeGB with the input B together with start for at most n iterations. In this NCMakeGB run, S-polynomials between two elements of the partial GB of A are not computed. Let C denote this partial GB.
III. Shrinking the partial GB
(4) Shrink C using the RemoveRedundantProtected operation. Call this shrunken set D.
(5) Let Dk be the set of polynomials in D which do not involve any unknowns. Let Du = D\Dk. Let Eu be a set of the normal forms of the elements of Du with respect to Dk. Let E = Dk Eu.
(6) Let F be the union of E and the user selects. Let G be a reduced form of F (see the beginning of §15.5).
(7) Shrink G by SmallBasisByCategory using iteration parameters n + 1 and n + 2. Call this shrunken set H.
IV. Attempt Decompose
(8) Construct the collected forms of the polynomials in H.
V. Displaying the results
(9) For elements of H, if the polynomial’s only collected form is trivial, then display the rule corresponding to the polynomial, otherwise display the collected form of the polynomial. This is the step in which the “spreadsheets” of the results of this paper are constructed.
V I. Return a three tuple to the user for future use
(10) Return the triple (A,H0,H1) to the user where A is from item 1 above, H0 is the set of polynomials in H which are digested and H1 is the set of polynomials in H which are undigested.

15.5.2 NCProcess2 command

The input to NCProcess2 is a set of starting equations start, a number of iterations n for SmallBasis and a collection of user selects.

The steps taken by NCProcess2 are:

I. Shrinking the input equations
(1) Shrink start using the RemoveRedundantProtected operation. Call this shrunken set D.
(2) Let Dk be the set of polynomials in D which do not involve any unknowns. Let Du = D\Dk. Let Eu be a set of the normal forms of the elements of Du with respect to Dk. Let E = Dk Eu.
(3) Let F be the union of E and the user selects. Let G be a reduced form of F. (see the beginning of §15.5).
(4) Shrink G by SmallBasis. Set H equal to the result of the shrinking.
II. The “Attempt Decompose” “Displaying the results” and “Return a three tuple to the user for future use” as in §15.5.1.