
% Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
% All rights reserved.
%
% Redistribution and use in source and binary forms, with or without
% modification, are permitted provided that the following conditions are
% met:
%
%     - Redistributions of source code must retain the above copyright
%       notice, this list of conditions and the following disclaimer.
%
%     - Redistributions in binary form must reproduce the above copyright
%       notice, this list of conditions and the following disclaimer in
%       the documentation and/or other materials provided with the
%       distribution.
%
%     - Neither the name of The Numerical ALgorithms Group Ltd. nor the
%       names of its contributors may be used to endorse or promote products
%       derived from this software without specific prior written permission.
%
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
% IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
% PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
% OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES-- LOSS OF USE, DATA, OR
% PROFITS-- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


\schapter{Foreword}

You are holding in your hands an unusual book.
Winston Churchill once said that the empires of the future will be
empires of the mind.
This book might hold an electronic key to such an empire.

When computers were young and slow, the emerging computer science
developed dreams of Artificial Intelligence and Automatic Theorem
Proving in which theorems can be proved by machines instead of
mathematicians.
Now, when computer hardware has matured and become cheaper and
faster, there is not too much talk of putting the burden of
formulating and proving theorems on the computer's shoulders.
Moreover, even in those cases when computer programs do prove
theorems, or establish counter-examples (for example, the solution
of the four color problem, the non-existence of projective planes
of order 10, the disproof of the Mertens conjecture), humans carry
most of the burden in the form of programming and verification.

It is the language of computer programming that has turned out to
be the crucial instrument of productivity in the evolution of
scientific computing.
The original Artificial Intelligence efforts gave birth to the
first symbolic manipulation systems based on LISP.
The first complete symbolic manipulation or, as they are called
now, computer algebra packages tried to imbed the development
programming and execution of mathematical problems into a
framework of familiar symbolic notations, operations and
conventions.
In the third decade of symbolic computations, a couple of these
early systems---REDUCE and MACSYMA---still hold their own among
faithful users.

\Language{} was born in the mid-70's as a system called Scratchpad
developed by IBM researchers.
Scratchpad/\Language{} was born big---its original platform was an
IBM mainframe 3081, and later a 3090.
The system was growing and learning during the decade of the 80's,
and its development and progress influenced the field of computer
algebra.
During this period, the first commercially available computer
algebra packages for mini and and microcomputers made their debut.
By now, our readers are aware of Mathematica, Maple, Derive, and
Macsyma.
These systems (as well as a few special purpose computer algebra
packages in academia) emphasize ease of operation and standard
scientific conventions, and come with a prepared set of
mathematical solutions for typical tasks confronting an applied
scientist or an engineer.
These features brought a recognition of the enormous benefits of
computer algebra to the widest circles of scientists and
engineers.

The Scratchpad system took its time to blossom into the beautiful
\Language{} product.
There is no rival to this powerful environment in its scope and,
most importantly, in its structure and organization.
\Language{} contains the basis for any comprehensive and elaborate
mathematical development.
It gives the user all Foundation and Algebra instruments necessary
to develop a computer realization of sophisticated mathematical
objects in exactly the way a mathematician would do it.
\Language{} is also the basis of a complete scientific
cyberspace---it provides an environment for mathematical objects
used in scientific computation, and the means of controlling and
communicating between these objects.
Knowledge of only a few \Language{} language features and
operating principles is all that is required to make impressive
progress in a given domain of interest.
The system is powerful.
It is not an interactive interpretive environment operating only
in response to one line commands---it is a complete language with
rich syntax and a full compiler.
Mathematics can be developed and explored with ease by the user of
\Language{}.
In fact, during \Language{}'s growth cycle, many detailed
mathematical domains were constructed.
Some of them are a part of \Language{}'s core and are described in
this book.
For a bird's eye view of the algebra hierarchy of \Language{},
glance inside the book cover.

The crucial strength of \Language{} lies in its excellent
structural features and unlimited expandability---it is open,
modular system designed to support an ever growing number of
facilities with minimal increase in structural complexity.
Its design also supports the integration of other computation
tools such as numerical software libraries written in \Fortran{} and
C.
While \Language{} is already a very powerful system, the prospect
of scientists using the system to develop their own fields of
Science is truly exciting---the day is still young for
\Language{}.

Over the last several years Scratchpad/\Language{} has scored many
successes in theoretical mathematics, mathematical physics,
combinatorics, digital signal processing, cryptography and
parallel processing.
We have to confess that we enjoyed using Scratchpad/\Language{}.
It provided us with an excellent environment for our research, and
allowed us to solve problems intractable on other systems.
We were able to prove new diophantine results for $\pi$; establish
the Grothendieck conjecture for certain classes of linear
differential equations; study the arithmetic properties of the
uniformization of hyperelliptic and other algebraic curves;
construct new factorization algorithms based on formal groups;
within Scratchpad/\Language{} we were able to obtain new
identities needed for quantum field theory (elliptic genus formula
and double scaling limit for quantum gravity), and classify period
relations for CM varieties in terms of hypergeometric series.

The \Language{} system is now supported and distributed by NAG, the group
that is well known for its high quality software products for numerical
and statistical computations.
The development of \Language{} in IBM was
conducted at IBM T.J. Watson Research Center at Yorktown, New York
by a symbolic computation group headed by Richard D. Jenks.  Shmuel
Winograd of IBM was instrumental in the progress of symbolic research
at IBM.

This book opens the wonderful world of \Language{}, guiding the
reader and user through \Language{}'s definitions, rules,
applications and interfaces.
A variety of fully developed areas of mathematics are presented as
packages, and the user is well advised to take advantage of the
sophisticated realization of familiar mathematics.
The \Language{} book is easy to read and the \Language{} system is
easy to use.
It possesses all the features required of a modern computer
environment (for example, windowing, integration of operating system
features, and interactive graphics).
\Language{} comes with a detailed hypertext interface (\HyperName{}),
an elaborate browser, and complete on-line documentation.
The \HyperName{} allows novices to solve their problems in a
straightforward way, by providing menus for step-by-step
interactive entry.

The appearance of \Language{} in the scientific market moves
symbolic computing into a higher plane, where scientists can
formulate their statements in their own language and receive
computer assistance in their proofs.
\Language{}'s performance on workstations is truly impressive, and
users of \Language{} will get more from them than we, the early
users, got from mainframes.
\Language{} provides a powerful scientific environment for easy
construction of mathematical tools and algorithms; it is a
symbolic manipulation system, and a high performance numerical
system, with full graphics capabilities.
We expect every (computer) power hungry scientist will want to
take full advantage of \Language{}.

\noindent
David V. Chudnovsky  \hfill             Gregory V. Chudnovsky
