We now apply a strategy to see how one might discover this theorem.
The formalities of what a strategy is are not important here. This
chapter is designed to illustrate NCProcess and
allied commands. For a description of the formalities of a strategy
see [HS] or for a sketch see Chapter 19.
Before running NCProcess1, we must declare
,
and
to be knowns and the remaining variables to be unknowns.
The ``**" below denotes matrix multiplication.
In[1]:=Get["NCGB.m"]; In[2]:=SetNonCommuative[A,B,C0,m1,m2,n1,n2]; In[3]:=SetKnowns[A,B,C]; In[4]:=SetUnknowns[m1,m2,n1,n2,a,b,c,e,f,g];
We now set the variable FAC equal to the list of polynomials in §17.2.
In[5]:=FAC = {A**m1 - m1**a - m2**f**c,
A**m2 - m2**e,
B - m1**b - m2**f,
-c + C0**m1,
-g + C0**m2,
n1**m1 - 1,
n1**m2,
n2**m1,
n2**m2 - 1,
m1**n1 + m2**n2 - 1};
The commands above and below will be explained in Chapter 18.
The command which produces the output in the file Spreadsheet1.dvi is the following.
In[6]:= result = NCProcess1[FAC,2,"Spreadsheet1"];
Here NCProcess1 is being applied to
the set of relations FAC for 2 iterations.
The NCProcess1 command has two outputs, one will be
stored in result and the other will be stored
in the file Spreadsheet1.dvi. The Spreadsheet1.dvi
file appears below and
is likely to be more interesting and useful than the
value of result.
The file created by NCProcess
is a list of equations whose solution set is the same
as the solution set for FAC.
(We added the
appearing below after the spreadsheet
was created.)
The
below
can be read as an equal sign.
THE ORDER IS NOW THE FOLLOWING:
YOUR SESSION HAS DIGESTED
THE FOLLOWING RELATIONS
THE FOLLOWING VARIABLES HAVE BEEN SOLVED FOR:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The above ``spreadsheet" indicates that
the unknowns
,
,
,
,
and
are solved for
and states their values. The
following are facts about the output:
(1) there are no equations in 1 unknown,
(2) there are 4 categories of equations in 2 unknowns
and (3) there is one category of equations in 4 unknowns.
A user must observe that the first equation
1which we marked with
becomes an equation in the unknown quantity
when multiplied on the right by
.
This motivates the creation of a new
variable
defined by setting
GetCategory with the following examples
In[10]:= GetCategory[{n1,m1},NCPAns ]
Out[10]= { n1**m1 - 1 }
In[11]:= GetCategory[{n1,m1,n2,m2},NCPAns ]
Out[11]= {m2**n2 + m1**n1 - 1 }
Run NCProcess1 again
3with (17.3) added
and
declared known as well as
,
and
declared known.
See Chapter 18.4 for the precise call.
The output is:
THE ORDER IS NOW THE FOLLOWING:
YOUR SESSION HAS DIGESTED
THE FOLLOWING RELATIONS
THE FOLLOWING VARIABLES HAVE BEEN SOLVED FOR:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note that the equations in the above display which are in
the undigested section (i.e., below the lowest set of bold lines)
are repeats of those which are in the digested
section (i.e., above the lowest set of bold lines).
The symbol
indicates that the polynomial
equation also appears
as a user select on
the spreadsheet.
We relist these particular equations simply as a
convenience for categorizing them. We will see how
this helps us in §17.4.
Since all equations are digested, we have finished
using NCProcess1 (see S4).
As we shall see, this output spreadsheet
leads directly to the theorem about
factoring systems.