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 -