16.1 NCProcess: Input and Output

The commands which we use to implement a prestrategy are called NCProcess1 and NCProcess2. NCProcess1 and NCProcess2 are variants on a more general command called NCProcess. A person can make use of NCProcess1 and NCProcess2 without knowing any of the NCProcess options.

The NCProcess commands are based upon a GBA and will be described in §15.2. GBA’s are very effective at eliminating or solving for variables. A person can use this practical approach to performing computations and proving theorems without knowing anything about GBA’s. Indeed, this chapter is a self-contained description of our method.

The input to NCProcess command one needs:

I1. A list of knowns.
I2. A list of unknowns (together with an order which gives you priorities for eliminating them).
I3. A collection of equations in these knowns and unknowns. 1
I4. A number of iterations.

The knowns (I1) are set using the SetKnowns command, The unknowns (I2) are set using the SetUnknowns command, For example, SetKnowns[A,B,C] sets A, B and C known and SetUnknowns[x,y,z] sets x, y and z unknown. Also, in this case, the algorithms sets the highest prioirity on eliminating z, then y and then x. Some readers might recall this is exactly the information needed as input to NCMakeGB.

The output of the NCProcess commands is a list of expressions which are mathematically equivalent to the equations which are input (in step I3). That is, the output equations and input equations have exactly the same set of solutions as the input equations. When using NCProcess1, this equivelent list hopefully has solved for some unknowns. The output is presented to the user as

O1. Unknowns which have been solved for and equations which yield these unknowns.
O2. Equations involving no unknowns.
O3. Equations selected or created by the user. 2 For example, in the context of S1 below, one would want to select the equation E17. There are also times during a strategy when one wants to introduce new variables and equations. This is illustrated in Chapter 14.
O4. Equations involving only one unknown.
O5. Equations involving only 2 unknowns. etc.

We say that an equation which is in the output of an NCProcess command is digested if it occurs in items O1, O2 or O3 and is undigested otherwise. Often, in practice, the digested polynomial equations are those which are well understood.