MAS, the Modula-2 Algebra System, Version 1.00
==============================================
27th October 1996
Abstract
--------
MAS (Modula-2 Algebra System) is an experimental computer algebra
system, developed at the University of Passau. MAS combines imperative
programming facilities with algebraic specification capabilities for
design and study of algebraic algorithms. It contains a large library
of implemented Groebner basis algorithms for nearly all algebraic
structures where such methods exist. MAS further includes algorithms
for real quantifier elimination, parametric real root counting, and
for computing in (noncommutative) polynomial rings.
This document describes the MAS distribution files, installation and
new things in this release.
Distribution files
------------------
The distribution is by means of gnuzip'ed tar files. Form the
distribution files you need at least an executable, the tutorial and
the examples.
If you pick the source code we recommend to pick also the definition
module and indexes document along with it. To compile the source code
you will also need the Modula-2 to C translator "mtc", the "reuse"
library, gnumake, and a C-compiler (preferably gcc). Further we
recommend the GNU readline library and the kpathsea library.
The following files are available
- executables
mas-hppa1.1-hp-hpux9.03-1.00.tar.gz HP 9000, running HP-UX
mas-i386-unknown-os2-1.00.tar.gz Intel PC, running OS/2
mas-i486-unknown-linux-1.00.tar.gz Intel PC, running LINUX
mas-mab-next-nextstep3-1.00.tar.gz NextStep
mas-rs6000-ibm-aix3.2.5-1.00.tar.gz RS/6000, running AIX 3
mas-sparc-sun-sunos4.1.3C-1.00.tar.gz Sun Sparc, running SunOS
- documentation:
mastut.tar.gz MAS tutorial and interactive users guide in LaTeX.
mastut.ps.gz as PostScript
masdef.tar.gz MAS Modula-2 definition modules, 3 indexes
and specifications in LaTeX.
masdef.ps.gz as PostScript
- examples and test files:
masexam.tar.gz examples, help files, test files.
- Modula-2 source code:
massrc.tar.gz
Installation
------------
Unpack
------
To install MAS unpack the respective files. E.g. with
gnutar xfvz masexam.tar.gz
or
gzip -d -c masexam.tar.gz | tar -cvf -
in some directory. The files will unpack into the following
subdirectories:
mas/doc
/mastut Tutorial and Users Guide.
/masdef Definitions and indexes document.
/massys System document.
/ Executables in respective machine directory
mas Unix executable.
mas.exe OS2 executable, requires /dll.
emx.exe mas.out DOS extender and executable.
/exam Examples *.in
Copying information
.masrc initialization file.
mas.ini initialization file.
helpup.mas Help initialization file.
testall.mas Driver file for /test directory.
/help Comments and module information.
/spec Example specifications.
/test Test files.
/dll emx dyn. link libs for OS2.
/src Modula-2 source code
/maskern System dependent files, memory, IO, ...
/maslisp LISP interpreter, parsers, ...
/masmain Main program, interfaces, ...
/masarith Basic Arithmetic, integer, rational, ...
/maspoly Polynomial systems, recursive, distributive, ...
/masring Ideals, Groebner bases, algeb. geometry, ...
/masmodul Linear algebra, diophantine equations, syzygies, ...
/masnc Non-commutative solvable polynomial rings, ...
/sacring Polynomial factorization, real roots, gcd, res, ...
/masroot Real root counting, ...
/maslog Logic formuals, Real Quantifier Elimination, ...
/masdom Domain coefficients, comprehensive G bases, ...
/masib Involutive bases, ...
File naming conventions:
*.md Modula-2 definition modules.
*.mi Modula-2 implementation modules.
*.mip Modula-2 implementation modules with cpp-statements.
*.h C header files.
*.c C code files.
*.o object code files.
*.a library archives.
*.ini MAS initialization files (obsolete).
*.hlp MAS help information.
*.in MAS input files (obsolete).
*.mas MAS input files.
*.out MAS output files.
Test
----
Test the installation with the following command
[path]mas -m 4000 -E -e -o test-all
from the /exam directory. This produces a file 'test-all.out' which
you can compare to the supplied 'test-all.orig' file. The warnings are
intentional and only lines with timings should "diff"er.
Start - Stop
------------
Add the mas/bin directory to the PATH or use the complete pathname
in the following examples.
- start 'mas' or 'mas.exe' or 'emx mas.out'
- banner 'This is MAS the Modula-2 Algebra System, Version 1.xxx.'
- system prompt 'MAS: '
- system answer 'ANS: '
- input (e.g.) 'a:=2*3.' A statement is terminated by period '.'
- help with 'help.' or 'help(name).' or 'help(name,Loaded).'
- interupt ^C CNTRL-C
- leave with 'EXIT.' or 'exit.' or 'quit.'
Path and Compile
----------------
On all systems add the mas/ directory to the PATH or use the
complete pathname to call the MAS executables.
On OS2 systems also add the mas/dll directory to the LIBPATH and
reboot or use your existing emx dlls.
To compile MAS unpack the source code and create a directory
"" for your machine type. From the directory mas/
execute ../configure to generate the Makefile, then execute gnumake to
compile a mas executable.
Further details can be found in the readme file accompanying the
source code.
Notes
-----
- Some help facilities need an 'awk' program.
- The Makefiles for the source code may need an
'awk' or 'sed' program or other unix utilities.
Release and Change Notes
------------------------
Major mathematical library changes of the current version 1.0 are:
- arbitrary domain polynomial system extended to a generic
Gr"obner base package.
- added an optimized Gr"obner base package (including the
``sugar''-method) by C. Rose,
- added a package to compute factorized Gr"obner bases by
J. Pfeil,
- Improved comprehensive Gr"obner Basis algorithms using
factorization, condition evaluation and case elimination by
M. Pesch,
- a package for involutive bases by R. Grosse-Gehling,
- added a package for invariant polynomials by M. Goebel,
- added a package for counting real roots based on Hermites
method by F. Lippold,
- added a logic formula representation with simplification
package and real quantifier elimination package by A. Dolzmann,
- the linear algebra package of MAS has been improved.
Major system changes of the current version 1.0 are:
- MAS language accepts small letter key words and braces {} to
denote list expressions.
- Distribution now uses GNU autoconf for easy compilation.
- GNU readline for easier command line editing.
- Using Kpathsearch Library from K. Berry.
- Improved batch processing capabilities.
- Improved error handling and user signal processing to examine
long running computations.
- Generic garbage collection support for most architectures.
Major mathematical library changes between release 0.6 and 0.7 are:
- added comprehensive Groebner base package by E. Schoenfeld,
- arbitrary domain polynomial system implemented,
- added several new basic arithmetic packages: complex numbers,
quaternion numbers, octonion numbers, finite fields,
- added package for computation in non-commutative polynomial
rings of solvable type: *-product, left Groebner base,
two-sided Groebner base, elements in the center,
- added a package for the computation of generators for the
module of syzygies of systems of homogeneous polynomial
equations and Groebner bases for modules over polynomial rings
(also available for solvable polynomial rings) by J. Phillip,
- added universal Groebner base package by T. Belkahia,
- added d-Groebner base and e-Groebner base packages for Groebner
bases over the integers and univariate rational polynomial
rings by W. Mark.
The major system changes between release 0.6 and 0.7 (April 1993) are:
- Distribution based on Modula-2 to C translator and a C
distribution which will work on 'most' workstations.
- New support for PC 386 and higher (OS2 2.0 and higher) with emx
dll runtime libraries.
- New support for PC 386 and higher (DOS 5.0) with emx DOS
extender (10 times faster).
- Dropped support for the Atari, Amiga and PC XT up to 286
versions. That means, that we do no more distribute
executables for these systems, but if you have the maskern(el)
you can get the new source code (except maskern) and compile it
on your system.
- The HELP and help command has been changed to provide name
ranges and more information from the procedure comments.
The major changes between release 0.3 and 0.6 (March 1991) are:
- added language extensions for specification capabilities,
- added a parser for the ALDES language and possibility for
interpretation of ALDES programs,
- added a linear algebra package,
- added an interface between the MAS language and the
distributive polynomial system,
- improved symbol handling by hash tables combined with balanced
trees,
- EMS support for IBM PC implementations.
The minor changes between release 0.3 and 0.6 are:
- PRAGMA construct for the state definition of the MAS
executable.
- Overloading of MAS arithmetical operators by generic function
names.
- Typed string constants in MAS expressions.
- VAR parameters in MAS procedure declarations in ALDES style.
- Static scope analysis by the parser.
- Explicit stack overflow check since not all compilers
handled stack overflow correctly.
Release notes for Version 0.3 (November 1989):
- The MAS parser has been changed for better Modula-2
compatibility.
- MAS LISP has been made more robust against incorrect user
input.
- The MAS main program has been enhanced to recognize the
following command line parameters:
-m number-of-KB
-f data-set-name
- the memory option '-m' gives the number of Kilo-Byte
storage, requested from the operating system.
- the file name option '-f' can be used to overwrite the
default file name 'MAS.INI' during startup. With this
option MAS can be run in batch mode if the EXIT
statement is contained in the data set.
Availability
------------
MAS (0.3x, 0.6x, 0.7x and 1.0x) is available from:
ftp://alice.fmi.uni-passau.de/pub/ComputerAlgebraSystems/mas
You can get more information about MAS from:
http://alice.fmi.uni-passau.de/mas.html
Send bug-reports, questions, remarks to:
mailto:mas@alice.fmi.uni-passau.de
Acknowledgments
----------------
Due to limited space we apologize for only global thanks to all who
made contributions and influenced the project.
Copyrights: MAS: (c) 1989-1996, by H. Kredel, University Mannheim,
M. Pesch, University Passau.
---------- ALDES/SAC-2: (c) 1982, by G.E.Collins, R.Loos.
All Rights Reserved. Permission is granted for unrestricted
noncommercial use and noncommercial redistribution if the copyright
notice is retained when a copy is made. There are no known bugs,
however we disclaim any usefulness and make no warranty on the
correctness of the Modula-2 Algebra System. For certain machines
and/or operating systems further copying restrictions apply, e.g. see
the files
copying.mas, copying.reuse, copying.mtc,
copying.emx, copying, copying.lib and copying.bsd
in the exam directory.
The C code has been generated from the Modula-2 sources of MAS
with the 'mtc' 'Modula-2 to C' translator by GMD Karlsruhe.
Although it is not required, you should get a copy of it from some
ftp site to have the sources of the used libraries.
The executables for PC have been compiled using the GNU gcc compiler
with the emx runtime system by Ernst Mattes. The latest versions and
documentation of emx can also be found on ftp servers.
Heinz Kredel Michael Pesch
Universitaet Mannheim Universitaet Passau
D-68131 Mannheim D-94030 Passau
Germany Germany
kredel@rz.uni-mannheim.de pesch@alice.fmi.uni-passau.de
Tel.: +49/621/292-5673 or -5233 Tel.: +49/851/509-3123 or -3121
- EOF -