diff --git a/books/Makefile.pamphlet b/books/Makefile.pamphlet
index 29d14bc..ffc5dbf 100644
--- a/books/Makefile.pamphlet
+++ b/books/Makefile.pamphlet
@@ -35,7 +35,8 @@ BOOKPDF=${PDF}/bookvol0.pdf    ${PDF}/bookvol1.pdf    ${PDF}/bookvol2.pdf \
         ${PDF}/bookvol10.pdf   ${PDF}/bookvol10.1.pdf ${PDF}/bookvol10.2.pdf \
         ${PDF}/bookvol10.3.pdf ${PDF}/bookvol10.4.pdf ${PDF}/bookvol10.5.pdf \
         ${PDF}/bookvol11.pdf   ${PDF}/bookvol12.pdf   ${PDF}/bookvol13.pdf \
-        ${PDF}/bookvolbib.pdf
+        ${PDF}/bookvolbib.pdf  \
+        ${PDF}/refcard.pdf     ${PDF}/endpaper.pdf    ${PDF}/rosetta.pdf
 
 all: announce ${BOOKPDF} ${PDF}/toc.pdf 
 	@(cd ${PDF} ; ${RM} *.out *.toc *.sty *.def *.png)
diff --git a/books/endpaper.pamphlet b/books/endpaper.pamphlet
new file mode 100644
index 0000000..20cb1b0
--- /dev/null
+++ b/books/endpaper.pamphlet
@@ -0,0 +1,617 @@
+\documentclass{book}
+%\usepackage{axiom}
+%
+% 2006-04-08.  The original (correct) usepackage line below
+%\usepackage[dvips,final,colorlinks=true,pdfstartview=FitH]{hyperref}
+% has been changed to the following one inorder to ease the
+% compilation of axiom on distributions (like Debian sarge) that have
+% an older version of hyperref TeX package (where the `final' option
+% is missing). It should be restored once the latest version (>=
+% 2003/11/30 v6.74m) of hyperref are more widespread.
+\usepackage[dvips,colorlinks=true,pdfstartview=FitH]{hyperref}
+\usepackage{pstricks}
+\usepackage{pst-node}
+\begin{document}
+\title{endpapers}
+\author{Timothy Daly}
+\maketitle
+\tableofcontents
+\vfill
+\eject
+\section{Basic Algebra Hierarchy Diagram}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 1 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.
+{\hbox{\hskip 4.0cm}}
+% SETCAT SetCategory
+{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 2
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\hbox{\hskip 1.0cm}}
+{\vbox{\vskip 1.0cm}}
+% ABELSG AbelianSemiGroup
+{\psframebox{{\rnode{abelsg}{\href{catdef.spad.dvi}{abelsg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{abelsg}
+{\hbox{\hskip 0.1cm}}
+% SGROUP SemiGroup
+{\psframebox{{\rnode{sgroup}{\href{catdef.spad.dvi}{sgroup}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{sgroup}
+{\hbox{\hskip 0.2cm}}
+% ORDSET OrderedSet
+{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset}
+{\hbox{\hskip 4.0cm}}
+% FINITE Finite
+{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 3
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.0cm}}
+% ABELMON AbelianMonoid
+{\psframebox{{\rnode{abelmon}{\href{catdef.spad.dvi}{abelmon}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelsg}{abelmon}
+% MONOID Monoid
+{\psframebox{{\rnode{monoid}{\href{catdef.spad.dvi}{monoid}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{monoid}
+{\hbox{\hskip 1.5cm}}
+% ORDFIN OrderedFinite
+{\psframebox{{\rnode{ordfin}{\href{catdef.spad.dvi}{ordfin}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordfin}
+\ncLine[nodesep=3pt,linestyle=solid]{finite}{ordfin}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 4
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.0cm}}
+% CABMON CancellationAbelianMonoid
+{\psframebox{{\rnode{cabmon}{\href{catdef.spad.dvi}{cabmon}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{cabmon}
+{\hbox{\hskip 2.0cm}}
+% OASGP OrderedAbelianSemiGroup
+{\psframebox{{\rnode{oasgp}{\href{catdef.spad.dvi}{oasgp}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oasgp}
+\ncLine[nodesep=3pt,linestyle=solid]{ordset}{oasgp}
+{\hbox{\hskip 0.2cm}}
+% GROUP Group
+{\hbox{\hskip 0.1cm}}
+{\psframebox{{\rnode{group}{\href{catdef.spad.dvi}{group}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{monoid}{group}
+{\hbox{\hskip 0.55cm}}
+% ORDMON OrderedMonoid
+{\psframebox{{\rnode{ordmon}{\href{catdef.spad.dvi}{ordmon}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordmon}
+\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ordmon}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 5
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.6cm}}
+{\hbox{\hskip 3.6cm}}
+% OAMON OrderedAbelianMonoid
+{\psframebox{{\rnode{oamon}{\href{catdef.spad.dvi}{oamon}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{oasgp}{oamon}
+\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oamon}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 6
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.5cm}}
+% OCAMON OrderedCancellationAbelianMonoid
+{\psframebox{{\rnode{ocamon}{\href{catdef.spad.dvi}{ocamon}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{oamon}{ocamon}
+\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{ocamon}
+{\hbox{\hskip 2.2cm}}
+% ABELGRP AbelianGroup
+{\psframebox{{\rnode{abelgrp}{\href{catdef.spad.dvi}{abelgrp}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{abelgrp}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 7
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.875cm}}
+% OAMONS OrderedAbelianMonoidSup
+{\psframebox{{\rnode{oamons}{\href{catdef.spad.dvi}{oamons}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oamons}
+{\hbox{\hskip 0.9cm}}
+% RNG Rng
+{\psframebox{{\rnode{rng}{\href{catdef.spad.dvi}{rng}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rng}
+\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{rng}
+{\hbox{\hskip 0.1cm}}
+% LMODULE LeftModule
+{\psframebox{{\rnode{lmodule}{\href{catdef.spad.dvi}{lmodule}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{lmodule}
+% RMODULE RightModule
+{\psframebox{{\rnode{rmodule}{\href{catdef.spad.dvi}{rmodule}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rmodule}
+{\hbox{\hskip 1.7cm}}
+% OAGROUP OrderedAbelianGroup
+{\psframebox{{\rnode{oagroup}{\href{catdef.spad.dvi}{oagroup}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{oagroup}
+\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oagroup}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 8
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.0cm}}
+{\hbox{\hskip 0.7cm}}
+% RING Ring
+{\psframebox{{\rnode{ring}{\href{catdef.spad.dvi}{ring}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{ring}
+\ncLine[nodesep=3pt,linestyle=solid]{rng}{ring}
+\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ring}
+{\hbox{\hskip 4.2cm}}
+% BMODULE BiModule
+{\psframebox{{\rnode{bmodule}{\href{catdef.spad.dvi}{bmodule}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{bmodule}
+\ncLine[nodesep=3pt,linestyle=solid]{rmodule}{bmodule}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.2cm}}
+{\hbox{\hskip 4.5cm}}
+% LINEXP LinearlyExplicitRingOver
+{\psframebox{{\rnode{linexp}{\href{catdef.spad.dvi}{linexp}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{linexp}
+{\hbox{\hskip 1.3cm}}
+% MODULE Module
+{\psframebox{{\rnode{module}{\href{catdef.spad.dvi}{module}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{module}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 10
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\hbox{\hskip 5.0cm}}
+% FLINEXP FullyLinearlyExplicitRingOver
+{\psframebox{{\rnode{flinexp}{\href{catdef.spad.dvi}{flinexp}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{linexp}{flinexp}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 11
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\hbox{\hskip 7.7cm}}
+% VSPACE VectorSpace
+{\psframebox{{\rnode{vspace}{\href{catdef.spad.dvi}{vspace}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{module}{vspace}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 12
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.2cm}}
+{\hbox{\hskip 0.7cm}}
+% DIFRING DifferentialRing
+{\psframebox{{\rnode{difring}{\href{catdef.spad.dvi}{difring}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{difring}
+{\hbox{\hskip 0.4cm}}
+% CHARNZ CharacteristicNonZero
+{\psframebox{{\rnode{charnz}{\href{catdef.spad.dvi}{charnz}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{charnz}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 13
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% PDRING PartialDifferentialRing
+{\psframebox{{\rnode{pdring}{\href{catdef.spad.dvi}{pdring}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{pdring}
+{\hbox{\hskip 0.6cm}}
+% CHARZ CharacteristicZero
+{\psframebox{{\rnode{charz}{\href{catdef.spad.dvi}{charz}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{charz}
+{\hbox{\hskip 1.0cm}}
+% ALGEBRA Algebra
+{\psframebox{{\rnode{algebra}{\href{catdef.spad.dvi}{algebra}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{algebra}
+\ncLine[nodesep=3pt,linestyle=solid]{module}{algebra}
+\ncLine[nodesep=3pt,linestyle=solid]{charnz}{algebra}
+% ENTIRER EntireRing
+{\psframebox{{\rnode{entirer}{\href{catdef.spad.dvi}{entirer}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{entirer}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{entirer}
+% COMRING CommutativeRing
+{\psframebox{{\rnode{comring}{\href{catdef.spad.dvi}{comring}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{comring}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{comring}
+% ORDRING OrderedRing
+{\psframebox{{\rnode{ordring}{\href{catdef.spad.dvi}{ordring}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ring}{ordring}
+\ncLine[nodesep=3pt,linestyle=solid]{oagroup}{ordring}
+\ncLine[nodesep=3pt,linestyle=solid]{ordmon}{ordring}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 14
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.8cm}}
+{\hbox{\hskip 2.1cm}}
+% DIFEXT DifferentialExtension
+{\psframebox{{\rnode{difext}{\href{catdef.spad.dvi}{difext}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{pdring}{difext}
+\ncLine[nodesep=3pt,linestyle=solid]{difring}{difext}
+\ncLine[nodesep=3pt,linestyle=solid]{charz}{difext}
+\ncLine[nodesep=3pt,linestyle=solid]{charnz}{difext}
+{\hbox{\hskip 2.0cm}}
+% DIVRING DivisionRing
+{\psframebox{{\rnode{divring}{\href{catdef.spad.dvi}{divring}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{algebra}{divring}
+\ncLine[nodesep=3pt,linestyle=solid]{entirer}{divring}
+% INTDOM IntegralDomain
+{\psframebox{{\rnode{intdom}{\href{catdef.spad.dvi}{intdom}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{algebra}{intdom}
+\ncLine[nodesep=3pt,linestyle=solid]{comring}{intdom}
+\ncLine[nodesep=3pt,linestyle=solid]{entirer}{intdom}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 15
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.2cm}}
+{\hbox{\hskip 7.3cm}}
+% GCDDOM GcdDomain
+{\psframebox{{\rnode{gcddom}{\href{catdef.spad.dvi}{gcddom}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{intdom}{gcddom}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 16
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.2cm}}
+{\hbox{\hskip 5.4cm}}
+% UFD UniqueFactorizationDomain
+{\psframebox{{\rnode{ufd}{\href{catdef.spad.dvi}{ufd}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{ufd}
+{\hbox{\hskip 2.5cm}}
+% PID PrincipalIdealDomain
+{\psframebox{{\rnode{pid}{\href{catdef.spad.dvi}{pid}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{pid}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 17
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.2cm}}
+{\hbox{\hskip 5.0cm}}
+% PFECAT PolynomialFactorizationExplicit
+{\psframebox{{\rnode{pfecat}{\href{catdef.spad.dvi}{pfecat}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ufd}{pfecat}
+{\hbox{\hskip 2.0cm}}
+% EUCDOM EuclideanDomain
+{\psframebox{{\rnode{eucdom}{\href{catdef.spad.dvi}{eucdom}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{pid}{eucdom}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 18
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.2cm}}
+{\hbox{\hskip 7.0cm}}
+% FIELD Field
+{\psframebox{{\rnode{field}{\href{catdef.spad.dvi}{field}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ufd}{field}
+\ncLine[nodesep=3pt,linestyle=solid]{eucdom}{field}
+\ncLine[nodesep=3pt,linestyle=solid]{divring}{field}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 19
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\hbox{\hskip 5.0cm}}
+% FPC FieldOfPrimeCharacteristic
+{\psframebox{{\rnode{fpc}{\href{ffcat.spad.dvi}{fpc}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{field}{fpc}
+\ncLine[nodesep=3pt,linestyle=solid]{charnz}{fpc}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 20
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\hbox{\hskip 9.7cm}}
+% FFIELDC FiniteFieldCategory
+{\psframebox{{\rnode{ffieldc}{\href{ffcat.spad.dvi}{ffieldc}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{fpc}{ffieldc}
+\ncLine[nodesep=3pt,linestyle=solid]{finite}{ffieldc}
+\vfill
+\eject
+\section{Basic Algebra Hierarchy}
+{\bf SETCAT SetCategory}\\
+{\bf ABELSG AbelianSemiGroup}\\
+{\bf SGROUP SemiGroup}\\
+{\bf ORDSET OrderedSet}\\
+{\bf FINITE Finite}\\
+{\bf ABELMON AbelianMonoid}\\
+{\bf MONOID Monoid}\\
+{\bf ORDFIN OrderedFinite}\\
+{\bf CABMON CancellationAbelianMonoid}\\
+{\bf OASGP OrderedAbelianSemiGroup}\\
+{\bf GROUP Group}\\
+{\bf ORDMON OrderedMonoid}\\
+{\bf OAMON OrderedAbelianMonoid}\\
+{\bf OCAMON OrderedCancellationAbelianMonoid}\\
+{\bf ABELGRP AbelianGroup}\\
+{\bf OAMONS OrderedAbelianMonoidSup}\\
+{\bf RNG Rng}\\
+{\bf LMODULE LeftModule}\\
+{\bf RMODULE RightModule}\\
+{\bf OAGROUP OrderedAbelianGroup}\\
+{\bf RING Ring}\\
+{\bf BMODULE BiModule}\\
+{\bf LINEXP LinearlyExplicitRingOver}\\
+{\bf MODULE Module}\\
+{\bf FLINEXP FullyLinearlyExplicitRingOver}\\
+{\bf VSPACE VectorSpace}\\
+{\bf DIFRING DifferentialRing}\\
+{\bf CHARNZ CharacteristicNonZero}\\
+{\bf PDRING PartialDifferentialRing}\\
+{\bf CHARZ CharacteristicZero}\\
+{\bf ALGEBRA Algebra}\\
+{\bf ENTIRER EntireRing}\\
+{\bf COMRING CommutativeRing}\\
+{\bf ORDRING OrderedRing}\\
+{\bf DIFEXT DifferentialExtension}\\
+{\bf DIVRING DivisionRing}\\
+{\bf INTDOM IntegralDomain}\\
+{\bf GCDDOM GcdDomain}\\
+{\bf UFD UniqueFactorizationDomain}\\
+{\bf PID PrincipalIdealDomain}\\
+{\bf PFECAT PolynomialFactorizationExplicit}\\
+{\bf EUCDOM EuclideanDomain}\\
+{\bf FIELD Field}\\
+{\bf FPC FieldOfPrimeCharacteristic}\\
+{\bf FFIELDC FiniteFieldCategory}
+\vfill
+\eject
+\section{Data Structure Hierarchy Diagram}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 1 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.
+{\hbox{\hskip 2.8cm}}
+% SETCAT SetCategory
+{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}}
+{\hbox{\hskip 1.0cm}}
+% AGG Aggregate
+{\psframebox{{\rnode{agg}{\href{catdef.spad.dvi}{agg}}}}}
+{\hbox{\hskip 0.5cm}}
+% ELTAGG EltableAggregate
+{\psframebox{{\rnode{eltagg}{\href{catdef.spad.dvi}{eltagg}}}}}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 2
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\hbox{\hskip 4.2cm}}
+% HOAGG HomogeneousAggregate
+{\psframebox{{\rnode{hoagg}{\href{catdef.spad.dvi}{hoagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{hoagg}
+\ncLine[nodesep=3pt,linestyle=solid]{agg}{hoagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 3
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.0cm}}
+% ARR2CAT TwoDimensionalArrayCategory
+{\psframebox{{\rnode{arr2cat}{\href{array2.spad.dvi}{arr2cat}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{arr2cat}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 4
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.3cm}}
+% MATCAT MatrixCategory
+{\psframebox{{\rnode{matcat}{\href{matcat.spad.dvi}{matcat}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{arr2cat}{matcat}
+% BGAGG BagAggregate
+{\psframebox{{\rnode{bgagg}{\href{aggcat.spad.dvi}{bgagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{bgagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 5
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.8cm}}
+% SKAGG StackAggregate
+{\psframebox{{\rnode{skagg}{\href{aggcat.spad.dvi}{skagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{skagg}
+{\hbox{\hskip 0.75cm}}
+% QUAGG QueueAggregate
+{\psframebox{{\rnode{quagg}{\href{aggcat.spad.dvi}{quagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{quagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 6
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.5cm}}
+% DQAGG DequeueAggregate
+{\psframebox{{\rnode{dqagg}{\href{aggcat.spad.dvi}{dqagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{skagg}{dqagg}
+\ncLine[nodesep=3pt,linestyle=solid]{quagg}{dqagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 7
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.5cm}}
+{\hbox{\hskip 3.4cm}}
+% CLAGG Collection
+{\psframebox{{\rnode{clagg}{\href{aggcat.spad.dvi}{clagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{clagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 8
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.2cm}}
+% DIOPS DictionaryOperations
+{\psframebox{{\rnode{diops}{\href{aggcat.spad.dvi}{diops}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{diops}
+\ncLine[nodesep=3pt,linestyle=solid]{clagg}{diops}
+% PRQAGG PriorityQueueAggregate
+{\psframebox{{\rnode{prqagg}{\href{aggcat.spad.dvi}{prqagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{prqagg}
+% FINITE Finite
+{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite}
+{\hbox{\hskip 1.7cm}}
+% SETAGG SetAggregate
+{\psframebox{{\rnode{setagg}{\href{aggcat.spad.dvi}{setagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{clagg}{setagg}
+% RCAGG RecursiveAggregate
+{\psframebox{{\rnode{rcagg}{\href{aggcat.spad.dvi}{rcagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{rcagg}
+% IXAGG IndexedAggregate
+{\psframebox{{\rnode{ixagg}{\href{aggcat.spad.dvi}{ixagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{ixagg}
+\ncLine[nodesep=3pt,linestyle=solid]{eltagg}{ixagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.5cm}}
+{\hbox{\hskip 6.0cm}}
+% DLAGG DoublyLinkedAggregate
+{\psframebox{{\rnode{dlagg}{\href{aggcat.spad.dvi}{dlagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{dlagg}
+{\hbox{\hskip 1.3cm}}
+% DIRPCAT DirectProductCategory
+{\psframebox{{\rnode{dirpcat}{\href{vector.spad.dvi}{dirpcat}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{dirpcat}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 10
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 3.1cm}}
+{\hbox{\hskip 6.3cm}}
+% LNAGG LinearAggregate
+{\psframebox{{\rnode{lnagg}{\href{aggcat.spad.dvi}{lnagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{clagg}{lnagg}
+\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{lnagg}
+% URAGG UnaryRecursiveAggregate
+{\psframebox{{\rnode{uragg}{\href{aggcat.spad.dvi}{uragg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{uragg}
+% BRAGG BinaryRecursiveAggregate
+{\psframebox{{\rnode{bragg}{\href{aggcat.spad.dvi}{bragg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{bragg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 11
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 0.5cm}}
+{\hbox{\hskip 9.0cm}}
+% BTCAT BinaryTreeCategory
+{\psframebox{{\rnode{btcat}{\href{tree.spad.dvi}{btcat}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{bragg}{btcat}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 12
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.0cm}}
+% DIAGG Dictionary
+{\psframebox{{\rnode{diagg}{\href{aggcat.spad.dvi}{diagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{diops}{diagg}
+{\hbox{\hskip 3.1cm}}
+% MDAGG MultiDictionary
+{\psframebox{{\rnode{mdagg}{\href{aggcat.spad.dvi}{mdagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{diops}{mdagg}
+% ORDSET OrderedSet
+{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset}
+% ELAGG ExtensibleLinearAggregate
+{\psframebox{{\rnode{elagg}{\href{aggcat.spad.dvi}{elagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{elagg}
+% STAGG StreamAggregate
+{\psframebox{{\rnode{stagg}{\href{aggcat.spad.dvi}{stagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{stagg}
+\ncLine[nodesep=3pt,linestyle=solid]{uragg}{stagg}
+% FLAGG FiniteLinearAggregate
+{\psframebox{{\rnode{flagg}{\href{aggcat.spad.dvi}{flagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{flagg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 13
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.5cm}}
+% KDAGG KeyedDictionary
+{\psframebox{{\rnode{kdagg}{\href{aggcat.spad.dvi}{kdagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{diagg}{kdagg}
+{\hbox{\hskip 1.0cm}}
+% FSAGG FiniteSetAggregate
+{\psframebox{{\rnode{fsagg}{\href{aggcat.spad.dvi}{fsagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{diagg}{fsagg}
+\ncLine[nodesep=3pt,linestyle=solid]{finite}{fsagg}
+\ncLine[nodesep=3pt,linestyle=solid]{clagg}{fsagg}
+% MSETAGG MultisetAggregate
+{\psframebox{{\rnode{msetagg}{\href{aggcat.spad.dvi}{msetagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{mdagg}{msetagg}
+\ncLine[nodesep=3pt,linestyle=solid]{clagg}{msetagg}
+{\hbox{\hskip 1.4cm}}
+% LZSTAGG LazyStreamAggregate
+{\psframebox{{\rnode{lzstagg}{\href{stream.spad.dvi}{lzstagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lzstagg}
+% LSAGG ListAggregate
+{\psframebox{{\rnode{lsagg}{\href{aggcat.spad.dvi}{lsagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{elagg}{lsagg}
+\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lsagg}
+\ncLine[nodesep=3pt,linestyle=solid]{flagg}{lsagg}
+{\hbox{\hskip 0.3cm}}
+% A1AGG OneDimensionalArrayAggregate
+{\psframebox{{\rnode{a1agg}{\href{aggcat.spad.dvi}{a1agg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{flagg}{a1agg}\\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% level 14
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\vbox{\vskip 1.0cm}}
+% TBAGG TableAggregate
+{\psframebox{{\rnode{tbagg}{\href{aggcat.spad.dvi}{tbagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{kdagg}{tbagg}
+\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{tbagg}
+% OMSAGG OrderedMultiSetAggregate
+{\psframebox{{\rnode{omsagg}{\href{aggcat.spad.dvi}{omsagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{prqagg}{omsagg}
+\ncLine[nodesep=3pt,linestyle=solid]{msetagg}{omsagg}
+{\hbox{\hskip 3.1cm}}
+% BTAGG BitAggregate
+{\psframebox{{\rnode{btagg}{\href{aggcat.spad.dvi}{btagg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{ordset}{btagg}
+\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{btagg}
+{\hbox{\hskip 1.0cm}}
+% SRAGG StringAggregate
+{\psframebox{{\rnode{sragg}{\href{aggcat.spad.dvi}{sragg}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{sragg}
+% VECTCAT VectorCategory
+{\psframebox{{\rnode{vectcat}{\href{vector.spad.dvi}{vectcat}}}}}
+\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{vectcat}
+\vfill
+\eject
+\section{Data Structure Hierarchy Diagram}
+{\bf SETCAT SetCategory}\\
+{\bf AGG Aggregate}\\
+{\bf ELTAGG EltableAggregate}\\
+{\bf HOAGG HomogeneousAggregate}\\
+{\bf ARR2CAT TwoDimensionalArrayCategory}\\
+{\bf MATCAT MatrixCategory}\\
+{\bf BGAGG BagAggregate}\\
+{\bf SKAGG StackAggregate}\\
+{\bf QUAGG QueueAggregate}\\
+{\bf DQAGG DequeueAggregate}\\
+{\bf CLAGG Collection}\\
+{\bf DIOPS DictionaryOperations}\\
+{\bf PRQAGG PriorityQueueAggregate}\\
+{\bf FINITE Finite}\\
+{\bf SETAGG SetAggregate}\\
+{\bf RCAGG RecursiveAggregate}\\
+{\bf IXAGG IndexedAggregate}\\
+{\bf DLAGG DoublyLinkedAggregate}\\
+{\bf DIRPCAT DirectProductCategory}\\
+{\bf LNAGG LinearAggregate}\\
+{\bf URAGG UnaryRecursiveAggregate}\\
+{\bf BRAGG BinaryRecursiveAggregate}\\
+{\bf BTCAT BinaryTreeCategory}\\
+{\bf DIAGG Dictionary}\\
+{\bf MDAGG MultiDictionary}\\
+{\bf ORDSET OrderedSet}\\
+{\bf ELAGG ExtensibleLinearAggregate}\\
+{\bf STAGG StreamAggregate}\\
+{\bf FLAGG FiniteLinearAggregate}\\
+{\bf KDAGG KeyedDictionary}\\
+{\bf FSAGG FiniteSetAggregate}\\
+{\bf MSETAGG MultisetAggregate}\\
+{\bf LZSTAGG LazyStreamAggregate}\\
+{\bf LSAGG ListAggregate}\\
+{\bf A1AGG OneDimensionalArrayAggregate}\\
+{\bf TBAGG TableAggregate}\\
+{\bf OMSAGG OrderedMultiSetAggregate}\\
+{\bf BTAGG BitAggregate}\\
+{\bf SRAGG StringAggregate}\\
+{\bf VECTCAT VectorCategory}
+\vfill
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} Jenks, Richard D., Sutor, Robert S.,
+{\sl AXIOM The Scientific Computation System},
+Springer-Verlag, NY 1992, 
+ISBN 0-387-97855-0
+\bibitem{2} The Axiom Team,
+{\sl AXIOM The 30 Year Horizon},
+Tim Daly (Ed), 2004,
+{\bf http://savannah.nongnu.org/projects/axiom}
+\bibitem{3} The Axiom Team,
+{\sl AXIOM Volume 1 Tutorial},
+Tim Daly (Ed), 2004,
+{\bf http://savannah.nongnu.org/projects/axiom}
+\bibitem{4} The Axiom Team,
+{\sl AXIOM Volume 2 Programming},
+Tim Daly (Ed), 2004,
+{\bf http://savannah.nongnu.org/projects/axiom}
+\bibitem{5} The Axiom Team,
+{\sl AXIOM Volume 3 Reference},
+Tim Daly (Ed), 2004,
+{\bf http://savannah.nongnu.org/projects/axiom}
+\bibitem{6} The Axiom Team,
+{\sl AXIOM Volume 4 Developers},
+Tim Daly (Ed), 2004,
+{\bf http://savannah.nongnu.org/projects/axiom}
+\end{thebibliography}
+\end{document}
diff --git a/books/refcard.pamphlet b/books/refcard.pamphlet
new file mode 100644
index 0000000..ef6afbe
--- /dev/null
+++ b/books/refcard.pamphlet
@@ -0,0 +1,514 @@
+\documentclass{article}
+\usepackage[landscape]{geometry}
+\usepackage{multicol}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\advance\topmargin-.8in
+\advance\textheight2in
+\advance\textwidth3in
+\advance\oddsidemargin-1.5in
+\advance\evensidemargin-1.5in
+\parindent0pt
+\parskip2pt
+\newcommand{\hr}{\centerline{\rule{3.5in}{1pt}}}
+\begin{document}
+\begin{multicols*}{3}
+\begin{center}
+\textbf{Axiom Quick Reference (January 2008)}\\
+\end{center}
+
+\textbf{Command Line}
+
+)cd $\langle$pathname$\rangle$
+
+)clear all -- clear workspace
+
+)display op $\langle$function$\rangle$ -- function arguments
+
+)set message autoload off -- quietly load algebra
+
+)set message bottom on -- show selection process
+
+)set stream calculate 20 -- number of terms to calculate
+
+)show $\langle$domain$\rangle$ -- list all functions
+
+)spool $\langle${\sl filename}$\rangle$ -- start save session
+
+)spool -- close spool file
+
+)trace $\langle$domain$\rangle$ )math -- trace execution
+
+)quit -- exit Axiom
+
+)read $\langle$filename$\rangle$[.input] -- evaluate a file
+
+)sys $\langle$command line$\rangle$ -- execute command
+
+\_ continues input lines or escapes chars \verb|a_ b| = ``a b''
+
+\% is last value
+
+\%\%(n) is $n$th value
+
+-- and ++ start comment lines
+
+%*********************************************
+\hr\textbf{Programming}
+
+assignment: var := value\\
+\hbox{\hskip 2cm}x:=3
+
+conditional: if $\langle$pred$\rangle$ then $\langle$truecase$\rangle$
+else $\langle$falsecase$\rangle$\\
+\hbox{\hskip 2cm}\verb|if (2 > 4) then 4 else 5|
+
+loop: for $\langle$pred$\rangle$ repeat $\langle$block$\rangle$\\
+\hbox{\hskip 2cm}\verb|for i in 1..5 repeat print i|
+\hbox{\hskip 2cm}\verb|while i < 3 repeat (print i ; i:=i+1)|
+
+function: $f(x)=x^2$ \\
+\hbox{\hskip 2cm}\verb|f(x)==x^2|
+
+anon. function: \verb|g:=x +-> x+1| \quad g(3) $\rightarrow$ 4
+
+Indentation is significant:\\
+\hbox{\hskip 2cm}\verb|f(x)==(x > 3 => x ; 0)|\\
+\hbox{\hskip 2cm}\verb|f(x)==|\\
+\hbox{\hskip 2.4cm}\verb|x > 3 => x|\\
+\hbox{\hskip 2.4cm}\verb|0|
+
+%*********************************************
+\hr\textbf{Basic constants and functions}
+
+$\pi=$ \verb|%pi| \quad $e=$ \verb|%e| \quad $i=$ \verb|%i| 
+\quad $\infty=$ \verb|%infinity|
+
+$+\infty$=\verb|%plusInfinity|\quad $-\infty$=\verb|%minusInfinity|
+
+\verb|numeric(%pi)| $=3.1415926535\ 897932385$
+
+%Binary operations: \verb|+  -  *  /  ^|
+
+Functions: \verb|sin cos tan sec csc cot sinh cosh tanh| \verb|sech csch coth log ln exp|
+
+$ab=$ \verb|a*b| \quad $\frac a b=$ \verb|a/b| 
+\quad 
+$a^b=$ \verb|a^b| \quad $\sqrt{x}=$ \verb|sqrt(x)|
+
+$\sqrt[n]{x}=$\verb|x^(1/n)|
+$|x|=$\verb|abs(x)|
+$\log_b(x)=$\verb|log(x)/log(b)|
+
+%*********************************************
+\hr\textbf{Operations on expressions}
+
+\verb|factor(...)|\qquad \verb|expand(...)|\qquad \verb|simplify(...)|
+
+Symbolic equations: \verb|f(x)=g(x)|
+
+Solve $f(x)=g(x)$: \verb| solve(f(x)=g(x),x)|
+
+\verb|solve([x^2*y-1,x*y^2-2],.01)|\\
+\hbox{\hskip 2.0cm} $\rightarrow$ $[[y=1.5859375,x=0.79296875]]$
+
+\verb|complexSolve([x^2*y-1,x*y^2-2],1/1000)|
+
+\verb|radicalSolve([x^2/a+a+y^3-1,a*y+a+1],[x,y])|
+
+$\displaystyle\sum_{i=k}^n f(i)=$ \verb|reduce(+,[f(i) for i in k..n])|
+
+$\displaystyle\prod_{i=k}^n f(i)=$ \verb|reduce(*,[f(i) for i in k..n])|
+
+%*********************************************
+\hr\textbf{Pattern Matching}
+
+logrule:=rule log(x)+log(y) == log(x*y) $\rightarrow$\\
+\hbox{\hskip 2.1cm}\verb|log(y)+log(x)+%B==log(x y)+%B|
+
+f:=log sin x + log x $\rightarrow$ log(sin(x))+log(x)
+
+logrule f $\rightarrow$ log(x sin(x))
+
+%*********************************************
+\hr\textbf{Calculus}
+
+$\displaystyle\lim_{x\to a} f(x)=$ \verb|limit(f(x), x=a)|
+
+$\displaystyle\lim_{x\to a^-} f(x)=$ \verb|limit(f(x), x=a, "left")|
+
+$\displaystyle\lim_{x\to a^+} f(x)=$ \verb|limit(f(x), x=a, "right")|
+
+$\displaystyle\lim_{x\to \infty} f(x)=$ \verb|limit(f(x), x=%plusInfinity)|
+
+\verb|limit(sin(x)/x,x=%plusInfinity)| $\rightarrow$ 0
+
+\verb|complexLimit(sin(x)/x,x=%infinity)| $\rightarrow$ "failed"
+
+$\frac{d}{dx}(f(x))=$ \verb|D(f(x),x)|
+
+$\frac{\partial}{\partial x}(f(x,y))=$ \verb|D(f(x,y),x)|
+
+$\int f(x)dx=$ \verb|integrate(f(x),x)|
+
+$\int_a^b f(x)dx=$ \verb|integrate(f(x),x=a..b)|
+
+%*********************************************
+\hr\textbf{Series}
+
+x:=series 'x
+
+y:=sin(x) $\rightarrow$ 
+$x-\frac{1}{6}x^3+\frac{1}{120}x^5-\frac{1}{5040}x^7+O(x^9)$
+
+coefficient(y,3) $\rightarrow$ $-\frac{1}{6}$
+
+taylor(f(x),x=a)
+
+laurent(x/log(x),x=1)
+
+\verb|puiseux(sqrt(sec(x)),x=3*%pi/2)|
+
+%*********************************************
+\hr\textbf{2D graphics}
+
+\verb|draw(cos(5*t/8),t=0..16*%pi,coordinates==polar)|
+
+\verb|f(t:SF):SF == sin(3*t/5)|
+
+\verb|g(t:SF):SF == sin(t)|
+
+\verb|draw(curve(f,g),0..%pi)|
+
+\verb|draw(x^2+y^3-1=0,x,y,range==[-1..1,-1..1])|
+
+v1:=draw(Gamma(i),i=-4.2..4,adaptive==true)
+
+v2:=draw(1/Gamma(i),i=-4.2..4,adaptive==true)
+
+putGraph(v2,getGraph(v1,1),2)
+
+makeViewport2D(v2)
+
+options: adaptive clip toScale curveColor pointColor\\
+unit range coordinates
+
+%*********************************************
+\hr\textbf{3D graphics}
+
+m(u:SF,v:SF):SF == 1
+
+\verb|draw(m,0..2*%pi,0..%pi,coordinates==spherical)|
+
+options: title style colorFunction coordinates tubeRadius
+tubePoints var1Steps var2Steps space
+
+%*********************************************
+\hr\textbf{Discrete math}
+
+$\lfloor x\rfloor=$ \verb|floor(x)| 
+\quad 
+$\lceil x\rceil=$ \verb|ceiling(x)|
+
+Remainder of $n$ divided by $k=$ \verb|rem(n,k) |, $k|n$ iff \verb| n%k==0|
+
+$n!=$ \verb|factorial(n)| \qquad
+${x\choose m}=$ \verb|binomial(x,m)|
+
+$\phi(n)=$ \texttt{eulerPhi($n$)}\quad Tuples: \ \verb|(1,'Hello,x)| 
+
+%*********************************************
+\hr\textbf{Type Conversions}
+
+\verb|r:=(2/3)*x^2-y+4/5| $\rightarrow$ $-y+\frac{2}{3}x^2+\frac{4}{5}$\\
+\hbox{\hskip 2.0cm} Type: Polynomial Fraction Integer
+
+r::FRAC POLY INT $\rightarrow$ $\frac{-15y+10x^2+12}{15}$\\
+\hbox{\hskip 2.0cm} Type: Fraction Polynomial Integer
+
+\verb|s:=(3+4*%i)/(7+3*%i)| $\rightarrow$ $\frac{33}{58}+\frac{19}{58}\%i$
+
+s::FRAC COMPLEX INT $\rightarrow$ $\frac{3+4\%i}{7+3\%i}$
+
+%*********************************************
+\hr\textbf{Equation}
+
+eq1:=3*x+4*y=5 $\rightarrow$ $4y+3x=5$
+
+eq2:=2*x+2*y=3 $\rightarrow$ $2y+2x=3$
+
+lhs eq1 $\rightarrow$ $4y+3x$
+
+rhs eq1 $\rightarrow$ 5
+
+eq1+eq2 $\rightarrow$ $6y+5x=8$
+
+%*********************************************
+\hr\textbf{Factored}
+
+g:=factor(4312) $\rightarrow$ $2^3 7^2 11$
+
+unit g $\rightarrow$ 1
+
+numberOfFactors g $\rightarrow$ 3
+
+nthFactor(g,2) $\rightarrow$ 7
+
+nthExponent(g,2) $\rightarrow$ 2
+
+nthFlag(g,2) $\rightarrow$ "prime"
+
+map(factor,55739/2520) $\rightarrow$ $\frac{139\ 401}{2^3\ 3^2\ 5\ 7}$
+
+%*********************************************
+\hr\textbf{List}
+
+a:=[1,2,3,4] $\rightarrow$ $[1,2,3,4]$
+
+b:=[3,4,5,6] $\rightarrow$ $[3,4,5,6]$
+
+append(a,b) $\rightarrow$ $[1,2,3,4,3,4,5,6]$
+
+cons(10,a) $\rightarrow$ $[10,1,2,3,4]$
+
+empty? a $\rightarrow$ false
+
+a.2 $\rightarrow$ 2
+
+a.2 := 99 $\rightarrow$ $[1,99,3,4]$
+
+reverse b $\rightarrow$ $[6,5,4,3]$
+
+%*********************************************
+\hr\textbf{MakeFunction}
+
+\verb|expr:=(x+a)^3| $\rightarrow$ $x^3+ 3ax^2 + 3a^2x + a^3$
+
+function(expr,f,x) $\rightarrow$ f
+
+f(2) $\rightarrow$ $a^3 + 6a^2 + 12a + 8$
+
+function(expr,g,a) $\rightarrow$ g
+
+g(2) $\rightarrow$ $x^3 + 6x^2 + 12x + 8$
+
+%*********************************************
+\hr\textbf{Matrix}
+
+A:=matrix([[1,2],[3,4]]) $\rightarrow$
+$
+\left[
+\begin{array}{cc}
+1 & 2\\
+3 & 4\\
+\end{array}
+\right]
+$
+
+determinant A $\rightarrow$ -2
+
+v:=vector([1,2]) $\rightarrow$ $[1,2]$
+
+A*v $\rightarrow$ $[5,11]$
+
+\verb|A^-1| $\rightarrow$
+$
+\left[
+\begin{array}{cc}
+2 & 1\\
+\frac{3}{2} & \frac{1}{2}\\
+\end{array}
+\right]
+$
+
+transpose(A) $\rightarrow$ 
+$
+\left[
+\begin{array}{cc}
+1 & 3\\
+2 & 4\\
+\end{array}
+\right]
+$
+
+nrows A $\rightarrow$ 2
+
+ncols A $\rightarrow$ 2
+
+nullity A $\rightarrow$ 0
+
+rank A $\rightarrow$ 2
+
+trace A $\rightarrow$ 5
+
+%*********************************************
+\hr\textbf{Polynomial}
+
+x+1 yields Type {\bf Polynomial Integer}
+
+z-2.3 yields Type {\bf Polynomial Float}
+
+\verb|y^2-z+3/4| yields Type {\bf Polynomial Fraction Integer}
+
+\verb|p:=(y-1)^2*x*z| $\rightarrow$ $(xy^2-2xy+x)z$
+
+\verb|q:=(y-1)*x*(z+5)| $\rightarrow$ $(xy - x)z + 5xy - 5x$
+
+gcd(p,q) $\rightarrow$ $x y - x$
+
+mainVariable p $\rightarrow$ $z$
+
+variables p $\rightarrow$ $[z,y,x]$
+
+degree(p,y) $\rightarrow$ 2
+
+totaldegree p $\rightarrow$ 4
+
+eval(p,x,w) $\rightarrow$ $(wy^2  - 2wy + w)z$
+
+D(p,x) $\rightarrow$  $(y^2- 2y + 1)z$
+
+integrate(p,x) $\rightarrow$ $(\frac{1}{2}x^2y^2-x^2y+\frac{1}{2}x^2)z$
+
+%*********************************************
+\hr\textbf{PrimeField}
+
+x:PrimeField(7):=5 $\rightarrow$ 5
+
+\verb|x^3| $\rightarrow$ 6
+
+1/x $\rightarrow$ 3
+
+%*********************************************
+\hr\textbf{Set}
+
+\verb|s:=brace([1,2,3,4,5])| $\rightarrow$ $\{1,2,3,4,5\}$
+
+\verb;t:=brace([2,3,5,7]); $\rightarrow$ $\{2,3,5,7\}$
+
+intersect(s,t) $\rightarrow$ $\{2,3,5\}$
+
+union(s,t) $\rightarrow$ $\{1,2,3,4,5,7\}$
+
+difference(s,t) $\rightarrow$ $\{1,4\}$
+
+insert!(7,s) $\rightarrow$ $\{1,2,3,4,5,7\}$
+
+remove!(7,s) $\rightarrow$ $\{1,2,3,4,5\}$
+
+$\{1,2,1,a\}=$ \verb|brace([1,2,1,'a])| \ ($=\{1,2,a\}$)
+
+$\{f(x):x\in X,x>0\}\approx$\verb?brace([f(x) for x in X | x>0])?
+
+%*********************************************
+\hr\textbf{Special Functions}
+
+[fibonacci(k) for k in 0..] $\rightarrow$ [0,1,1,2,3,5,...]
+
+[legendre(i,11) for i in 0..5] $\rightarrow$ [0,1,- 1,1,1,1]
+
+[jacobi(i,15) for i in 0..5] $\rightarrow$ [0,1,1,0,1,0]
+
+[eulerPhi i for i in 1..] $\rightarrow$ [1,1,2,2,4,2,...]
+
+[moebiusMu i for i in 1..] $\rightarrow$ [1,- 1,- 1,0,- 1,1,...]
+
+E1(0.01) $\rightarrow$ 4.0379295765381134
+
+Gamma(0.01) $\rightarrow$ 99.432585119150588
+
+%*********************************************
+\hr\textbf{Stream}
+
+)set streams calculate 6
+
+\verb|ints := [i for i in 1..]| $\rightarrow$ \verb|[1,2,3,4,5,6,...]|
+
+ints.20 $\rightarrow$ 20
+
+\verb;[i for i in ints | odd? i]; $\rightarrow$ \verb|[1,3,5,7,9,11,...]|
+
+%*********************************************
+\hr\textbf{String}
+
+creation: \ s:= \verb|"Hello"| 
+
+concatenate \verb|"He" "llo"| $\rightarrow$ \verb|"Hello"| 
+
+\texttt{s(1)='H' \quad s.1='H' \quad s(2..3)='el' \quad s(4..)='lo'}
+
+split("hi there",char " ") $\rightarrow$ \verb|["hi","there"]|
+
+prefix?("He","Hello") $\rightarrow$ true
+
+substring?("ll","Hello",3) $\rightarrow$ true
+
+%*********************************************
+\hr\textbf{TwoDimensionalArray}
+
+creation: \verb|arr:ARRAY2 INT:=new(2,3,0)| $\rightarrow$ 
+$
+\left[
+\begin{array}{ccc}
+0 & 0 & 0\\
+0 & 0 & 0\\
+\end{array}
+\right]
+$
+
+nrows arr $\rightarrow$ 2
+
+ncols arr $\rightarrow$ 3
+
+setelt(arr,1,1,17) $\rightarrow$
+$
+\left[
+\begin{array}{ccc}
+17 & 0 & 0\\
+0 & 0 & 0\\
+\end{array}
+\right]
+$
+
+arr(1,1) $\rightarrow$ 17
+
+%*********************************************
+\hr\textbf{Univariate Polynomial}
+
+creation: \verb|p:UP(x,INT):=(3*x-1)^2*(2*x+8)|\\
+\hbox{\hskip 1.5cm}\verb|q:UP(x,INT):=(1-6*x+9*x^2)^2|
+
+leadingCoefficient p $\rightarrow$ 18
+
+degree p $\rightarrow$ 3
+
+reductum p $\rightarrow$ $60x^2-46x+8$
+
+gcd(p,q) $\rightarrow$ $9x^2-6x+1$
+
+lcm(p,q) $\rightarrow$ $162x^5+432x^4-756x^3+408x^2-94x+8$
+
+resultant(p,q) $\rightarrow$ 0
+
+p(2) $\rightarrow$ 300 (used as function)
+
+D(p) $\rightarrow$ $54x^2+120x-46$ (derivative)
+
+%*********************************************
+\hr\textbf{Vector}
+
+creation: \verb|v := vector([1,2,3,4,5])| $\rightarrow$ $[1,2,3,4,5]$
+
+length: \verb|#v| $\rightarrow$ 5
+
+access: v.2 $\rightarrow$ 2
+
+add: v+v $\rightarrow$ $[2,4,6,8,10]$
+
+multiply: 5*v $\rightarrow$ $[5,10,15,20,25]$
+
+assign: v.2 := 7 $\rightarrow$ $[1,7,3,4,5]$
+
+\end{multicols*}
+
+\end{document}
\ No newline at end of file
diff --git a/books/rosetta.pamphlet b/books/rosetta.pamphlet
new file mode 100644
index 0000000..9e14ccc
--- /dev/null
+++ b/books/rosetta.pamphlet
@@ -0,0 +1,1511 @@
+\documentclass{article}
+\normalsize\baselineskip=12pt
+\parskip=0pt
+\parindent=10pt
+\tolerance=5000
+\pretolerance=5000
+\frenchspacing
+\hangindent=10pt
+\skip\footins=18pt
+\global\textwidth 31pc \global\textheight 47pc
+\headsep 12pt
+\oddsidemargin 0pt
+\evensidemargin 0pt
+%
+\renewcommand{\textfraction}{.1}
+\renewcommand{\floatpagefraction}{.75}
+%
+\catcode`@=11
+\def\ps@plain{\let\@mkboth\@gobbletwo%
+     \let\@oddhead\@empty\def\@oddfoot{\sysdetails}
+     \let\@evenhead\@empty\let\@evenfoot\@oddfoot}
+\def\ps@empty{\let\@mkboth\@gobbletwo%
+     \let\@oddhead\@empty\def\@oddfoot{\sysdetails}
+     \let\@evenhead\@empty\let\@evenfoot\@oddfoot}
+\catcode`@=12
+%
+\def\sysdetails{\parbox{\textwidth}{%
+Based on material originally published in {\sl Computer Algebra Systems: A
+Practical Guide\/} edited by Michael J.\ Wester, John Wiley \& Sons,
+Chichester, United Kingdom, ISBN 0-471-98353-5, xvi+436 pages, 1999.}}
+%
+\pagestyle{plain}
+
+\begin{document}
+%
+% \nth{n} produces 1^{st}, 2^{nd}, 3^{rd}, 4^{th}, etc.
+%
+\def\nth#1{$#1^{\rm \ifcase#1 th\or st\or nd\or rd\else th\fi}$}
+%
+% Abbreviations
+%
+\newcommand{\Axiom}{{\sf Axiom}}
+\newcommand{\Derive}{{\sf Derive}}
+\newcommand{\DoCon}{{\sf DoCon}}
+\newcommand{\GAP}{{\sf GAP}}
+\newcommand{\Gmp}{{\sf Gmp}}
+\newcommand{\Macsyma}{{\sf Macsyma}}
+\newcommand{\Magnus}{{\sf Magnus}}
+\newcommand{\Maxima}{{\sf Maxima}}
+\newcommand{\Maple}{{\sf Maple}}
+\newcommand{\Mathematica}{{\sf Mathematica}}
+\newcommand{\MuPAD}{{\sf MuPAD}}
+\newcommand{\Octave}{{\sf Octave}}
+\newcommand{\Pari}{{\sf Pari}}
+\newcommand{\Reduce}{{\sf Reduce}}
+\newcommand{\Scilab}{{\sf Scilab}}
+\newcommand{\Sumit}{{\sf Sumit}}
+\newcommand{\Yacas}{{\sf Yacas}}
+
+\section{Introduction}
+
+The following is a collection of synonyms for various operations in
+the computer algebra systems \Axiom, \Derive, \GAP, \Gmp, \DoCon,
+\Macsyma, \Magnus, \Maxima, \Maple, \Mathematica, \MuPAD, \Octave,
+\Pari, \Reduce, \Scilab, \Sumit\ and \Yacas.  This collection does not
+attempt to be comprehensive, but hopefully it will be useful in giving
+an indication of how to translate between the syntaxes used by the
+different systems in many common situations.  Note that a blank entry
+means either (a) that there may be an exact translation of a
+particular operation for the indicated system, but we don't know what
+it is or (b) there is no exact translation but it may still be
+possible to work around this lack with a related functionality.
+
+While commercial systems are not provided on this CD the intent of the
+Rosetta effort is to make it possible for experienced Computer Algebra
+users to experiment with other systems. Thus the commands for
+commercial systems are included to allow users of those systems to
+translate.
+
+Some of these systems are special purpose and do not support a lot of
+the functionality of the more general purpose systems. Where they do
+support an interpreter the commands are provided.
+
+Originally written by Michael Wester.
+Modified for Rosetta by Timothy Daly, Alexander Hulpke (GAP).
+
+\section{System availability}
+
+\begin{tabular}{l|lll}
+System & \rm{License} & \rm{Status (May 2002)} & \rm{Web Location} \\
+\hline
+\Axiom       & BSD         & available  & http://www.aldor.org \\
+\Axiom       & open source & pending    & http://home.earthlink.net/~jgg964/axiom.html \\
+\Derive      & commercial  & available  & http://www.mathware.com \\
+\DoCon       & open source & available  & http://www.haskell.org/docon \\
+\GAP         & GPL         & Rosetta    & http://www.gap-system.org/~gap \\
+\Gmp         & GPL         & Rosetta    & http://www.swox.com/gmp \\
+\Macsyma     & commercial  & dead       & unavailable \\
+\Magnus      & GPL         & Rosetta    & http://sourceforge.net/projects/magnus \\
+\Maxima      & GPL         & Rosetta    & http://www.ma.utexas.edu/maxima.html\\
+\Maple       & commercial  & available  & http://www.maplesoft.com \\
+\Mathematica & commercial  & available  & http://www.wolfram.com \\
+\MuPAD       & commercial  & available  & http://www.mupad.de \\
+\Octave      & GPL         & Rosetta    & http://www.octave.org \\
+\Pari        & GPL         & Rosetta    & http://www.parigp-home.de \\
+\Reduce      & commercial  & available  & http://www.zib.de/Symbolik/reduce \\
+\Scilab      & Scilab      & available  & http://www-rocq.inria.fr/scilab \\
+\Sumit       &             & available  & http://www-sop.inria.fr/cafe/soft-f.html \\
+\Yacas       & GPL         & available  & http://yacas.sourceforge.net \\
+\end{tabular} \\[10pt]
+\\
+\begin{tabular}{l|ll}
+System & \rm{Type} & \rm{Interpreted or Compiled}\\
+\hline
+\Axiom       & General Purpose          & both \\
+\Derive      & General Purpose          & \\
+\DoCon       & General Purpose          & Interpreted in Haskell \\
+\GAP         & Group Theory             & \\
+\Gmp         & arb. prec. arithmetic    & \\
+\Macsyma     & General Purpose          & \\
+\Magnus      & Infinite Group Theory    & \\
+\Maxima      & General Purpose          & \\
+\Maple       & General Purpose          & \\
+\Mathematica & General Purpose          & \\
+\MuPAD       & General Purpose          & \\
+\Octave      & Numerical Computing      & \\
+\Pari        & Number Theory            & \\
+\Reduce      & General Purpose          & \\
+\Scilab      & General Purpose          & \\
+\Sumit       & Functional Equations     & \\
+\Yacas       & General Purpose          & \\
+\end{tabular} \\[10pt]
+
+\section{Programming and Miscellaneous}
+
+\begingroup
+\newcommand{\OR}{{\em or }}
+\newcommand{\fnm}{\footnotemark}
+\newcommand{\h}[1]{{\rm #1}}
+\newcommand{\m}[2]{\multicolumn{#1}{l}{#2}}
+\newcommand{\q}{\quad}
+\newcommand{\st}{\small\tt}
+\parindent=0pt
+\hfuzz=1pt
+\begin{tt}
+
+\begin{tabular}{l|ll}
+& \m{2}{\rm Unix/Microsoft user initialization file} \\
+\hline
+\Axiom       & \~{}/axiom.input          & \\
+\GAP         & \~{}/.gaprc               & GAP.RC \\
+\Gmp         &                           & \\
+\DoCon       &                           & \\
+\Derive      &                           & derive.ini   \\
+\Macsyma     & \~{}/macsyma-init.macsyma & mac-init.mac \\
+\Magnus      &                           & \\
+\Maxima      & \~{}/macsyma-init.macsyma & mac-init.mac \\
+\Maple       & \~{}/.mapleinit           & maplev5.ini  \\
+\Mathematica & \~{}/init.m               & init.m       \\
+\MuPAD       & \~{}/.mupadinit           &
+	$\backslash$mupad$\backslash$bin$\backslash$userinit.mu \\
+\Octave      &                           & \\
+\Pari        &                           & \\
+\Reduce      & \~{}/.reducerc            & reduce.rc    \\
+\Scilab      &                           & \\
+\Sumit       &                           & \\
+\Yacas       &                           & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Describe {\em keyword}} & \h{Find keywords containing {\em pattern}} \\
+\hline
+\Axiom       &                       & )what operations pattern \\
+\Derive      &                       & \\
+\DoCon       &                       & \\
+\GAP         & ?keyword              & ??keyword\\
+\Gmp         &                       & \\
+\Macsyma     & describe("keyword")\$ & apropos("pattern");      \\
+\Magnus      &                       & \\
+\Maxima      & describe("keyword")\$ & apropos("pattern");      \\
+\Maple       & ?keyword              & ?pattern\,\fnm           \\
+\Mathematica & ?keyword              & ?*pattern*               \\
+\MuPAD       & ?keyword              & ?*pattern*               \\
+\Octave      & help -i keyword       & \\
+\Pari        &                       & \\
+\Reduce      &                       & \\
+\Scilab      &                       & \\
+\Sumit       &                       & \\
+\Yacas       &                       & \\
+\end{tabular} \\[10pt]
+
+\footnotetext{Only if the pattern is not a keyword and then the matches are
+simplistic.}
+
+\begin{tabular}{l|l@{ }llll}
+& & & \h{Prev.} & \h{Case} & \h{Variables} \\
+& \h{Comment} & \h{Line continuation} & \h{expr.} & \h{sensitive} & \h{assumed}
+	\\
+\hline
+\Axiom       & -- comment    & input \_<CR>input   & \% & Yes & real    \\
+\Derive      & "comment"     & input \~{}<CR>input &    & No  & real    \\
+\DoCon       &               &                     &    &     & \\
+\GAP         & \# comment    & input$\backslash$<CR>input&last&Yes&no assumption\\
+\Gmp         &               &                     &    &     & \\
+\Macsyma     & /* comment */ & input<CR>input;     & \% & No  & real    \\
+\Magnus      &               &                     &    &     & \\
+\Maxima      & /* comment */ & input<CR>input;     & \% & No  & real    \\
+\Maple       & \# comment    & input<CR>input;     & \% & Yes & complex \\
+\Mathematica & (* comment *) & input<CR>input      & \% & Yes & complex \\
+\MuPAD       & \# comment \# & input<CR>input;     & \% & Yes & complex \\
+\Octave      & \#\#          &                     &    & Yes & \\
+\Pari        &               &                     &    &     & \\
+\Reduce      & \% comment    & input<CR>input;     & ws & No  & complex \\
+\Scilab      &               &                     &    &     & \\
+\Sumit       &               &                     &    &     & \\
+\Yacas       &               &                     &    &     & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{Load a file} & \h{Time a command} & \h{Quit} \\
+\hline
+\Axiom       & )read "file" )quiet    & )set messages time on  & )quit \\
+\Derive      & [Transfer Load Derive] &                        & [Quit] \\
+\DoCon       &                        &                        & \\
+\GAP         & Read("file");          & time; \h{(also see {\tt Runtime();})}&quit;\\
+\Gmp         &                        &                        & \\
+\Macsyma     & load("file")\$         & showtime: all\$        & quit(); \\
+\Magnus      &                        &                        & \\
+\Maxima      & load("file")\$         & showtime: all\$        & quit(); \\
+\Maple       & read("file"):          & readlib(showtime): on; & quit \\
+\Mathematica & @<< file                & Timing[command]        & Quit[] \\
+\MuPAD       & read("file"):          & time(command);         & quit \\
+\Octave      & load file              & tic(); cmd ; toc()     & quit \OR\ exit\\
+\Pari        &                        &                        & \\
+\Reduce      & in "file"\$            & on time;               & quit; \\
+\Scilab      &                        &                        & quit \\
+\Sumit       &                        &                        & \\
+\Yacas       &                        &                        & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{Display} & \h{Suppress} & \\
+& \h{output} & \h{output} & \h{Substitution: $f(x, y) \rightarrow f(z, w)$} \\
+\hline
+\Axiom       & input  & input;      & subst(f(x, y), [x = z, y = w])   \\
+\Derive      & input  & var:= input & [Manage Substitute]              \\
+\DoCon       &        &             & \\
+\GAP         & input; & input;;     & Value(f,[x,y],[z,w]);\fnm         \\
+\Gmp         &        &             & \\
+\Macsyma     & input; & input\$     & subst([x = z, y = w], f(x, y));  \\
+\Magnus      &        &             & \\
+\Maxima      & input; & input\$     & subst([x = z, y = w], f(x, y));  \\
+\Maple       & input; & input:      & subs(\{x = z, y = w\}, f(x, y)); \\
+\Mathematica & input  & input;      & f[x, y] /. \{x -> z, y -> w\}    \\
+\MuPAD       & input; & input:      & subs(f(x, y), [x = z, y = w]);   \\
+\Octave      & input  & input;      & \\
+\Pari        &        &             & \\
+\Reduce      & input; & input\$     & sub(\{x = z, y = w\}, f(x, y));  \\
+\Scilab      &        &             & \\
+\Sumit       &        &             & \\
+\Yacas       &        &             & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{Set} & \h{List} & \h{Matrix} \\
+\hline
+\Axiom       & set [1, 2] & [1, 2]    & matrix(@[[1, 2],[3, 4]])            \\
+\Derive      & \{1, 2\}   & [1, 2]    & @[[1,2], [3,4]]                     \\
+\DoCon       &            &           & \\
+\GAP         & Set([1,2]) & [1, 2]    & @[[1,2], [3,4]]\fnm                 \\
+\Gmp         &            &           & \\
+\Macsyma     & [1, 2]     & [1, 2]    & matrix([1, 2], [3, 4])             \\
+\Magnus      &            &           & \\
+\Maxima      & [1, 2]     & [1, 2]    & matrix([1, 2], [3, 4])             \\
+\Maple       & \{1, 2\}   & [1, 2]    & matrix(@[[1, 2], [3, 4]])           \\
+\Mathematica & \{1, 2\}   & \{1, 2\}  & \{\{1, 2\}, \{3, 4\}\}             \\
+\MuPAD       & \{1, 2\}   & [1, 2]    & export(Dom): \q export(linalg):    \\
+             &            &           & matrix:= ExpressionField(normal)): \\
+             &            &           & matrix(@[[1, 2], [3, 4]])           \\
+\Octave      &            &           & \\
+\Pari        &            &           & \\
+\Reduce      & \{1, 2\}   & \{1, 2\}  & mat((1, 2), (3, 4))                \\
+\Scilab      &            & list(1,2) & A=[1,2;3,4]\\
+\Sumit       &            &           & \\
+\Yacas       &            &           & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|llll}
+& \h{Equation} & \h{List element} & \h{Matrix element} & \h{Length of a list} \\
+\hline
+\Axiom       & x = 0  & l . 2      & m(2, 3)       & \#l          \\
+\Derive      & x = 0  & l SUB 2    & m SUB 2 SUB 3 & DIMENSION(l) \\
+\DoCon       &        &            &               & \\
+\GAP         & x=0    & l[2]       & m[2][3]       & Length(l)    \\
+\Gmp         &        &            &               & \\
+\Macsyma     & x = 0  & l[2]       & m[2, 3]       & length(l)    \\
+\Magnus      &        &            &               & \\
+\Maxima      & x = 0  & l[2]       & m[2, 3]       & length(l)    \\
+\Maple       & x = 0  & l[2]       & m[2, 3]       & nops(l)      \\
+\Mathematica & x == 0 & l@[[2]]     & m@[[2, 3]]     & Length[l]    \\
+\MuPAD       & x = 0  & l[2]       & m[2, 3]       & nops(l)      \\
+\Octave      &        &            &               & \\
+\Pari        &        &            &               & \\
+\Reduce      & x = 0  & part(l, 2) & m(2, 3)       & length(l)    \\
+\Scilab      &        & l(2)       &               & \\
+\Sumit       &        &            &               & \\
+\Yacas       &        &            &               & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \m{2}{\rm Prepend/append an element to a list} & \h{Append two lists} \\
+\hline
+\Axiom       & cons(e, l)     & concat(l, e)   & append(l1, l2)   \\
+\Derive      & APPEND([e], l) & APPEND(l, [e]) & APPEND(l1, l2)   \\
+\DoCon       &                &                & \\
+\GAP         & Concatenation([e],l) & Add(l,e) & Append(l1, l2)   \\
+\Gmp         &                &                & \\
+\Macsyma     & cons(e, l)     & endcons(e, l)  & append(l1, l2)   \\
+\Magnus      &                &                & \\
+\Maxima      & cons(e, l)     & endcons(e, l)  & append(l1, l2)   \\
+\Maple       & [e, op(l)]     & [op(l), e]     & [op(l1), op(l2)] \\
+\Mathematica & Prepend[l, e]  & Append[l, e]   & Join[l1, l2]     \\
+\MuPAD       & [e, op(l)]     & append(l, e)   & l1 . l2          \\
+\Octave      &                &                & \\
+\Pari        &                &                & \\
+\Reduce      & e . l          & append(l, {e}) & append(l1, l2)   \\
+\Scilab      &                &                & \\
+\Sumit       &                &                & \\
+\Yacas       &                &                & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Matrix column dimension} & \h{Convert a list into a column vector} \\
+\hline
+\Axiom       & ncols(m)                  & transpose(matrix([l]))         \\
+\Derive      & DIMENSION(m SUB 1)        & [l]\`{}                        \\
+\DoCon       &                           & \\
+\GAP         & Length(mat[1])            & \h{objects are identical}      \\
+\Gmp         &                           & \\
+\Macsyma     & mat\_\,ncols(m)           & transpose(matrix(l))           \\
+\Magnus      &                           & \\
+\Maxima      & mat\_\,ncols(m)           & transpose(matrix(l))           \\
+\Maple       & linalg[coldim](m)         & linalg[transpose](matrix([l])) \\
+\Mathematica & Dimensions[m]@[[2]]        & Transpose[\{l\}]               \\
+\MuPAD       & linalg::ncols(m)          & transpose(matrix([l]))\,\fnm   \\
+\Octave      &                           & \\
+\Pari        &                           & \\
+\Reduce      & load\_\,package(linalg)\$ & matrix v(length(l), 1)\$       \\
+             & column\_dim(m)            & for i:=1:length(l) do          \\
+             &                           & \q\q v(i, 1):= part(l, i)      \\
+\Scilab      &                           & \\
+\Sumit       &                           & \\
+\Yacas       &                           & \\
+\end{tabular} \\[10pt]
+
+\footnotetext{See the definition of {\tt matrix} above.}
+
+\begin{tabular}{l|l}
+& \h{Convert a column vector into a list} \\
+\hline
+\Axiom       & [v(i, 1) for i in 1..nrows(v)]              \\
+\Derive      & v\`{} SUB 1                                 \\
+\DoCon       & \\
+\GAP         & \h{objects are identical}                   \\
+\Gmp         & \\
+\Macsyma     & part(transpose(v), 1)                       \\
+\Magnus      & \\
+\Maxima      & part(transpose(v), 1)                       \\
+\Maple       & op(convert(linalg[transpose](v), listlist)) \\
+\Mathematica & Flatten[v]                                  \\
+\MuPAD       & [op(v)]                                     \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & load\_\,package(linalg)\$                   \\
+             & for i:=1:row\_\,dim(v) collect(v(i, 1))     \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lllllll}
+& \h{True} & \h{False} & \h{And} & \h{Or} & \h{Not} & \h{Equal} & \h{Not equal}
+	\\
+\hline
+\Axiom       & true & false & and  & or & not & =  & \~{}= \\
+\Derive      & TRUE & FALSE & AND  & OR & NOT & =  & /=    \\
+\DoCon       &      &       &      &    &     &    & \\
+\GAP         & true & false\fnm & and  & or & not & = & <>     \\
+\Gmp         &      &       &      &    &     &    & \\
+\Macsyma     & true & false & and  & or & not & =  & \#    \\
+\Magnus      &      &       &      &    &     &    & \\
+\Maxima      & true & false & and  & or & not & =  & \#    \\
+\Maple       & true & false & and  & or & not & =  & <>    \\
+\Mathematica & True & False & \&\& & || & !   & == & !=    \\
+\MuPAD       & true & false & and  & or & not & =  & <>    \\
+\Octave      &      &       &      &    &     &    & \\
+\Pari        &      &       &      &    &     &    & \\
+\Reduce      & t    & nil   & and  & or & not & =  & neq   \\
+\Scilab      & \%t  & \%f   &      &    &     &    & \\
+\Sumit       &      &       &      &    &     &    & \\
+\Yacas       &      &       &      &    &     &    & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{If+then+else statements} & \h{Strings (concatenated)} \\
+\hline
+\Axiom       & if \_ then \_ else if \_ then \_ else \_ & concat(["x", "y"])  \\
+\Derive      & IF(\_, \_, IF(\_, \_, \_))               & "xy"                \\
+\DoCon       &                                          & \\
+\GAP         & if \_ then \_ elif \_ then \_ else \_ fi & Concatenation("x","y")\\
+\Gmp         &                                          & \\
+\Macsyma     & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y")    \\
+\Magnus      &                                          & \\
+\Maxima      & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y")    \\
+\Maple       & if \_ then \_ elif \_ then \_ else \_ fi & "x" . "y"           \\
+\Mathematica & If[\_, \_, If[\_, \_, \_]]               & "x" <> "y"          \\
+\MuPAD       & if \_ then \_ elif \_ then \_ else \_    & "x" . "y"           \\
+             & \q\q end\_if                             & \\
+\Octave      &                                          & \\
+\Pari        &                                          & \\
+\Reduce      & if \_ then \_ else if \_ then \_ else \_ & "xy" \OR\ mkid(x, y)\\
+\Scilab      &                                          & \\
+\Sumit       &                                          & \\
+\Yacas       &                                          & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Simple loop and Block} & \h{Generate the list $[1, 2, \ldots, n]$} \\
+\hline
+\Axiom       & for i in 1..n repeat ( x; y )       & [f(i) for i in 1..n]     \\
+\Derive      & VECTOR([x, y], i, 1, n)             & VECTOR(f(i), i, 1, n)    \\
+\DoCon       &                                     & \\
+\GAP         & for i in [1..n] do \_ od;           & [1..n] {\rm or} [1,2..n]\\
+\Gmp         &                                     & \\
+\Macsyma     & for i:1 thru n do (x, y);           & makelist(f(i), i, 1, n); \\
+\Magnus      &                                     & \\
+\Maxima      & for i:1 thru n do (x, y);           & makelist(f(i), i, 1, n); \\
+\Maple       & for i from 1 to n do x; y od;       & [f(i) \$ i = 1..n];      \\
+\Mathematica & Do[x; y, \{i, 1, n\}]               & Table[f[i], \{i, 1, n\}] \\
+\MuPAD       & for i from 1 to n do x; y           & [f(i) \$ i = 1..n];      \\
+             & \q\q end\_for;                      & \\
+\Octave      &                                     & \\
+\Pari        &                                     & \\
+\Reduce      & for i:=1:n do @<<x; y>>;             & for i:=1:n collect f(i); \\
+\Scilab      &                                     & \\
+\Sumit       &                                     & \\
+\Yacas       &                                     & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Complex loop iterating on a list} \\
+\hline
+\Axiom       & for x in [2, 3, 5] while x**2 < 10 repeat output(x)         \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & for x in [2, 3, 5] do while x\^{}2<10 do Print(x);od;od; \\
+\Gmp         & \\
+\Macsyma     & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$          \\
+\Magnus      & \\
+\Maxima      & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$          \\
+\Maple       & for x in [2, 3, 5] while x\^{}2 < 10 do print(x) od:        \\
+\Mathematica & For[l = \{2, 3, 5\}, l != \{\} \&\& l@[[1]]\^{}2 < 10,       \\
+             & \q l = Rest[l], Print[l@[[1]]] ]                             \\
+\MuPAD       & for x in [2, 3, 5] do if x\^{}2 < 10 then print(x) end\_if  \\
+             & \q end\_for:                                                \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & for each x in \{2, 3, 5\} do if x\^{}2 < 10 then write(x)\$ \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{\small Assignment} & \h{Function definition} & \h{Clear vars and funs} \\
+\hline
+\Axiom       & y:= f(x)  & f(x, y) == x*y              &
+	{\small\tt )clear properties y f} \\
+\Derive      & y:= f(x)  & f(x, y):= x*y               & y:=  f:=           \\
+\DoCon       &           &                             & \\
+\GAP         & y:= f(x); & f:=function(x, y) return x*y; end; & \h{There are
+no symbolic variables}\\
+\Gmp         &           &                             & \\
+\Macsyma     & y: f(x);  & f(x, y):= x*y;              & remvalue(y)\$      \\
+             &           &                             & remfunction(f)\$   \\
+\Magnus      &           &                             & \\
+\Maxima      & y: f(x);  & f(x, y):= x*y;              & remvalue(y)\$      \\
+             &           &                             & remfunction(f)\$   \\
+\Maple       & y:= f(x); & f:= proc(x, y) x*y end;     & y:= 'y':  f:= 'f': \\
+\Mathematica & y = f[x]  & f[x\_, y\_\,]:= x*y         & Clear[y, f]        \\
+\MuPAD       & y:= f(x); & f:= proc(x, y)              & y:= NIL:  f:= NIL: \\
+             &           & \q\q begin x*y end\_\,proc; & \\
+\Octave      &           &                             & \\
+\Pari        &           &                             & \\
+\Reduce      & y:= f(x); & procedure f(x, y); x*y;     & clear y, f;        \\
+\Scilab      &           &                             & \\
+\Sumit       &           &                             & \\
+\Yacas       &           &                             & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Function definition with a local variable} \\
+\hline
+\Axiom       & f(x) == (local n; n:= 2; n*x)                           \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & f:=function(x) local n; n:=2;return n*x; end;           \\
+\Gmp         & \\
+\Macsyma     & f(x):= block([n], n: 2, n*x);                           \\
+\Magnus      & \\
+\Maxima      & f(x):= block([n], n: 2, n*x);                           \\
+\Maple       & f:= proc(x) local n; n:= 2; n*x end;                    \\
+\Mathematica & f[x\_\,]:= Module[\{n\}, n = 2; n*x]                    \\
+\MuPAD       & f:= proc(x) local n; begin n:= 2; n*x end\_\,proc;      \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & procedure f(x); begin scalar n; n:= 2; return(n*x) end; \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Return unevaluated symbol} & \h{Define a function from an expression} \\
+\hline
+\Axiom       & e:= x*y;\q 'e          & function(e, f, x, y)          \\
+\Derive      & e:= x*y\q 'e           & f(x, y):== e                  \\
+\DoCon       &                        & \\
+\GAP         & \h{No unevaluated symbols}\fnm&\\
+\Gmp         &                        & \\
+\Macsyma     & e: x*y\$\q 'e;         & define(f(x, y), e);           \\
+\Magnus      &                        & \\
+\Maxima      & e: x*y\$\q 'e;         & define(f(x, y), e);           \\
+\Maple       & e:= x*y:\q 'e';        & f:= unapply(e, x, y);         \\
+\Mathematica & e = x*y;\q HoldForm[e] & f[x\_, y\_\,] = e             \\
+\MuPAD       & e:= x*y:\q hold(e);    & f:= hold(func)(e, x, y);      \\
+\Octave      &                        & \\
+\Pari        &                        & \\
+\Reduce      & e:= x*y\$              & for all x, y let f(x, y):= e; \\
+\Scilab      &                        & \\
+\Sumit       &                        & \\
+\Yacas       &                        & \\
+\end{tabular} \\[10pt]
+\footnotetext{Variables can be assigned to generators of a suitable free
+object, for example {\tt x:=X(Rationals,"x");} or {\tt
+f:=FreeGroup(2);x:=f.1;}.}
+\addtocounter{footnote}{-1}%
+
+\begin{tabular}{l|ll}
+& \h{Fun.\ of an indefinite number of args} & \h{Apply ``+'' to sum a list} \\
+\hline
+\Axiom       &                                   & reduce(+, [1, 2])          \\
+\Derive      & LST l:= l                         & \\
+\DoCon       &                                   & \\
+\GAP         & lst:=function(args) \_ end;       & Sum([1,2])\\
+\Gmp         &                                   & \\
+\Macsyma     & lst([l]):= l;                     & apply("+", [1, 2])         \\
+\Magnus      &                                   & \\
+\Maxima      & lst([l]):= l;                     & apply("+", [1, 2])         \\
+\Maple       & lst:=proc() [args[1..nargs]] end; & convert([1, 2], \`{}+\`{}) \\
+\Mathematica & lst[l\_\,\_\,\_\,]:= \{l\}        & Apply[Plus, \{1, 2\}]      \\
+\MuPAD       & lst:= proc(l) begin [args()]      & \_\,plus(op([1, 2]))       \\
+             & \q\q\q end\_\,proc;               & \\
+\Octave      &                                   & \\
+\Pari        &                                   & \\
+\Reduce      &                                   & xapply(+, \{1, 2\})\,\fnm  \\
+\Scilab      &                                   & \\
+\Sumit       &                                   & \\
+\Yacas       &                                   & \\
+\end{tabular} \\[10pt]
+
+\footnotetext{\tt procedure xapply(f, lst); lisp(f . cdr(lst))\$}
+\addtocounter{footnote}{-1}%
+
+\begin{tabular}{l|ll}
+& \h{Apply a fun.\ to a} & \\
+& \h{list of its args} & \h{Map an anonymous function onto a list} \\
+\hline
+\Axiom       & reduce(f, l)       & map(x +-> x + y, [1, 2])                \\
+\Derive      &                    & x:= [1, 2]                              \\
+             &                    & VECTOR(x SUB i + y, i, 1, DIMENSION(x)) \\
+\DoCon       &                    & \\
+\GAP         & List(l,f)          & List([1,2],x->x+y) \\
+\Gmp         &                    & \\
+\Macsyma     & apply(f, l)        & map(lambda([x], x + y), [1, 2])         \\
+\Magnus      &                    & \\
+\Maxima      & apply(f, l)        & map(lambda([x], x + y), [1, 2])         \\
+\Maple       & f(op(l))           & map(x -> x + y, [1, 2])                 \\
+\Mathematica & Apply[f, l]        & Map[\# + y \&, \{1, 2\}]                \\
+\MuPAD       & f(op(l))           & map([1, 2], func(x + y, x))             \\
+\Octave      &                    & \\
+\Pari        &                    & \\
+\Reduce      & xapply(f, l)\,\fnm & for each x in \{1, 2\} collect x + y    \\
+\Scilab      &                    & \\
+\Sumit       &                    & \\
+\Yacas       &                    & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Pattern matching: $f(3 y) + f(z y) \rightarrow 3 f(y) + f(z y)$} \\
+\hline
+\Axiom       & f:= operator('f);                                  \\
+             & ( rule f((n | integer?(n)) * x) == n*f(x) )( \_    \\
+             & \q\q f(3*y) + f(z*y))                              \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & matchdeclare(n, integerp, x, true)\$               \\
+             & defrule(fnx, f(n*x), n*f(x))\$                     \\
+             & apply1(f(3*y) + f(z*y), fnx);                      \\
+\Magnus      & \\
+\Maxima      & matchdeclare(n, integerp, x, true)\$               \\
+             & defrule(fnx, f(n*x), n*f(x))\$                     \\
+             & apply1(f(3*y) + f(z*y), fnx);                      \\
+\Maple       & map(proc(q) local m;                               \\
+             & \q\q\q if match(q = f(n*y), y, 'm') and            \\
+             & \q\q\q\q\q type(rhs(op(m)), integer) then          \\
+             & \q\q\q\q subs(m, n * f(y)) else q fi               \\
+             & \q\q end,                                          \\
+             & \q\q f(3*y) + f(z*y));                             \\
+\Mathematica & f[3*y] + f[z*y] /. f[n\_Integer * x\_\,] -> n*f[x] \\
+\MuPAD       & d:= domain("match"): \q d::FREEVARIABLE:= TRUE:    \\
+             & n:= new(d, "n", func(testtype(m, DOM\_INT), m)):   \\
+             & x:= new(d, "x", TRUE):                             \\
+             & map(f(3*y) + f(z*y),                               \\
+             & \q\q proc(q) local m; begin m:= match(q, f(n*x));  \\
+             & \q\q\q if m = FAIL then q                          \\
+             & \q\q\q else subs(hold("n" * f("x")), m) end\_if    \\
+             & \q\q end\_\,proc);                                 \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & operator f;                                        \\
+             & f(3*y) + f(z*y)                                    \\
+             & \q\q where \{f(\~{}n * \~{}x) => n*f(x) when fixp(n)\}; \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Define a new infix operator and then use it} \\
+\hline
+\Axiom       & \\
+\Derive      & \\
+\DoCon       & \\
+\GAP     &\h{One can overload existing infix operators for ones own purposes}\\
+\Gmp         & \\
+\Macsyma     & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q
+	3 \~{} 4;               \\
+\Magnus      & \\
+\Maxima      & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q
+	3 \~{} 4;               \\
+\Maple       & \`{}\&\~{}\`{}:= (x, y) -> sqrt(x\^{}2 + y\^{}2): \q 3 \&\~{} 4;
+	\\
+\Mathematica & x\_ $\backslash$[Tilde] y\_:= Sqrt[x\^{}2 + y\^{}2]; \q
+	3 $\backslash$[Tilde] 4 \\
+\MuPAD       & tilde:= proc(x, y) begin sqrt(x\^{}2 + y\^{}2) end\_\,proc: \\
+             & \q 3 \&tilde 4;                                             \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & infix |\$ \q procedure |(x, y); sqrt(x\^{}2 + y\^{}2)\$ \q
+	3 | 4;                  \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{Main expression} & & \\
+& \h{operator} & \h{\nth{1} operand} & \h{List of expression operands} \\
+\hline
+\Axiom\fnm   &            & kernels(e) . 1 & kernels(e)              \\
+\Derive      &            &                & {\em various}\fnm       \\
+\DoCon       &            &                & \\
+\GAP         &\m{3}{\rm There are no formal unevaluated expressions}\\
+\Gmp         &            &                & \\
+\Macsyma     & part(e, 0) & part(e, 1)     & args(e)                 \\
+\Magnus      &            &                & \\
+\Maxima      & part(e, 0) & part(e, 1)     & args(e)                 \\
+\Maple       & op(0, e)   & op(1, e)       & [op(e)]                 \\
+\Mathematica & Head[e]    & e@[[1]]         & ReplacePart[e, List, 0] \\
+\MuPAD       & op(e, 0)   & op(e, 1)       & [op(e)]                 \\
+\Octave      &            &                & \\
+\Pari        &            &                & \\
+\Reduce      & part(e, 0) & part(e, 1)     & for i:=1:arglength(e)   \\
+             &            &                & \q\q collect part(e, i) \\
+\Scilab      &            &                & \\
+\Sumit       &            &                & \\
+\Yacas       &            &                & \\
+\end{tabular} \\[10pt]
+
+\addtocounter{footnote}{-1}%
+\footnotetext{The following commands work only on expressions that consist of a
+single level (e.g., $x + y + z$ but not $a/b + c/d$).}
+\addtocounter{footnote}{-1}%
+\footnotetext{{\tt TERMS}, {\tt FACTORS}, {\tt NUMERATOR}, {\tt LHS}, etc.}
+
+\begin{tabular}{l|l}
+& \h{Print text and results} \\
+\hline
+\Axiom       & output(concat(["sin(", string(0), ") = ",                 \\
+             & \q string(sin(0))]));                                     \\
+\Derive      & "sin(0)" = sin(0)                                         \\
+\DoCon       & \\
+\GAP         & Print("There is no sin, but factors(10)= ",Factors(10),
+"$\backslash$n")\\
+\Gmp         & \\
+\Macsyma     & print("sin(", 0, ") =", sin(0))\$                         \\
+\Magnus      & \\
+\Maxima      & print("sin(", 0, ") =", sin(0))\$                         \\
+\Maple       & printf("sin(\%a) = \%a$\backslash$n", 0, sin(0)):         \\
+\Mathematica & Print[StringForm["sin(\`{}\`{}) = \`{}\`{}", 0, Sin[0]]]; \\
+\MuPAD       & print(Unquoted, "sin(".0.")" = sin(0)):                   \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & write("sin(", 0, ") = ", sin(0))\$                        \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Generate FORTRAN} & \h{Generate \TeX/\LaTeX} \\
+\hline
+\Axiom       & outputAsFortran(e)                    & outputAsTex(e)      \\
+\Derive      & [Transfer Save Fortran]               & \\
+\DoCon       &                                       & \\
+\GAP         &&Print(LaTeX(e));\\
+\Gmp         &                                       & \\
+\Macsyma     & fortran(e)\$ \OR gentran(eval(e))\$   & tex(e);             \\
+\Magnus      &                                       & \\
+\Maxima      & fortran(e)\$ \OR gentran(eval(e))\$   & tex(e);             \\
+\Maple       & fortran([e]);                         & latex(e);           \\
+\Mathematica & FortranForm[e]                        & TexForm[e]          \\
+\MuPAD       & generate::fortran(e);                 & generate::TeX(e);   \\
+\Octave      &                                       & \\
+\Pari        &                                       & \\
+\Reduce      & on fort; \q e; \q off fort; \OR       & load\_\,package(tri)\$ \\
+             & load\_\,package(gentran)\$ gentran e; & on TeX; e; off TeX; \\
+\Scilab      &                                       & \\
+\Sumit       &                                       & \\
+\Yacas       &                                       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Import two space separated columns of integers from {\tt file}} \\
+\hline
+\Axiom       & \\
+\Derive      & [Transfer Load daTa] ({\rm from} file.dat)          \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\
+\Magnus      & \\
+\Maxima      & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\
+\Maple       & xy:= readdata("file", integer, 2):                  \\
+\Mathematica & xy = ReadList["file", Number, RecordLists -> True]  \\
+\MuPAD       & \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Export two space separated columns of integers to {\tt file}\fnm} \\
+\hline
+\Axiom       & )set output algebra "file" \q ({\rm creates} file.spout)       \\
+             & for i in 1..n repeat output( \_                                \\
+             & \q concat([string(xy(i, 1)), " ", string(xy(i, 2))]) )         \\
+             & )set output algebra console                                    \\
+\Derive      & xy  [Transfer Print Expressions File]\q({\rm creates} file.prt)\\
+\DoCon       & \\
+\GAP         & PrintTo("file");for i in [1..n] do\\
+             &\q AppendTo("file",xy[i][1]," ",xy[i][2],"$\backslash$n");od;\\
+\Gmp         & \\
+\Macsyma     & writefile("file")\$ \q for i:1 thru n do                       \\
+             & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$                \\
+\Magnus      & \\
+\Maxima      & writefile("file")\$ \q for i:1 thru n do                       \\
+             & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$                \\
+\Maple       & writedata("file", xy);                                         \\
+\Mathematica & outfile = OpenWrite["file"];                                   \\
+             & Do[WriteString[outfile,                                        \\
+             & \q xy@[[i, 1]], " ", xy@[[i, 2]], "$\backslash$n"], \{i, 1, n\}] \\
+             & Close[outfile];                                                \\
+\MuPAD       & fprint(Unquoted, Text, "file",                                 \\
+             & \q ("$\backslash$n", xy[i, 1], xy[i, 2]) \$ i = 1..n):         \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & out "file"; \q for i:=1:n do                                   \\
+             & \q write(xy(i, 1), " ", xy(i, 2)); \q shut "file";             \\
+\Scilab      & \\
+\Sumit       & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\footnotetext{Some editing of {\tt file} will be necessary for all systems but
+\Maple\ and \Mathematica.}
+
+\section{Mathematics and Graphics}
+
+{\rm Since {\GAP} aims at discrete mathematics, it does not provide much of
+the calculus functionality listed in the following section.}
+
+\begin{tabular}{l|llllll}
+& $e$ & $\pi$ & $i$ & $+\infty$ & $\sqrt{2}$ & $2^{1/3}$ \\
+\hline
+\Axiom       & \%e    & \%pi & \%i & \%plusInfinity & sqrt(2) & 2**(1/3)   \\
+\Derive      & \#e    & pi   & \#i & inf            & SQRT(2) & 2\^{}(1/3) \\
+\DoCon       &        &      &     &                &         & \\
+\GAP         &        &      & E(4) & infinity & ER(2)\fnm &\\
+\Gmp         &        &      &     &                &         & \\
+\Macsyma     & \%e    & \%pi & \%i & inf            & sqrt(2) & 2\^{}(1/3) \\
+\Magnus      &        &      &     &                &         & \\
+\Maxima      & \%e    & \%pi & \%i & inf            & sqrt(2) & 2\^{}(1/3) \\
+\Maple       & exp(1) & Pi   & I   & infinity       & sqrt(2) & 2\^{}(1/3) \\
+\Mathematica & E      & Pi   & I   & Infinity       & Sqrt[2] & 2\^{}(1/3) \\
+\MuPAD       & E      & PI   & I   & infinity       & sqrt(2) & 2\^{}(1/3) \\
+\Octave      &        &      &     &                &         & \\
+\Pari        &        &      &     &                &         & \\
+\Reduce      & e      & pi   & i   & infinity       & sqrt(2) & 2\^{}(1/3) \\
+\Scilab      &        &      &     &                &         & \\
+\Sumit       &        &      &     &                &         & \\
+\Yacas       &        &      &     &                &         & \\
+\end{tabular} \\[10pt]
+\footnotetext{{\tt ER} represents special cyclotomic numbers and is not a
+root function.}
+\addtocounter{footnote}{-1}%
+
+\begin{tabular}{l|llll}
+& \h{Euler's constant} & \h{Natural log} & \h{Arctangent} & $n!$ \\
+\hline
+\Axiom       &                & log(x) & atan(x)   & factorial(n) \\
+\Derive      & euler\_\,gamma & LOG(x) & ATAN(x)   & n!           \\
+\DoCon       &                &        &           & \\
+\GAP         &                & LogInt(x,base) && Factorial(n) \\
+\Gmp         &                &        &           & \\
+\Macsyma     & \%gamma        & log(x) & atan(x)   & n!           \\
+\Magnus      &                &        &           & \\
+\Maxima      & \%gamma        & log(x) & atan(x)   & n!           \\
+\Maple       & gamma          & log(x) & arctan(x) & n!           \\
+\Mathematica & EulerGamma     & Log[x] & ArcTan[x] & n!           \\
+\MuPAD       & EULER          & ln(x)  & atan(x)   & n!           \\
+\Octave      &                &        &           & \\
+\Pari        &                &        &           & \\
+\Reduce      & Euler\_\,Gamma & log(x) & atan(x)   & factorial(n) \\
+\Scilab      &                &        &           & \\
+\Sumit       &                &        &           & \\
+\Yacas       &                &        &           & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Legendre polynomial} & \h{Chebyshev poly.\ of the \nth{1} kind} \\
+\hline
+\Axiom       & legendreP(n, x)          & chebyshevT(n, x)           \\
+\Derive      & LEGENDRE\_\,P(n, x)      & CHEBYCHEV\_\,T(n, x)       \\
+\DoCon       &                          & \\
+\GAP         &                          & \\
+\Gmp         &                          & \\
+\Macsyma     & legendre\_\,p(n, x)      & chebyshev\_\,t(n, x)       \\
+\Magnus      &                          & \\
+\Maxima      & legendre\_\,p(n, x)      & chebyshev\_\,t(n, x)       \\
+\Maple       & orthopoly[P](n, x)       & orthopoly[T](n, x)         \\
+\Mathematica & LegendreP[n, x]          & ChebyshevT[n, x]           \\
+\MuPAD       & orthpoly::legendre(n, x) & orthpoly::chebyshev1(n, x) \\
+\Octave      &                          & \\
+\Pari        &                          & \\
+\Reduce      & LegendreP(n, x)          & ChebyshevT(n, x)           \\
+\Scilab      &                          & \\
+\Sumit       &                          & \\
+\Yacas       &                          & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Fibonacci number} & \h{Elliptic integral of the \nth{1} kind} \\
+\hline
+\Axiom       & fibonacci(n)           & \\
+\Derive      & FIBONACCI(n)           & ELLIPTIC\_\,E(phi, k\^{}2) \\
+\DoCon       &                        & \\
+\GAP         & Fibonacci(n)           & \\
+\Gmp         &                        & \\
+\Macsyma     & fib(n)                 & elliptic\_\,e(phi, k\^{}2) \\
+\Magnus      &                        & \\
+\Maxima      & fib(n)                 & elliptic\_\,e(phi, k\^{}2) \\
+\Maple       & combinat[fibonacci](n) & EllipticE(sin(phi), k)     \\
+\Mathematica & Fibonacci[n]           & EllipticE[phi, k\^{}2]     \\
+\MuPAD       & numlib::fibonacci(n)   & \\
+\Octave      &                        & \\
+\Pari        &                        & \\
+\Reduce      &                        & EllipticE(phi, k\^{}2)     \\
+\Scilab      &                        & \\
+\Sumit       &                        & \\
+\Yacas       &                        & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|llll}
+& $\Gamma(x)$ & $\psi(x)$ & \h{Cosine integral} & \h{Bessel fun.\ (\nth{1})} \\
+\hline
+\Axiom       & Gamma(x) & psi(x)       & real(Ei(\%i*x)) & besselJ(n, x)     \\
+\Derive      & GAMMA(x) & PSI(x)       & CI(x)           & BESSEL\_\,J(n, x) \\
+\DoCon       &          &              &                 & \\
+\GAP         &          &              &                 & \\
+\Gmp         &          &              &                 & \\
+\Macsyma     & gamma(x) & psi[0](x)    & cos\_\,int(x)   & bessel\_j[n](x)   \\
+\Magnus      &          &              &                 & \\
+\Maxima      & gamma(x) & psi[0](x)    & cos\_\,int(x)   & bessel\_j[n](x)   \\
+\Maple       & GAMMA(x) & Psi(x)       & Ci(x)           & BesselJ(n, x)     \\
+\Mathematica & Gamma[x] & PolyGamma[x] & CosIntegral[x]  & BesselJ[n, x]     \\
+\MuPAD       & gamma(x) & psi(x)       &                 & besselJ(n, x)     \\
+\Octave      &          &              &                 & \\
+\Pari        &          &              &                 & \\
+\Reduce      & Gamma(x) & Psi(x)       & Ci(x)           & BesselJ(n, x)     \\
+\Scilab      &          &              &                 & \\
+\Sumit       &          &              &                 & \\
+\Yacas       &          &              &                 & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{Hypergeometric fun.\ ${}_2F_1(a, b; c; x)$} & \h{Dirac delta} &
+	\h{Unit step fun.} \\
+\hline
+\Axiom       &                                    &          & \\
+\Derive      & GAUSS(a, b, c, x)                  &          & STEP(x)      \\
+\DoCon       &                                    &          & \\
+\GAP         &                                    &          & \\
+\Gmp         &                                    &          & \\
+\Macsyma     & hgfred([a, b], [c], x)             & delta(x) & unit\_\,step(x)
+	\\
+\Magnus      &                                    &          & \\
+\Maxima      & hgfred([a, b], [c], x)             & delta(x) & unit\_\,step(x)
+	\\
+\Maple       & hypergeom([a, b], [c], x)          & Dirac(x) & Heaviside(x) \\
+\Mathematica & HypergeometricPFQ[\{a,b\},\{c\},x] &
+	\m{2}{@<< Calculus\`{}DiracDelta\`{}} \\
+\MuPAD       &                                    & dirac(x) & heaviside(x) \\
+\Octave      &                                    &          & \\
+\Pari        &                                    &          & \\
+\Reduce      & hypergeometric(\{a, b\}, \{c\}, x) &          & \\
+\Scilab      &                                    &          & \\
+\Sumit       &                                    &          & \\
+\Yacas       &                                    &          & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Define $|x|$ via a piecewise function} \\
+\hline
+\Axiom       & \\
+\Derive      & a(x):= -x*CHI(-inf, x, 0) + x*CHI(0, x, inf)        \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$    \\
+\Magnus      & \\
+\Maxima      & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$    \\
+\Maple       & a:= x -> piecewise(x < 0, -x, x):                   \\
+\Mathematica & @<< Calculus\`{}DiracDelta\`{}                       \\
+             & a[x\_]:= -x*UnitStep[-x] + x*UnitStep[x]            \\
+\MuPAD       & a:= proc(x) begin -x*heaviside(-x) + x*heaviside(x) \\
+             & \q\q end\_\,proc:                                   \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Assume $x$ is real} & \h{Remove that assumption} \\
+\hline
+\Axiom       & & \\
+\Derive      & x :epsilon Real           & x:=                         \\
+\DoCon       &                           & \\
+\GAP         &                           & \\
+\Gmp         &                           & \\
+\Macsyma     & declare(x, real)\$        & remove(x, real)\$           \\
+\Magnus      &                           & \\
+\Maxima      & declare(x, real)\$        & remove(x, real)\$           \\
+\Maple       & assume(x, real);          & x:= 'x':                    \\
+\Mathematica & x/: Im[x] = 0;            & Clear[x]                    \\
+\MuPAD       & assume(x, Type::RealNum): & unassume(x, Type::RealNum): \\
+\Octave      &                           & \\
+\Pari        &                           & \\
+\Reduce      & & \\
+\Scilab      &                           & \\
+\Sumit       &                           & \\
+\Yacas       &                           & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Assume $0 < x \le 1$} & \h{Remove that assumption} \\
+\hline
+\Axiom       & & \\
+\Derive      & x :epsilon (0, 1]               & x:=                     \\
+\DoCon       &                                 & \\
+\GAP         &                                 & \\
+\Gmp         &                                 & \\
+\Macsyma     & assume(x > 0, x <= 1)\$         & forget(x > 0, x <= 1)\$ \\
+\Magnus      &                                 & \\
+\Maxima      & assume(x > 0, x <= 1)\$         & forget(x > 0, x <= 1)\$ \\
+\Maple       & assume(x > 0);                  & x:= 'x':                \\
+             & additionally(x <= 1);           & \\
+\Mathematica & Assumptions -> 0 < x <= 1\,\fnm & \\
+\MuPAD       & assume(x > 0):  assume(x <= 1): & unassume(x):            \\
+\Octave      &                                 & \\
+\Pari        &                                 & \\
+\Reduce      & & \\
+\Scilab      &                                 & \\
+\Sumit       &                                 & \\
+\Yacas       &                                 & \\
+\end{tabular} \\[10pt]
+
+\footnotetext{This is an option for {\tt Integrate}.}
+
+\begin{tabular}{l|l}
+& \h{Basic simplification of an expression $e$} \\
+\hline
+\Axiom       & simplify(e) \OR\ normalize(e) \OR\ complexNormalize(e) \\
+\Derive      & e                                                      \\
+\DoCon       & \\
+\GAP         & e \\
+\Gmp         & \\
+\Macsyma     & ratsimp(e) \OR\ radcan(e)                              \\
+\Magnus      & \\
+\Maxima      & ratsimp(e) \OR\ radcan(e)                              \\
+\Maple       & simplify(e)                                            \\
+\Mathematica & Simplify[e] \OR\ FullSimplify[e]                       \\
+\MuPAD       & simplify(e) \OR\ normal(e)                             \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & e                                                      \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Use an unknown function} & \h{Numerically evaluate an expr.} \\
+\hline
+\Axiom       & f:= operator('f); \q f(x) & exp(1) :: Complex Float \\
+\Derive      & f(x):=                    & Precision:= Approximate \\
+             & f(x)                      & APPROX(EXP(1)) \\
+             &                           & Precision:= Exact \\
+\DoCon       &                           & \\
+\GAP         &                           & EvalF(123/456)\\
+\Gmp         &                           & \\
+\Macsyma     & f(x)                      & sfloat(exp(1)); \\
+\Magnus      &                           & \\
+\Maxima      & f(x)                      & sfloat(exp(1)); \\
+\Maple       & f(x)                      & evalf(exp(1)); \\
+\Mathematica & f[x]                      & N[Exp[1]] \\
+\MuPAD       & f(x)                      & float(exp(1)); \\
+\Octave      &                           & \\
+\Pari        &                           & \\
+\Reduce      & operator f; \q f(x)       & on rounded; \q exp(1); \\
+             &                           & off rounded; \\
+\Scilab      &                           & \\
+\Sumit       &                           & \\
+\Yacas       &                           & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& $ n \bmod m$ & \h{Solve $e \equiv 0 \bmod m$ for $x$} \\
+\hline
+\Axiom       & rem(n, m)       & solve(e = 0 :: PrimeField(m), x)        \\
+\Derive      & MOD(n, m)       & SOLVE\_\,MOD(e = 0, x, m)               \\
+\DoCon       &                 & \\
+\GAP         & n mod m         & \h{solve using finite fields}\\
+\Gmp         &                 & \\
+\Macsyma     & mod(n, m)       & modulus: m\$ \q solve(e = 0, x)         \\
+\Magnus      &                 & \\
+\Maxima      & mod(n, m)       & modulus: m\$ \q solve(e = 0, x)         \\
+\Maple       & n mod m         & msolve(e = 0, m)                        \\
+\Mathematica & Mod[n, m]       & Solve[\{e == 0, Modulus == m\}, x]      \\
+\MuPAD       & n mod m         & solve(poly(e = 0, [x], IntMod(m)), x)   \\
+\Octave      &                 & \\
+\Pari        &                 & \\
+\Reduce      & on modular;     & load\_\,package(modsr)\$ \q on modular; \\
+             & setmod m\$ \q n & setmod m\$ \q m\_solve(e = 0, x)        \\
+\Scilab      &                 & \\
+\Sumit       &                 & \\
+\Yacas       &                 & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Put over common denominator} & \h{Expand into separate fractions} \\
+\hline
+\Axiom       & a/b + c/d                  & (a*d + b*c)/(b*d) :: \_      \\
+             &                            & \q MPOLY([a], FRAC POLY INT) \\
+\Derive      & FACTOR(a/b + c/d, Trivial) & EXPAND((a*d + b*c)/(b*d))    \\
+\DoCon       &                            & \\
+\GAP         & a/b+c/d                    &\\
+\Gmp         &                            & \\
+\Macsyma     & xthru(a/b + c/d)           & expand((a*d + b*c)/(b*d))    \\
+\Magnus      &                            & \\
+\Maxima      & xthru(a/b + c/d)           & expand((a*d + b*c)/(b*d))    \\
+\Maple       & normal(a/b + c/d)          & expand((a*d + b*c)/(b*d))    \\
+\Mathematica & Together[a/b + c/d]        & Apart[(a*d + b*c)/(b*d)]     \\
+\MuPAD       & normal(a/b + c/d)          & expand((a*d + b*c)/(b*d))    \\
+\Octave      &                            & \\
+\Pari        &                            & \\
+\Reduce      & a/b + c/d                  & on div;  (a*d + b*c)/(b*d)   \\
+\Scilab      &                            & \\
+\Sumit       &                            & \\
+\Yacas       &                            & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Manipulate the root of a polynomial} \\
+\hline
+\Axiom       & a:= rootOf(x**2 - 2); \q a**2                               \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & x:=X(Rationals,"x");\\
+&\q a:=RootOfDefiningPolynomial(AlgebraicExtension(Rationals,x\^{}2-2));
+a\^{}2\\
+\Gmp         & \\
+\Macsyma     & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2);   \\
+\Magnus      & \\
+\Maxima      & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2);   \\
+\Maple       & a:= RootOf(x\^{}2 - 2): \q simplify(a\^{}2);                \\
+\Mathematica & a = Root[\#\^{}2 - 2 \&, 2] \q a\^{}2                       \\
+\MuPAD       & \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & load\_\,package(arnum)\$ \q defpoly(a\^{}2 - 2); \q a\^{}2; \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Noncommutative multiplication} & \h{Solve a pair of equations} \\
+\hline
+\Axiom       &                      & solve([eqn1, eqn2], [x, y])     \\
+\Derive      & x :epsilon Nonscalar & SOLVE([eqn1, eqn2], [x, y])     \\
+             & y :epsilon Nonscalar & \\
+             & x . y                & \\
+\DoCon       &                      & \\
+\GAP         &*&\\
+\Gmp         &                      & \\
+\Macsyma     & x . y                & solve([eqn1, eqn2], [x, y])     \\
+\Magnus      &                      & \\
+\Maxima      & x . y                & solve([eqn1, eqn2], [x, y])     \\
+\Maple       & x \&* y              & solve(\{eqn1, eqn2\}, \{x, y\}) \\
+\Mathematica & x ** y               & Solve[\{eqn1, eqn2\}, \{x, y\}] \\
+\MuPAD       &                      & solve(\{eqn1, eqn2\}, \{x, y\}) \\
+\Octave      &                      & \\
+\Pari        &                      & \\
+\Reduce      & operator x, y;       & solve(\{eqn1, eqn2\}, \{x, y\}) \\
+             & noncom x, y;         & \\
+             & x() * y()            & \\
+\Scilab      &                      & \\
+\Sumit       &                      & \\
+\Yacas       &                      & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \m{2}{\rm Decrease/increase angles in trigonometric functions} \\
+\hline
+\Axiom       & \m{2}{simplify(normalize(sin(2*x)))} \\
+\Derive      & Trigonometry:= Expand         & Trigonometry:= Collect      \\
+             & sin(2*x)                      & 2*sin(x)*cos(x)             \\
+\DoCon       &                               & \\
+\GAP         &                               & \\
+\Gmp         &                               & \\
+\Macsyma     & trigexpand(sin(2*x))          & trigreduce(2*sin(x)*cos(x)) \\
+\Magnus      &                               & \\
+\Maxima      & trigexpand(sin(2*x))          & trigreduce(2*sin(x)*cos(x)) \\
+\Maple       & expand(sin(2*x))              & combine(2*sin(x)*cos(x))    \\
+\Mathematica & TrigExpand[Sin[2*x]]          & TrigReduce[2*Sin[x]*Cos[x]] \\
+\MuPAD       & expand(sin(2*x))              & combine(2*sin(x)*cos(x), sincos)
+	\\
+\Octave      &                               & \\
+\Pari        &                               & \\
+\Reduce      & load\_\,package(assist)\$ \\
+             & trigexpand(sin(2*x))          & trigreduce(2*sin(x)*cos(x)) \\
+\Scilab      &                               & \\
+\Sumit       &                               & \\
+\Yacas       &                               & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Gr\"obner basis} \\
+\hline
+\Axiom       & groebner([p1, p2, ...])                                  \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & grobner([p1, p2, ...]) \\
+\Magnus      & \\
+\Maxima      & grobner([p1, p2, ...]) \\
+\Maple       & Groebner[gbasis]([p1, p2, ...], plex(x1, x2, ...))       \\
+\Mathematica & GroebnerBasis[\{p1, p2, ...\}, \{x1, x2, ...\}]          \\
+\MuPAD       & groebner::gbasis([p1, p2, ...])                          \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & load\_\,package(groebner)\$ \q groebner(\{p1, p2, ...\}) \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Factorization of $e$ over $i = \sqrt{-1}$} \\
+\hline
+\Axiom       & factor(e, [rootOf(i**2 + 1)]) \\
+\Derive      & FACTOR(e, Complex) \\
+\DoCon       & \\
+\GAP         & Factors(GaussianIntegers,e)\\
+\Gmp         & \\
+\Macsyma     & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\
+\Magnus      & \\
+\Maxima      & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\
+\Maple       & factor(e, I); \\
+\Mathematica & Factor[e, Extension -> I] \\
+\MuPAD       & QI:= Dom::AlgebraicExtension(Dom::Rational, i\^{}2 + 1); \\
+             & QI::name:= "QI": \q Factor(poly(e, QI)); \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & on complex, factor; \q e; \q off complex, factor; \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Real part} & \h{Convert a complex expr.\ to rectangular form} \\
+\hline
+\Axiom       & real(f(z))     & complexForm(f(z))             \\
+\Derive      & RE(f(z))       & f(z)                          \\
+\DoCon       &                & \\
+\GAP         & (f(z)+GaloisCyc(f(z),-1))/2&\\
+\Gmp         &                & \\
+\Macsyma     & realpart(f(z)) & rectform(f(z))                \\
+\Magnus      &                & \\
+\Maxima      & realpart(f(z)) & rectform(f(z))                \\
+\Maple       & Re(f(z))       & evalc(f(z))                   \\
+\Mathematica & Re[f[z]]       & ComplexExpand[f[z]]           \\
+\MuPAD       & Re(f(z))       & rectform(f(z))                \\
+\Octave      &                & \\
+\Pari        &                & \\
+\Reduce      & repart(f(z))   & repart(f(z)) + i*impart(f(z)) \\
+\Scilab      &                & \\
+\Sumit       &                & \\
+\Yacas       &                & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|lll}
+& \h{Matrix addition} & \h{Matrix multiplication} & \h{Matrix transpose} \\
+\hline
+\Axiom       & A + B        & A * B          & transpose(A)         \\
+\Derive      & A + B        & A . B          & A\`{}                \\
+\DoCon       &              &                & \\
+\GAP         & A + B        & A * B          & TransposedMat(A)\\
+\Gmp         &              &                & \\
+\Macsyma     & A + B        & A . B          & transpose(A)         \\
+\Magnus      &              &                & \\
+\Maxima      & A + B        & A . B          & transpose(A)         \\
+\Maple       & evalm(A + B) & evalm(A \&* B) & linalg[transpose](A) \\
+\Mathematica & A + B        & A . B          & Transpose[A]         \\
+\MuPAD       & A + B        & A * B          & transpose(A)         \\
+\Octave      &              &                & \\
+\Pari        &              &                & \\
+\Reduce      & A + B        & A * B          & tp(A)                \\
+\Scilab      &              &                & \\
+\Sumit       &              &                & \\
+\Yacas       &              &                & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Solve the matrix equation $A x = b$} \\
+\hline
+\Axiom       & solve(A, transpose(b)) . 1 . particular :: Matrix \_\_\_ \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & SolutionMat(TransposedMat(A),b)\\
+\Gmp         & \\
+\Macsyma     & xx: genvector('x, mat\_nrows(b))\$                       \\
+             & x: part(matlinsolve(A . xx = b, xx), 1, 2)               \\
+\Magnus      & \\
+\Maxima      & xx: genvector('x, mat\_nrows(b))\$                       \\
+             & x: part(matlinsolve(A . xx = b, xx), 1, 2)               \\
+\Maple       & x:= linalg[linsolve](A, b)                               \\
+\Mathematica & x = LinearSolve[A, b]                                    \\
+\MuPAD       & \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Sum: $\sum_{i = 1}^n f(i)$} & \h{Product: $\prod_{i = 1}^n f(i)$} \\
+\hline
+\Axiom       & sum(f(i), i = 1..n)    & product(f(i), i = 1..n)    \\
+\Derive      & SUM(f(i), i, 1, n)     & PRODUCT(f(i), i, 1, n)     \\
+\DoCon       &                        & \\
+\GAP         & Sum([1..n],f)          & Product([1..n],f)\\
+\Gmp         &                        & \\
+\Macsyma     & closedform(            & closedform(                \\
+             & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\
+\Magnus      &                        & \\
+\Maxima      & closedform(            & closedform(                \\
+             & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\
+\Maple       & sum(f(i), i = 1..n)    & product(f(i), i = 1..n)    \\
+\Mathematica & Sum[f[i], \{i, 1, n\}] & Product[f[i], \{i, 1, n\}] \\
+\MuPAD       & sum(f(i), i = 1..n)    & product(f(i), i = 1..n)    \\
+\Octave      &                        & \\
+\Pari        &                        & \\
+\Reduce      & sum(f(i), i, 1, n)     & prod(f(i), i, 1, n)        \\
+\Scilab      &                        & \\
+\Sumit       &                        & \\
+\Yacas       &                        & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Limit: $\lim_{x \rightarrow 0-} f(x)$} & \h{Taylor/Laurent/etc.\ series} \\
+\hline
+\Axiom       & limit(f(x), x = 0, "left")      & series(f(x), x = 0, 3)   \\
+\Derive      & LIM(f(x), x, 0, -1)             & TAYLOR(f(x), x, 0, 3)    \\
+\DoCon       &                                 & \\
+\GAP         &                                 & \\
+\Gmp         &                                 & \\
+\Macsyma     & limit(f(x), x, 0, minus)        & taylor(f(x), x, 0, 3)    \\
+\Magnus      &                                 & \\
+\Maxima      & limit(f(x), x, 0, minus)        & taylor(f(x), x, 0, 3)    \\
+\Maple       & limit(f(x), x = 0, left)        & series(f(x), x = 0, 4)   \\
+\Mathematica & Limit[f[x], x->0, Direction->1] & Series[f[x],\{x, 0, 3\}] \\
+\MuPAD       & limit(f(x), x = 0, Left)        & series(f(x), x = 0, 4)   \\
+\Octave      &                                 & \\
+\Pari        &                                 & \\
+\Reduce      & limit!-(f(x), x, 0)             & taylor(f(x), x, 0, 3)    \\
+\Scilab      &                                 & \\
+\Sumit       &                                 & \\
+\Yacas       &                                 & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Differentiate: $\frac{d^3 f(x, y)}{dx \, dy^2}$} &
+	\h{Integrate: $\int_0^1 f(x) \, dx$} \\
+\hline
+\Axiom       & D(f(x, y), [x, y], [1, 2]) & integrate(f(x), x = 0..1)    \\
+\Derive      & DIF(DIF(f(x, y), x), y, 2) & INT(f(x), x, 0, 1)           \\
+\DoCon       &                            & \\
+\GAP         &                            & \\
+\Gmp         &                            & \\
+\Macsyma     & diff(f(x, y), x, 1, y, 2)  & integrate(f(x), x, 0, 1)     \\
+\Magnus      &                            & \\
+\Maxima      & diff(f(x, y), x, 1, y, 2)  & integrate(f(x), x, 0, 1)     \\
+\Maple       & diff(f(x, y), x, y\$2)     & int(f(x), x = 0..1)          \\
+\Mathematica & D[f[x, y], x, \{y, 2\}]    & Integrate[f[x], \{x, 0, 1\}] \\
+\MuPAD       & diff(f(x, y), x, y\$2)     & int(f(x), x = 0..1)          \\
+\Octave      &                            & \\
+\Pari        &                            & \\
+\Reduce      & df(f(x, y), x, y, 2)       & int(f(x), x, 0, 1)           \\
+\Scilab      &                            & \\
+\Sumit       &                            & \\
+\Yacas       &                            & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|ll}
+& \h{Laplace transform} & \h{Inverse Laplace transform} \\
+\hline
+\Axiom       & laplace(e, t, s)          & inverseLaplace(e, s, t)        \\
+\Derive      & LAPLACE(e, t, s)          & \\
+\DoCon       &                           & \\
+\GAP         &                           & \\
+\Gmp         &                           & \\
+\Macsyma     & laplace(e, t, s)          & ilt(e, s, t)                   \\
+\Magnus      &                           & \\
+\Maxima      & laplace(e, t, s)          & ilt(e, s, t)                   \\
+\Maple       & inttrans[laplace](e,t,s)  & inttrans[invlaplace](e,s,t)    \\
+\Mathematica & \m{2}{\q @<< Calculus\`{}LaplaceTransform\`{}} \\
+             & LaplaceTransform[e, t, s] & {\st InverseLaplaceTransform[e,s,t]}
+	\\
+\MuPAD       & transform::laplace(e,t,s) & transform::ilaplace(e, s, t)   \\
+\Octave      &                           & \\
+\Pari        &                           & \\
+\Reduce      & \m{2}{\q load\_\,package(laplace)\$ \q load\_\,package(defint)\$}
+	\\
+             & laplace(e, t, s)          & invlap(e, t, s)                \\
+\Scilab      &                           & \\
+\Sumit       &                           & \\
+\Yacas       &                           & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Solve an ODE (with the initial condition $y'(0) = 1$)} \\
+\hline
+\Axiom       & solve(eqn, y, x)                                      \\
+\Derive      & APPLY\_\,IC(RHS(ODE(eqn, x, y, y\_)), [x, 0], [y, 1]) \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\
+\Magnus      & \\
+\Maxima      & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\
+\Maple       & dsolve(\{eqn, D(y)(0) = 1\}, y(x))                    \\
+\Mathematica & DSolve[\{eqn, y'[0] == 1\}, y[x], x]                  \\
+\MuPAD       & solve(ode(\{eqn, D(y)(0) = 1\}, y(x)))                \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & odesolve(eqn, y(x), x)                                \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Define the differential operator $L = D_x + I$ and apply it to $\sin x$} \\
+\hline
+\Axiom       & DD : LODO(Expression Integer, e +-> D(e, x)) := D(); \\
+             & L:= DD + 1; \q L(sin(x))                             \\
+\Derive      & \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x));  \\
+\Magnus      & \\
+\Maxima      & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x));  \\
+\Maple       & id:= x -> x: \q L:= (D + id): \q L(sin)(x);          \\
+\Mathematica & L = D[\#, x]\& + Identity; \q Through[L[Sin[x]]]     \\
+\MuPAD       & L:= (D + id): \q L(sin)(x);                          \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{2D plot of two separate curves overlayed} \\
+\hline
+\Axiom       & draw(x, x = 0..1); \q draw(acsch(x), x = 0..1);           \\
+\Derive      & [Plot Overlay]                                            \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$           \\
+\Magnus      & \\
+\Maxima      & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$           \\
+\Maple       & plot(\{x, arccsch(x)\}, x = 0..1):                        \\
+\Mathematica & Plot[\{x, ArcCsch[x]\}, \{x, 0, 1\}];                     \\
+\MuPAD       & plotfunc(x, acsch(x), x = 0..1):                          \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & load\_\,package(gnuplot)\$ \q plot(y = x, x = (0 .. 1))\$ \\
+             & plot(y = acsch(x), x = (0 .. 1))\$                        \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+\begin{tabular}{l|l}
+& \h{Simple 3D plotting} \\
+\hline
+\Axiom       & draw(abs(x*y), x = 0..1, y = 0..1);              \\
+\Derive      & [Plot Overlay]                                   \\
+\DoCon       & \\
+\GAP         & \\
+\Gmp         & \\
+\Macsyma     & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$             \\
+\Magnus      & \\
+\Maxima      & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$             \\
+\Maple       & plot3d(abs(x*y), x = 0..1, y = 0..1):            \\
+\Mathematica & Plot3D[Abs[x*y], \{x, 0, 1\}, \{y, 0, 1\}];      \\
+\MuPAD       & plotfunc(abs(x*y), x = 0..1, y = 0..1):          \\
+\Octave      & \\
+\Pari        & \\
+\Reduce      & load\_\,package(gnuplot)\$                       \\
+             & plot(z = abs(x*y), x = (0 .. 1), y = (0 .. 1))\$ \\
+\Scilab      & \\
+\Sumit       & \\
+\Yacas       & \\
+\end{tabular} \\[10pt]
+
+%\begin{tabular}{l|l}
+%& \h{} \\
+%\hline
+%\Axiom       & \\
+%\Derive      & \\
+%\DoCon       & \\
+%\GAP         & \\
+%\Gmp         & \\
+%\Macsyma     & \\
+%\Magnus      & \\
+%\Maxima      & \\
+%\Maple       & \\
+%\Mathematica & \\
+%\MuPAD       & \\
+%\Octave      & \\
+%\Pari        & \\
+%\Reduce      & \\
+%\Scilab      & \\
+%\Sumit       & \\
+%\Yacas       & \\
+%\end{tabular} \\[10pt]
+
+\end{tt}
+\endgroup
+\end{document}
diff --git a/changelog b/changelog
index 9f7cc56..bcaa591 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,10 @@
+20140731 tpd src/axiom-website/patches.html 20140731.01.tpd.patch
+20140731 tpd books/Makefile.pamphlet
+20140731 tpd src/doc/endpaper.pamphlet -> books/endpaper.pamphlet
+20140731 tpd src/doc/refcard.pamphlet -> books/refcard.pamphlet
+20140731 tpd src/doc/rosetta.pamphlet -> books/rosetta.pamphlet
+20140731 tpd src/Makefile.pamphlet
+20140731 tpd src/doc/Makefile.pamphlet
 20140729 tpd src/axiom-website/patches.html 20140729.05.tpd.patch
 20140729 tpd src/lib/xspadfill.c 'maxDither' is set but never used, removed
 20140729 tpd src/axiom-website/patches.html 20140729.04.tpd.patch
diff --git a/patch b/patch
index 7e6c93e..661cb77 100644
--- a/patch
+++ b/patch
@@ -1 +1,3 @@
-src/lib/xspadfill.c 'maxDither' is set but never used, removed
+src/doc/Makefile removed
+
+The file manipulated by Makefile are now handled by books/Makefile
diff --git a/src/Makefile.pamphlet b/src/Makefile.pamphlet
index e4093d3..c99e0ad 100644
--- a/src/Makefile.pamphlet
+++ b/src/Makefile.pamphlet
@@ -148,33 +148,6 @@ shareclean: ${SRC}/share/Makefile
 	@rm -f ${SRC}/share/Makefile.dvi
 
 \end{chunk}
-\subsection{The booklet directory}
-The {\bf booklet} directory contains pamphlet files that document
-Axiom at a "higher level" than any particular pamphlet file. Booklets
-can be stand-alone descriptions (e.g. the Rosetta.pamphlet), 
-top-down slices thru the system (e.g. the Integration.pamphlet),
-or horizontal slices thru the system (e.g. the Matrix.pamphlet).
-\begin{chunk}{bookletsdir}
-bookletsdir: ${SRC}/booklets/Makefile
-	@echo 13 making ${SRC}/booklets
-	@(cd booklets ; ${ENV} ${MAKE} )
-
-${SRC}/booklets/Makefile: ${SRC}/booklets/Makefile.pamphlet
-	@echo 14 making ${SRC}/booklets/Makefile from \
-           ${SRC}/booklets/Makefile.pamphlet
-	@( cd booklets ; ${DOCUMENT} ${NOISE} Makefile )
-
-bookletsdocument: ${SRC}/booklets/Makefile
-	@echo 15 documenting ${SRC}/booklets
-	@mkdir -p ${INT}/doc/src/booklets
-	@( cd booklets ; ${ENV} ${MAKE} )
-
-bookletsclean: ${SRC}/booklets/Makefile
-	@echo 16 cleaning ${SRC}/booklets
-	@( cd booklets ; ${ENV} ${MAKE} clean )
-
-
-\end{chunk}
 \subsection{The lib directory}
 The {\bf lib} directory is used to build {\bf libspad.a} which 
 contains C code for extending the underlying Common Lisp systems.
@@ -385,7 +358,7 @@ This takes all of the Axiom volumes and creates .pdf copies in the
 final doc directory.
 
 \begin{chunk}{docdir}
-docdir: ${SRC}/doc/Makefile
+docdir: 
 	@echo 41 making ${SRC}/doc
 	@mkdir -p ${INT}/doc
 	@mkdir -p ${MNT}/${SYS}/bin
@@ -405,25 +378,6 @@ docdir: ${SRC}/doc/Makefile
 	  ${BOOKS}/tanglec ${SPD}/books/bookvol11.pamphlet >Makefile11 ; \
 	  ${ENV} ${MAKE} -f Makefile11 ; \
 	  rm -f Makefile11 )
-	@(cd doc ; ${ENV} ${MAKE} )
-
-${SRC}/doc/Makefile: ${SRC}/doc/Makefile.pamphlet
-	@echo 42 making ${SRC}/doc/Makefile from ${SRC}/doc/Makefile.pamphlet
-	@( cd doc ; \
-           ${EXTRACT} Makefile ; \
-           cp Makefile.pdf ${MNT}/${SYS}/doc/src/doc.Makefile.pdf )
-
-docdocument: ${SRC}/doc/Makefile
-	@echo 43 documenting ${SRC}/doc
-	@mkdir -p ${INT}/doc/src/doc
-	@( cd doc ; ${ENV} ${MAKE} document )
-
-docclean: ${SRC}/doc/Makefile
-	@echo 44 cleaning ${SRC}/doc
-	@( cd doc ; ${ENV} ${MAKE} clean )
-	@rm -rf ${OBJ}/${SYS}/doc
-	@rm -f ${SRC}/doc/Makefile
-	@rm -f ${SRC}/doc/Makefile.dvi
 
 \end{chunk}
 \subsection{Volume 7:Axiom Hyperdoc book}
@@ -588,7 +542,6 @@ setup: ${SETUP}
 \getchunk{smandir}
 \getchunk{sharedir}
 \getchunk{docdir}
-\getchunk{bookletsdir}
 \getchunk{libdir}
 \getchunk{bootdir}
 \getchunk{interpdir}
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 80fc353..2772f8f 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4586,6 +4586,8 @@ src/lib/pixmap.c 'status' is set but never used, removed<br/>
 src/lib/sockio-c.c 'val is set but never used, removed<br/>
 <a href="patches/20140729.05.tpd.patch">20140729.05.tpd.patch</a>
 src/lib/xspadfill.c 'maxDither' is set but never used, removed<br/>
+<a href="patches/20140731.01.tpd.patch">20140731.01.tpd.patch</a>
+src/doc/Makefile removed<br/>
  </body>
 </html>
 
diff --git a/src/doc/Makefile.pamphlet b/src/doc/Makefile.pamphlet
deleted file mode 100644
index 8487383..0000000
--- a/src/doc/Makefile.pamphlet
+++ /dev/null
@@ -1,116 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/doc Makefile}
-\author{Timothy Daly}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-
-\section{The Reference Card}
-This is the one-page, 2 sided reference card
-\begin{chunk}{refcard}
-${DVI}/refcard.pdf: ${IN}/refcard.pamphlet
-	@echo sd02 making ${DVI}/refcard.dvi from ${IN}/refcard.pamphlet
-	@(cd ${MID} ; \
-	cp ${IN}/refcard.pamphlet ${MID} ;\
-	latex refcard.pamphlet ; \
-	dvipdf refcard.dvi ; \
-	cp refcard.pdf ${DVI} ; \
-	rm refcard.log ; \
-	rm refcard.aux )
-
-\end{chunk}
-\section{The End Papers}
-This document reproduces the diagrams on the inside covers of the
-original Jenks Axiom book but adds hyperlinks.
-\begin{chunk}{Endpapers}
-${DVI}/endpaper.pdf: ${IN}/endpaper.pamphlet
-	@echo sd03 making ${DVI}/endpaper.pdf from ${IN}/endpaper.pamphlet
-	@(cd ${MID} ; \
-	cp ${IN}/endpaper.pamphlet ${MID} ; \
-	mkdir -p ${MID}/ps ; \
-	cp ${IN}/ps/*ps* ${MID}/ps ; \
-	latex endpaper.pamphlet ; \
-	latex endpaper.pamphlet ; \
-	dvipdf endpaper.dvi ; \
-	cp endpaper.pdf ${DVI} ; \
-	rm endpaper.* ; \
-	mkdir -p ${DVI}/ps ; \
-	cp ${IN}/ps/*ps* ${DVI}/ps )
-
-\end{chunk}
-\section{rosetta}
-The rosetta document is an effort to give a command-by-command
-way of moving between various computer algebra systems. It was
-originally created for the "rosetta" series of CDs. These rosetta
-CDs contained multiple, free computer algebra systems.
-\begin{chunk}{rosetta}
-${DVI}/rosetta.pdf: ${IN}/rosetta.pamphlet
-	@echo sd04 building ${DVI}/rosetta.dvi from ${IN}/rosetta.pamphlet
-	@(cd ${MID} ; \
-	cp ${IN}/rosetta.pamphlet ${MID} ; \
-	latex rosetta.pamphlet ; \
-	dvipdf rosetta.dvi ; \
-	cp rosetta.pdf ${DVI} )
-
-\end{chunk}
-\section{The booklet command}
-\begin{chunk}{booklet}
-${OUT}/booklet: ${MID}/booklet.o
-	@echo sd05 making ${OUT}/booklet from ${MID}/booklet.o
-	@(cd ${OUT} ; \
-	  ${CC} ${MID}/booklet.o -o booklet )
-
-${MID}/booklet.o: ${INT}/booklet.c
-	@echo sd06 making ${MID}/booklet.o from ${INT}/booklet.c
-	@(cd ${MID} ; \
-	  ${CC} -c ${INT}/booklet.c )
-
-${INT}/booklet.c: ${IN}/booklet.c.pamphlet
-	@echo sd07 making ${INT}/booklet.c from ${IN}/booklet.c.pamphlet
-	@(cd ${INT} ; \
-	  ${BOOKS}/tanglec ${IN}/booklet.c.pamphlet >booklet.c )
-	  
-\end{chunk}
-\section{The Makefile}
-We need to document the commands.
-\begin{chunk}{*}
-IN=${SRC}/doc
-MID=${INT}/doc
-OUT=${MNT}/${SYS}/bin
-STY=${OUT}/tex
-DVI=${MNT}/${SYS}/doc
-DOC=${INT}/doc
-
-FILES= ${DVI}/refcard.pdf ${DVI}/endpaper.pdf ${DVI}/rosetta.pdf 
-
-CMDS=${OUT}/booklet
-
-all: announce ${FILES} ${CMDS}
-	@echo sd08 finished ${IN}
-
-announce:
-	@ echo ======================================
-	@ echo src/doc BUILDING DOC FILES
-	@ echo ======================================
-
-\getchunk{booklet}
-\getchunk{refcard}
-\getchunk{Endpapers}
-\getchunk{rosetta}
-
-document:
-	@echo sd09 documenting ${SRC}/doc
-
-clean:
-	@echo sd10 cleaning ${SRC}/doc
-\end{chunk}
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/doc/endpaper.pamphlet b/src/doc/endpaper.pamphlet
deleted file mode 100644
index 20cb1b0..0000000
--- a/src/doc/endpaper.pamphlet
+++ /dev/null
@@ -1,617 +0,0 @@
-\documentclass{book}
-%\usepackage{axiom}
-%
-% 2006-04-08.  The original (correct) usepackage line below
-%\usepackage[dvips,final,colorlinks=true,pdfstartview=FitH]{hyperref}
-% has been changed to the following one inorder to ease the
-% compilation of axiom on distributions (like Debian sarge) that have
-% an older version of hyperref TeX package (where the `final' option
-% is missing). It should be restored once the latest version (>=
-% 2003/11/30 v6.74m) of hyperref are more widespread.
-\usepackage[dvips,colorlinks=true,pdfstartview=FitH]{hyperref}
-\usepackage{pstricks}
-\usepackage{pst-node}
-\begin{document}
-\title{endpapers}
-\author{Timothy Daly}
-\maketitle
-\tableofcontents
-\vfill
-\eject
-\section{Basic Algebra Hierarchy Diagram}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 1 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-.
-{\hbox{\hskip 4.0cm}}
-% SETCAT SetCategory
-{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 2
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\hbox{\hskip 1.0cm}}
-{\vbox{\vskip 1.0cm}}
-% ABELSG AbelianSemiGroup
-{\psframebox{{\rnode{abelsg}{\href{catdef.spad.dvi}{abelsg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{abelsg}
-{\hbox{\hskip 0.1cm}}
-% SGROUP SemiGroup
-{\psframebox{{\rnode{sgroup}{\href{catdef.spad.dvi}{sgroup}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{sgroup}
-{\hbox{\hskip 0.2cm}}
-% ORDSET OrderedSet
-{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset}
-{\hbox{\hskip 4.0cm}}
-% FINITE Finite
-{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 3
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.0cm}}
-% ABELMON AbelianMonoid
-{\psframebox{{\rnode{abelmon}{\href{catdef.spad.dvi}{abelmon}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelsg}{abelmon}
-% MONOID Monoid
-{\psframebox{{\rnode{monoid}{\href{catdef.spad.dvi}{monoid}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{monoid}
-{\hbox{\hskip 1.5cm}}
-% ORDFIN OrderedFinite
-{\psframebox{{\rnode{ordfin}{\href{catdef.spad.dvi}{ordfin}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordfin}
-\ncLine[nodesep=3pt,linestyle=solid]{finite}{ordfin}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 4
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.0cm}}
-% CABMON CancellationAbelianMonoid
-{\psframebox{{\rnode{cabmon}{\href{catdef.spad.dvi}{cabmon}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{cabmon}
-{\hbox{\hskip 2.0cm}}
-% OASGP OrderedAbelianSemiGroup
-{\psframebox{{\rnode{oasgp}{\href{catdef.spad.dvi}{oasgp}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oasgp}
-\ncLine[nodesep=3pt,linestyle=solid]{ordset}{oasgp}
-{\hbox{\hskip 0.2cm}}
-% GROUP Group
-{\hbox{\hskip 0.1cm}}
-{\psframebox{{\rnode{group}{\href{catdef.spad.dvi}{group}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{monoid}{group}
-{\hbox{\hskip 0.55cm}}
-% ORDMON OrderedMonoid
-{\psframebox{{\rnode{ordmon}{\href{catdef.spad.dvi}{ordmon}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ordset}{ordmon}
-\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ordmon}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 5
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.6cm}}
-{\hbox{\hskip 3.6cm}}
-% OAMON OrderedAbelianMonoid
-{\psframebox{{\rnode{oamon}{\href{catdef.spad.dvi}{oamon}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{oasgp}{oamon}
-\ncLine[nodesep=3pt,linestyle=solid]{abelmon}{oamon}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 6
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.5cm}}
-% OCAMON OrderedCancellationAbelianMonoid
-{\psframebox{{\rnode{ocamon}{\href{catdef.spad.dvi}{ocamon}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{oamon}{ocamon}
-\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{ocamon}
-{\hbox{\hskip 2.2cm}}
-% ABELGRP AbelianGroup
-{\psframebox{{\rnode{abelgrp}{\href{catdef.spad.dvi}{abelgrp}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{cabmon}{abelgrp}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 7
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.875cm}}
-% OAMONS OrderedAbelianMonoidSup
-{\psframebox{{\rnode{oamons}{\href{catdef.spad.dvi}{oamons}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oamons}
-{\hbox{\hskip 0.9cm}}
-% RNG Rng
-{\psframebox{{\rnode{rng}{\href{catdef.spad.dvi}{rng}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rng}
-\ncLine[nodesep=3pt,linestyle=solid]{sgroup}{rng}
-{\hbox{\hskip 0.1cm}}
-% LMODULE LeftModule
-{\psframebox{{\rnode{lmodule}{\href{catdef.spad.dvi}{lmodule}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{lmodule}
-% RMODULE RightModule
-{\psframebox{{\rnode{rmodule}{\href{catdef.spad.dvi}{rmodule}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{rmodule}
-{\hbox{\hskip 1.7cm}}
-% OAGROUP OrderedAbelianGroup
-{\psframebox{{\rnode{oagroup}{\href{catdef.spad.dvi}{oagroup}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{abelgrp}{oagroup}
-\ncLine[nodesep=3pt,linestyle=solid]{ocamon}{oagroup}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 8
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.0cm}}
-{\hbox{\hskip 0.7cm}}
-% RING Ring
-{\psframebox{{\rnode{ring}{\href{catdef.spad.dvi}{ring}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{ring}
-\ncLine[nodesep=3pt,linestyle=solid]{rng}{ring}
-\ncLine[nodesep=3pt,linestyle=solid]{monoid}{ring}
-{\hbox{\hskip 4.2cm}}
-% BMODULE BiModule
-{\psframebox{{\rnode{bmodule}{\href{catdef.spad.dvi}{bmodule}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{lmodule}{bmodule}
-\ncLine[nodesep=3pt,linestyle=solid]{rmodule}{bmodule}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.2cm}}
-{\hbox{\hskip 4.5cm}}
-% LINEXP LinearlyExplicitRingOver
-{\psframebox{{\rnode{linexp}{\href{catdef.spad.dvi}{linexp}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{linexp}
-{\hbox{\hskip 1.3cm}}
-% MODULE Module
-{\psframebox{{\rnode{module}{\href{catdef.spad.dvi}{module}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{module}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 10
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\hbox{\hskip 5.0cm}}
-% FLINEXP FullyLinearlyExplicitRingOver
-{\psframebox{{\rnode{flinexp}{\href{catdef.spad.dvi}{flinexp}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{linexp}{flinexp}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 11
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\hbox{\hskip 7.7cm}}
-% VSPACE VectorSpace
-{\psframebox{{\rnode{vspace}{\href{catdef.spad.dvi}{vspace}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{module}{vspace}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 12
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.2cm}}
-{\hbox{\hskip 0.7cm}}
-% DIFRING DifferentialRing
-{\psframebox{{\rnode{difring}{\href{catdef.spad.dvi}{difring}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{difring}
-{\hbox{\hskip 0.4cm}}
-% CHARNZ CharacteristicNonZero
-{\psframebox{{\rnode{charnz}{\href{catdef.spad.dvi}{charnz}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{charnz}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 13
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% PDRING PartialDifferentialRing
-{\psframebox{{\rnode{pdring}{\href{catdef.spad.dvi}{pdring}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{pdring}
-{\hbox{\hskip 0.6cm}}
-% CHARZ CharacteristicZero
-{\psframebox{{\rnode{charz}{\href{catdef.spad.dvi}{charz}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{charz}
-{\hbox{\hskip 1.0cm}}
-% ALGEBRA Algebra
-{\psframebox{{\rnode{algebra}{\href{catdef.spad.dvi}{algebra}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{algebra}
-\ncLine[nodesep=3pt,linestyle=solid]{module}{algebra}
-\ncLine[nodesep=3pt,linestyle=solid]{charnz}{algebra}
-% ENTIRER EntireRing
-{\psframebox{{\rnode{entirer}{\href{catdef.spad.dvi}{entirer}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{entirer}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{entirer}
-% COMRING CommutativeRing
-{\psframebox{{\rnode{comring}{\href{catdef.spad.dvi}{comring}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bmodule}{comring}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{comring}
-% ORDRING OrderedRing
-{\psframebox{{\rnode{ordring}{\href{catdef.spad.dvi}{ordring}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ring}{ordring}
-\ncLine[nodesep=3pt,linestyle=solid]{oagroup}{ordring}
-\ncLine[nodesep=3pt,linestyle=solid]{ordmon}{ordring}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 14
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.8cm}}
-{\hbox{\hskip 2.1cm}}
-% DIFEXT DifferentialExtension
-{\psframebox{{\rnode{difext}{\href{catdef.spad.dvi}{difext}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{pdring}{difext}
-\ncLine[nodesep=3pt,linestyle=solid]{difring}{difext}
-\ncLine[nodesep=3pt,linestyle=solid]{charz}{difext}
-\ncLine[nodesep=3pt,linestyle=solid]{charnz}{difext}
-{\hbox{\hskip 2.0cm}}
-% DIVRING DivisionRing
-{\psframebox{{\rnode{divring}{\href{catdef.spad.dvi}{divring}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{algebra}{divring}
-\ncLine[nodesep=3pt,linestyle=solid]{entirer}{divring}
-% INTDOM IntegralDomain
-{\psframebox{{\rnode{intdom}{\href{catdef.spad.dvi}{intdom}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{algebra}{intdom}
-\ncLine[nodesep=3pt,linestyle=solid]{comring}{intdom}
-\ncLine[nodesep=3pt,linestyle=solid]{entirer}{intdom}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 15
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.2cm}}
-{\hbox{\hskip 7.3cm}}
-% GCDDOM GcdDomain
-{\psframebox{{\rnode{gcddom}{\href{catdef.spad.dvi}{gcddom}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{intdom}{gcddom}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 16
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.2cm}}
-{\hbox{\hskip 5.4cm}}
-% UFD UniqueFactorizationDomain
-{\psframebox{{\rnode{ufd}{\href{catdef.spad.dvi}{ufd}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{ufd}
-{\hbox{\hskip 2.5cm}}
-% PID PrincipalIdealDomain
-{\psframebox{{\rnode{pid}{\href{catdef.spad.dvi}{pid}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{gcddom}{pid}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 17
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.2cm}}
-{\hbox{\hskip 5.0cm}}
-% PFECAT PolynomialFactorizationExplicit
-{\psframebox{{\rnode{pfecat}{\href{catdef.spad.dvi}{pfecat}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ufd}{pfecat}
-{\hbox{\hskip 2.0cm}}
-% EUCDOM EuclideanDomain
-{\psframebox{{\rnode{eucdom}{\href{catdef.spad.dvi}{eucdom}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{pid}{eucdom}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 18
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.2cm}}
-{\hbox{\hskip 7.0cm}}
-% FIELD Field
-{\psframebox{{\rnode{field}{\href{catdef.spad.dvi}{field}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ufd}{field}
-\ncLine[nodesep=3pt,linestyle=solid]{eucdom}{field}
-\ncLine[nodesep=3pt,linestyle=solid]{divring}{field}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 19
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\hbox{\hskip 5.0cm}}
-% FPC FieldOfPrimeCharacteristic
-{\psframebox{{\rnode{fpc}{\href{ffcat.spad.dvi}{fpc}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{field}{fpc}
-\ncLine[nodesep=3pt,linestyle=solid]{charnz}{fpc}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 20
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\hbox{\hskip 9.7cm}}
-% FFIELDC FiniteFieldCategory
-{\psframebox{{\rnode{ffieldc}{\href{ffcat.spad.dvi}{ffieldc}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{fpc}{ffieldc}
-\ncLine[nodesep=3pt,linestyle=solid]{finite}{ffieldc}
-\vfill
-\eject
-\section{Basic Algebra Hierarchy}
-{\bf SETCAT SetCategory}\\
-{\bf ABELSG AbelianSemiGroup}\\
-{\bf SGROUP SemiGroup}\\
-{\bf ORDSET OrderedSet}\\
-{\bf FINITE Finite}\\
-{\bf ABELMON AbelianMonoid}\\
-{\bf MONOID Monoid}\\
-{\bf ORDFIN OrderedFinite}\\
-{\bf CABMON CancellationAbelianMonoid}\\
-{\bf OASGP OrderedAbelianSemiGroup}\\
-{\bf GROUP Group}\\
-{\bf ORDMON OrderedMonoid}\\
-{\bf OAMON OrderedAbelianMonoid}\\
-{\bf OCAMON OrderedCancellationAbelianMonoid}\\
-{\bf ABELGRP AbelianGroup}\\
-{\bf OAMONS OrderedAbelianMonoidSup}\\
-{\bf RNG Rng}\\
-{\bf LMODULE LeftModule}\\
-{\bf RMODULE RightModule}\\
-{\bf OAGROUP OrderedAbelianGroup}\\
-{\bf RING Ring}\\
-{\bf BMODULE BiModule}\\
-{\bf LINEXP LinearlyExplicitRingOver}\\
-{\bf MODULE Module}\\
-{\bf FLINEXP FullyLinearlyExplicitRingOver}\\
-{\bf VSPACE VectorSpace}\\
-{\bf DIFRING DifferentialRing}\\
-{\bf CHARNZ CharacteristicNonZero}\\
-{\bf PDRING PartialDifferentialRing}\\
-{\bf CHARZ CharacteristicZero}\\
-{\bf ALGEBRA Algebra}\\
-{\bf ENTIRER EntireRing}\\
-{\bf COMRING CommutativeRing}\\
-{\bf ORDRING OrderedRing}\\
-{\bf DIFEXT DifferentialExtension}\\
-{\bf DIVRING DivisionRing}\\
-{\bf INTDOM IntegralDomain}\\
-{\bf GCDDOM GcdDomain}\\
-{\bf UFD UniqueFactorizationDomain}\\
-{\bf PID PrincipalIdealDomain}\\
-{\bf PFECAT PolynomialFactorizationExplicit}\\
-{\bf EUCDOM EuclideanDomain}\\
-{\bf FIELD Field}\\
-{\bf FPC FieldOfPrimeCharacteristic}\\
-{\bf FFIELDC FiniteFieldCategory}
-\vfill
-\eject
-\section{Data Structure Hierarchy Diagram}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 1 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-.
-{\hbox{\hskip 2.8cm}}
-% SETCAT SetCategory
-{\psframebox{{\rnode{setcat}{\href{catdef.spad.dvi}{setcat}}}}}
-{\hbox{\hskip 1.0cm}}
-% AGG Aggregate
-{\psframebox{{\rnode{agg}{\href{catdef.spad.dvi}{agg}}}}}
-{\hbox{\hskip 0.5cm}}
-% ELTAGG EltableAggregate
-{\psframebox{{\rnode{eltagg}{\href{catdef.spad.dvi}{eltagg}}}}}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 2
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\hbox{\hskip 4.2cm}}
-% HOAGG HomogeneousAggregate
-{\psframebox{{\rnode{hoagg}{\href{catdef.spad.dvi}{hoagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{hoagg}
-\ncLine[nodesep=3pt,linestyle=solid]{agg}{hoagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 3
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.0cm}}
-% ARR2CAT TwoDimensionalArrayCategory
-{\psframebox{{\rnode{arr2cat}{\href{array2.spad.dvi}{arr2cat}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{arr2cat}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 4
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.3cm}}
-% MATCAT MatrixCategory
-{\psframebox{{\rnode{matcat}{\href{matcat.spad.dvi}{matcat}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{arr2cat}{matcat}
-% BGAGG BagAggregate
-{\psframebox{{\rnode{bgagg}{\href{aggcat.spad.dvi}{bgagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{bgagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 5
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.8cm}}
-% SKAGG StackAggregate
-{\psframebox{{\rnode{skagg}{\href{aggcat.spad.dvi}{skagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{skagg}
-{\hbox{\hskip 0.75cm}}
-% QUAGG QueueAggregate
-{\psframebox{{\rnode{quagg}{\href{aggcat.spad.dvi}{quagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{quagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 6
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.5cm}}
-% DQAGG DequeueAggregate
-{\psframebox{{\rnode{dqagg}{\href{aggcat.spad.dvi}{dqagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{skagg}{dqagg}
-\ncLine[nodesep=3pt,linestyle=solid]{quagg}{dqagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 7
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.5cm}}
-{\hbox{\hskip 3.4cm}}
-% CLAGG Collection
-{\psframebox{{\rnode{clagg}{\href{aggcat.spad.dvi}{clagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{clagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 8
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.2cm}}
-% DIOPS DictionaryOperations
-{\psframebox{{\rnode{diops}{\href{aggcat.spad.dvi}{diops}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{diops}
-\ncLine[nodesep=3pt,linestyle=solid]{clagg}{diops}
-% PRQAGG PriorityQueueAggregate
-{\psframebox{{\rnode{prqagg}{\href{aggcat.spad.dvi}{prqagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bgagg}{prqagg}
-% FINITE Finite
-{\psframebox{{\rnode{finite}{\href{catdef.spad.dvi}{finite}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{finite}
-{\hbox{\hskip 1.7cm}}
-% SETAGG SetAggregate
-{\psframebox{{\rnode{setagg}{\href{aggcat.spad.dvi}{setagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{clagg}{setagg}
-% RCAGG RecursiveAggregate
-{\psframebox{{\rnode{rcagg}{\href{aggcat.spad.dvi}{rcagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{rcagg}
-% IXAGG IndexedAggregate
-{\psframebox{{\rnode{ixagg}{\href{aggcat.spad.dvi}{ixagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{hoagg}{ixagg}
-\ncLine[nodesep=3pt,linestyle=solid]{eltagg}{ixagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.5cm}}
-{\hbox{\hskip 6.0cm}}
-% DLAGG DoublyLinkedAggregate
-{\psframebox{{\rnode{dlagg}{\href{aggcat.spad.dvi}{dlagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{dlagg}
-{\hbox{\hskip 1.3cm}}
-% DIRPCAT DirectProductCategory
-{\psframebox{{\rnode{dirpcat}{\href{vector.spad.dvi}{dirpcat}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{dirpcat}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 10
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 3.1cm}}
-{\hbox{\hskip 6.3cm}}
-% LNAGG LinearAggregate
-{\psframebox{{\rnode{lnagg}{\href{aggcat.spad.dvi}{lnagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{clagg}{lnagg}
-\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{lnagg}
-% URAGG UnaryRecursiveAggregate
-{\psframebox{{\rnode{uragg}{\href{aggcat.spad.dvi}{uragg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{uragg}
-% BRAGG BinaryRecursiveAggregate
-{\psframebox{{\rnode{bragg}{\href{aggcat.spad.dvi}{bragg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{rcagg}{bragg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 11
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 0.5cm}}
-{\hbox{\hskip 9.0cm}}
-% BTCAT BinaryTreeCategory
-{\psframebox{{\rnode{btcat}{\href{tree.spad.dvi}{btcat}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{bragg}{btcat}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 12
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.0cm}}
-% DIAGG Dictionary
-{\psframebox{{\rnode{diagg}{\href{aggcat.spad.dvi}{diagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{diops}{diagg}
-{\hbox{\hskip 3.1cm}}
-% MDAGG MultiDictionary
-{\psframebox{{\rnode{mdagg}{\href{aggcat.spad.dvi}{mdagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{diops}{mdagg}
-% ORDSET OrderedSet
-{\psframebox{{\rnode{ordset}{\href{catdef.spad.dvi}{ordset}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{setcat}{ordset}
-% ELAGG ExtensibleLinearAggregate
-{\psframebox{{\rnode{elagg}{\href{aggcat.spad.dvi}{elagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{elagg}
-% STAGG StreamAggregate
-{\psframebox{{\rnode{stagg}{\href{aggcat.spad.dvi}{stagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{stagg}
-\ncLine[nodesep=3pt,linestyle=solid]{uragg}{stagg}
-% FLAGG FiniteLinearAggregate
-{\psframebox{{\rnode{flagg}{\href{aggcat.spad.dvi}{flagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{lnagg}{flagg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 13
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.5cm}}
-% KDAGG KeyedDictionary
-{\psframebox{{\rnode{kdagg}{\href{aggcat.spad.dvi}{kdagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{diagg}{kdagg}
-{\hbox{\hskip 1.0cm}}
-% FSAGG FiniteSetAggregate
-{\psframebox{{\rnode{fsagg}{\href{aggcat.spad.dvi}{fsagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{diagg}{fsagg}
-\ncLine[nodesep=3pt,linestyle=solid]{finite}{fsagg}
-\ncLine[nodesep=3pt,linestyle=solid]{clagg}{fsagg}
-% MSETAGG MultisetAggregate
-{\psframebox{{\rnode{msetagg}{\href{aggcat.spad.dvi}{msetagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{mdagg}{msetagg}
-\ncLine[nodesep=3pt,linestyle=solid]{clagg}{msetagg}
-{\hbox{\hskip 1.4cm}}
-% LZSTAGG LazyStreamAggregate
-{\psframebox{{\rnode{lzstagg}{\href{stream.spad.dvi}{lzstagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lzstagg}
-% LSAGG ListAggregate
-{\psframebox{{\rnode{lsagg}{\href{aggcat.spad.dvi}{lsagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{elagg}{lsagg}
-\ncLine[nodesep=3pt,linestyle=solid]{stagg}{lsagg}
-\ncLine[nodesep=3pt,linestyle=solid]{flagg}{lsagg}
-{\hbox{\hskip 0.3cm}}
-% A1AGG OneDimensionalArrayAggregate
-{\psframebox{{\rnode{a1agg}{\href{aggcat.spad.dvi}{a1agg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{flagg}{a1agg}\\
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% level 14
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\vbox{\vskip 1.0cm}}
-% TBAGG TableAggregate
-{\psframebox{{\rnode{tbagg}{\href{aggcat.spad.dvi}{tbagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{kdagg}{tbagg}
-\ncLine[nodesep=3pt,linestyle=solid]{ixagg}{tbagg}
-% OMSAGG OrderedMultiSetAggregate
-{\psframebox{{\rnode{omsagg}{\href{aggcat.spad.dvi}{omsagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{prqagg}{omsagg}
-\ncLine[nodesep=3pt,linestyle=solid]{msetagg}{omsagg}
-{\hbox{\hskip 3.1cm}}
-% BTAGG BitAggregate
-{\psframebox{{\rnode{btagg}{\href{aggcat.spad.dvi}{btagg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{ordset}{btagg}
-\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{btagg}
-{\hbox{\hskip 1.0cm}}
-% SRAGG StringAggregate
-{\psframebox{{\rnode{sragg}{\href{aggcat.spad.dvi}{sragg}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{sragg}
-% VECTCAT VectorCategory
-{\psframebox{{\rnode{vectcat}{\href{vector.spad.dvi}{vectcat}}}}}
-\ncLine[nodesep=3pt,linestyle=solid]{a1agg}{vectcat}
-\vfill
-\eject
-\section{Data Structure Hierarchy Diagram}
-{\bf SETCAT SetCategory}\\
-{\bf AGG Aggregate}\\
-{\bf ELTAGG EltableAggregate}\\
-{\bf HOAGG HomogeneousAggregate}\\
-{\bf ARR2CAT TwoDimensionalArrayCategory}\\
-{\bf MATCAT MatrixCategory}\\
-{\bf BGAGG BagAggregate}\\
-{\bf SKAGG StackAggregate}\\
-{\bf QUAGG QueueAggregate}\\
-{\bf DQAGG DequeueAggregate}\\
-{\bf CLAGG Collection}\\
-{\bf DIOPS DictionaryOperations}\\
-{\bf PRQAGG PriorityQueueAggregate}\\
-{\bf FINITE Finite}\\
-{\bf SETAGG SetAggregate}\\
-{\bf RCAGG RecursiveAggregate}\\
-{\bf IXAGG IndexedAggregate}\\
-{\bf DLAGG DoublyLinkedAggregate}\\
-{\bf DIRPCAT DirectProductCategory}\\
-{\bf LNAGG LinearAggregate}\\
-{\bf URAGG UnaryRecursiveAggregate}\\
-{\bf BRAGG BinaryRecursiveAggregate}\\
-{\bf BTCAT BinaryTreeCategory}\\
-{\bf DIAGG Dictionary}\\
-{\bf MDAGG MultiDictionary}\\
-{\bf ORDSET OrderedSet}\\
-{\bf ELAGG ExtensibleLinearAggregate}\\
-{\bf STAGG StreamAggregate}\\
-{\bf FLAGG FiniteLinearAggregate}\\
-{\bf KDAGG KeyedDictionary}\\
-{\bf FSAGG FiniteSetAggregate}\\
-{\bf MSETAGG MultisetAggregate}\\
-{\bf LZSTAGG LazyStreamAggregate}\\
-{\bf LSAGG ListAggregate}\\
-{\bf A1AGG OneDimensionalArrayAggregate}\\
-{\bf TBAGG TableAggregate}\\
-{\bf OMSAGG OrderedMultiSetAggregate}\\
-{\bf BTAGG BitAggregate}\\
-{\bf SRAGG StringAggregate}\\
-{\bf VECTCAT VectorCategory}
-\vfill
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} Jenks, Richard D., Sutor, Robert S.,
-{\sl AXIOM The Scientific Computation System},
-Springer-Verlag, NY 1992, 
-ISBN 0-387-97855-0
-\bibitem{2} The Axiom Team,
-{\sl AXIOM The 30 Year Horizon},
-Tim Daly (Ed), 2004,
-{\bf http://savannah.nongnu.org/projects/axiom}
-\bibitem{3} The Axiom Team,
-{\sl AXIOM Volume 1 Tutorial},
-Tim Daly (Ed), 2004,
-{\bf http://savannah.nongnu.org/projects/axiom}
-\bibitem{4} The Axiom Team,
-{\sl AXIOM Volume 2 Programming},
-Tim Daly (Ed), 2004,
-{\bf http://savannah.nongnu.org/projects/axiom}
-\bibitem{5} The Axiom Team,
-{\sl AXIOM Volume 3 Reference},
-Tim Daly (Ed), 2004,
-{\bf http://savannah.nongnu.org/projects/axiom}
-\bibitem{6} The Axiom Team,
-{\sl AXIOM Volume 4 Developers},
-Tim Daly (Ed), 2004,
-{\bf http://savannah.nongnu.org/projects/axiom}
-\end{thebibliography}
-\end{document}
diff --git a/src/doc/refcard.pamphlet b/src/doc/refcard.pamphlet
deleted file mode 100644
index ef6afbe..0000000
--- a/src/doc/refcard.pamphlet
+++ /dev/null
@@ -1,514 +0,0 @@
-\documentclass{article}
-\usepackage[landscape]{geometry}
-\usepackage{multicol}
-\usepackage{amsmath}
-\usepackage{amsfonts}
-\advance\topmargin-.8in
-\advance\textheight2in
-\advance\textwidth3in
-\advance\oddsidemargin-1.5in
-\advance\evensidemargin-1.5in
-\parindent0pt
-\parskip2pt
-\newcommand{\hr}{\centerline{\rule{3.5in}{1pt}}}
-\begin{document}
-\begin{multicols*}{3}
-\begin{center}
-\textbf{Axiom Quick Reference (January 2008)}\\
-\end{center}
-
-\textbf{Command Line}
-
-)cd $\langle$pathname$\rangle$
-
-)clear all -- clear workspace
-
-)display op $\langle$function$\rangle$ -- function arguments
-
-)set message autoload off -- quietly load algebra
-
-)set message bottom on -- show selection process
-
-)set stream calculate 20 -- number of terms to calculate
-
-)show $\langle$domain$\rangle$ -- list all functions
-
-)spool $\langle${\sl filename}$\rangle$ -- start save session
-
-)spool -- close spool file
-
-)trace $\langle$domain$\rangle$ )math -- trace execution
-
-)quit -- exit Axiom
-
-)read $\langle$filename$\rangle$[.input] -- evaluate a file
-
-)sys $\langle$command line$\rangle$ -- execute command
-
-\_ continues input lines or escapes chars \verb|a_ b| = ``a b''
-
-\% is last value
-
-\%\%(n) is $n$th value
-
--- and ++ start comment lines
-
-%*********************************************
-\hr\textbf{Programming}
-
-assignment: var := value\\
-\hbox{\hskip 2cm}x:=3
-
-conditional: if $\langle$pred$\rangle$ then $\langle$truecase$\rangle$
-else $\langle$falsecase$\rangle$\\
-\hbox{\hskip 2cm}\verb|if (2 > 4) then 4 else 5|
-
-loop: for $\langle$pred$\rangle$ repeat $\langle$block$\rangle$\\
-\hbox{\hskip 2cm}\verb|for i in 1..5 repeat print i|
-\hbox{\hskip 2cm}\verb|while i < 3 repeat (print i ; i:=i+1)|
-
-function: $f(x)=x^2$ \\
-\hbox{\hskip 2cm}\verb|f(x)==x^2|
-
-anon. function: \verb|g:=x +-> x+1| \quad g(3) $\rightarrow$ 4
-
-Indentation is significant:\\
-\hbox{\hskip 2cm}\verb|f(x)==(x > 3 => x ; 0)|\\
-\hbox{\hskip 2cm}\verb|f(x)==|\\
-\hbox{\hskip 2.4cm}\verb|x > 3 => x|\\
-\hbox{\hskip 2.4cm}\verb|0|
-
-%*********************************************
-\hr\textbf{Basic constants and functions}
-
-$\pi=$ \verb|%pi| \quad $e=$ \verb|%e| \quad $i=$ \verb|%i| 
-\quad $\infty=$ \verb|%infinity|
-
-$+\infty$=\verb|%plusInfinity|\quad $-\infty$=\verb|%minusInfinity|
-
-\verb|numeric(%pi)| $=3.1415926535\ 897932385$
-
-%Binary operations: \verb|+  -  *  /  ^|
-
-Functions: \verb|sin cos tan sec csc cot sinh cosh tanh| \verb|sech csch coth log ln exp|
-
-$ab=$ \verb|a*b| \quad $\frac a b=$ \verb|a/b| 
-\quad 
-$a^b=$ \verb|a^b| \quad $\sqrt{x}=$ \verb|sqrt(x)|
-
-$\sqrt[n]{x}=$\verb|x^(1/n)|
-$|x|=$\verb|abs(x)|
-$\log_b(x)=$\verb|log(x)/log(b)|
-
-%*********************************************
-\hr\textbf{Operations on expressions}
-
-\verb|factor(...)|\qquad \verb|expand(...)|\qquad \verb|simplify(...)|
-
-Symbolic equations: \verb|f(x)=g(x)|
-
-Solve $f(x)=g(x)$: \verb| solve(f(x)=g(x),x)|
-
-\verb|solve([x^2*y-1,x*y^2-2],.01)|\\
-\hbox{\hskip 2.0cm} $\rightarrow$ $[[y=1.5859375,x=0.79296875]]$
-
-\verb|complexSolve([x^2*y-1,x*y^2-2],1/1000)|
-
-\verb|radicalSolve([x^2/a+a+y^3-1,a*y+a+1],[x,y])|
-
-$\displaystyle\sum_{i=k}^n f(i)=$ \verb|reduce(+,[f(i) for i in k..n])|
-
-$\displaystyle\prod_{i=k}^n f(i)=$ \verb|reduce(*,[f(i) for i in k..n])|
-
-%*********************************************
-\hr\textbf{Pattern Matching}
-
-logrule:=rule log(x)+log(y) == log(x*y) $\rightarrow$\\
-\hbox{\hskip 2.1cm}\verb|log(y)+log(x)+%B==log(x y)+%B|
-
-f:=log sin x + log x $\rightarrow$ log(sin(x))+log(x)
-
-logrule f $\rightarrow$ log(x sin(x))
-
-%*********************************************
-\hr\textbf{Calculus}
-
-$\displaystyle\lim_{x\to a} f(x)=$ \verb|limit(f(x), x=a)|
-
-$\displaystyle\lim_{x\to a^-} f(x)=$ \verb|limit(f(x), x=a, "left")|
-
-$\displaystyle\lim_{x\to a^+} f(x)=$ \verb|limit(f(x), x=a, "right")|
-
-$\displaystyle\lim_{x\to \infty} f(x)=$ \verb|limit(f(x), x=%plusInfinity)|
-
-\verb|limit(sin(x)/x,x=%plusInfinity)| $\rightarrow$ 0
-
-\verb|complexLimit(sin(x)/x,x=%infinity)| $\rightarrow$ "failed"
-
-$\frac{d}{dx}(f(x))=$ \verb|D(f(x),x)|
-
-$\frac{\partial}{\partial x}(f(x,y))=$ \verb|D(f(x,y),x)|
-
-$\int f(x)dx=$ \verb|integrate(f(x),x)|
-
-$\int_a^b f(x)dx=$ \verb|integrate(f(x),x=a..b)|
-
-%*********************************************
-\hr\textbf{Series}
-
-x:=series 'x
-
-y:=sin(x) $\rightarrow$ 
-$x-\frac{1}{6}x^3+\frac{1}{120}x^5-\frac{1}{5040}x^7+O(x^9)$
-
-coefficient(y,3) $\rightarrow$ $-\frac{1}{6}$
-
-taylor(f(x),x=a)
-
-laurent(x/log(x),x=1)
-
-\verb|puiseux(sqrt(sec(x)),x=3*%pi/2)|
-
-%*********************************************
-\hr\textbf{2D graphics}
-
-\verb|draw(cos(5*t/8),t=0..16*%pi,coordinates==polar)|
-
-\verb|f(t:SF):SF == sin(3*t/5)|
-
-\verb|g(t:SF):SF == sin(t)|
-
-\verb|draw(curve(f,g),0..%pi)|
-
-\verb|draw(x^2+y^3-1=0,x,y,range==[-1..1,-1..1])|
-
-v1:=draw(Gamma(i),i=-4.2..4,adaptive==true)
-
-v2:=draw(1/Gamma(i),i=-4.2..4,adaptive==true)
-
-putGraph(v2,getGraph(v1,1),2)
-
-makeViewport2D(v2)
-
-options: adaptive clip toScale curveColor pointColor\\
-unit range coordinates
-
-%*********************************************
-\hr\textbf{3D graphics}
-
-m(u:SF,v:SF):SF == 1
-
-\verb|draw(m,0..2*%pi,0..%pi,coordinates==spherical)|
-
-options: title style colorFunction coordinates tubeRadius
-tubePoints var1Steps var2Steps space
-
-%*********************************************
-\hr\textbf{Discrete math}
-
-$\lfloor x\rfloor=$ \verb|floor(x)| 
-\quad 
-$\lceil x\rceil=$ \verb|ceiling(x)|
-
-Remainder of $n$ divided by $k=$ \verb|rem(n,k) |, $k|n$ iff \verb| n%k==0|
-
-$n!=$ \verb|factorial(n)| \qquad
-${x\choose m}=$ \verb|binomial(x,m)|
-
-$\phi(n)=$ \texttt{eulerPhi($n$)}\quad Tuples: \ \verb|(1,'Hello,x)| 
-
-%*********************************************
-\hr\textbf{Type Conversions}
-
-\verb|r:=(2/3)*x^2-y+4/5| $\rightarrow$ $-y+\frac{2}{3}x^2+\frac{4}{5}$\\
-\hbox{\hskip 2.0cm} Type: Polynomial Fraction Integer
-
-r::FRAC POLY INT $\rightarrow$ $\frac{-15y+10x^2+12}{15}$\\
-\hbox{\hskip 2.0cm} Type: Fraction Polynomial Integer
-
-\verb|s:=(3+4*%i)/(7+3*%i)| $\rightarrow$ $\frac{33}{58}+\frac{19}{58}\%i$
-
-s::FRAC COMPLEX INT $\rightarrow$ $\frac{3+4\%i}{7+3\%i}$
-
-%*********************************************
-\hr\textbf{Equation}
-
-eq1:=3*x+4*y=5 $\rightarrow$ $4y+3x=5$
-
-eq2:=2*x+2*y=3 $\rightarrow$ $2y+2x=3$
-
-lhs eq1 $\rightarrow$ $4y+3x$
-
-rhs eq1 $\rightarrow$ 5
-
-eq1+eq2 $\rightarrow$ $6y+5x=8$
-
-%*********************************************
-\hr\textbf{Factored}
-
-g:=factor(4312) $\rightarrow$ $2^3 7^2 11$
-
-unit g $\rightarrow$ 1
-
-numberOfFactors g $\rightarrow$ 3
-
-nthFactor(g,2) $\rightarrow$ 7
-
-nthExponent(g,2) $\rightarrow$ 2
-
-nthFlag(g,2) $\rightarrow$ "prime"
-
-map(factor,55739/2520) $\rightarrow$ $\frac{139\ 401}{2^3\ 3^2\ 5\ 7}$
-
-%*********************************************
-\hr\textbf{List}
-
-a:=[1,2,3,4] $\rightarrow$ $[1,2,3,4]$
-
-b:=[3,4,5,6] $\rightarrow$ $[3,4,5,6]$
-
-append(a,b) $\rightarrow$ $[1,2,3,4,3,4,5,6]$
-
-cons(10,a) $\rightarrow$ $[10,1,2,3,4]$
-
-empty? a $\rightarrow$ false
-
-a.2 $\rightarrow$ 2
-
-a.2 := 99 $\rightarrow$ $[1,99,3,4]$
-
-reverse b $\rightarrow$ $[6,5,4,3]$
-
-%*********************************************
-\hr\textbf{MakeFunction}
-
-\verb|expr:=(x+a)^3| $\rightarrow$ $x^3+ 3ax^2 + 3a^2x + a^3$
-
-function(expr,f,x) $\rightarrow$ f
-
-f(2) $\rightarrow$ $a^3 + 6a^2 + 12a + 8$
-
-function(expr,g,a) $\rightarrow$ g
-
-g(2) $\rightarrow$ $x^3 + 6x^2 + 12x + 8$
-
-%*********************************************
-\hr\textbf{Matrix}
-
-A:=matrix([[1,2],[3,4]]) $\rightarrow$
-$
-\left[
-\begin{array}{cc}
-1 & 2\\
-3 & 4\\
-\end{array}
-\right]
-$
-
-determinant A $\rightarrow$ -2
-
-v:=vector([1,2]) $\rightarrow$ $[1,2]$
-
-A*v $\rightarrow$ $[5,11]$
-
-\verb|A^-1| $\rightarrow$
-$
-\left[
-\begin{array}{cc}
-2 & 1\\
-\frac{3}{2} & \frac{1}{2}\\
-\end{array}
-\right]
-$
-
-transpose(A) $\rightarrow$ 
-$
-\left[
-\begin{array}{cc}
-1 & 3\\
-2 & 4\\
-\end{array}
-\right]
-$
-
-nrows A $\rightarrow$ 2
-
-ncols A $\rightarrow$ 2
-
-nullity A $\rightarrow$ 0
-
-rank A $\rightarrow$ 2
-
-trace A $\rightarrow$ 5
-
-%*********************************************
-\hr\textbf{Polynomial}
-
-x+1 yields Type {\bf Polynomial Integer}
-
-z-2.3 yields Type {\bf Polynomial Float}
-
-\verb|y^2-z+3/4| yields Type {\bf Polynomial Fraction Integer}
-
-\verb|p:=(y-1)^2*x*z| $\rightarrow$ $(xy^2-2xy+x)z$
-
-\verb|q:=(y-1)*x*(z+5)| $\rightarrow$ $(xy - x)z + 5xy - 5x$
-
-gcd(p,q) $\rightarrow$ $x y - x$
-
-mainVariable p $\rightarrow$ $z$
-
-variables p $\rightarrow$ $[z,y,x]$
-
-degree(p,y) $\rightarrow$ 2
-
-totaldegree p $\rightarrow$ 4
-
-eval(p,x,w) $\rightarrow$ $(wy^2  - 2wy + w)z$
-
-D(p,x) $\rightarrow$  $(y^2- 2y + 1)z$
-
-integrate(p,x) $\rightarrow$ $(\frac{1}{2}x^2y^2-x^2y+\frac{1}{2}x^2)z$
-
-%*********************************************
-\hr\textbf{PrimeField}
-
-x:PrimeField(7):=5 $\rightarrow$ 5
-
-\verb|x^3| $\rightarrow$ 6
-
-1/x $\rightarrow$ 3
-
-%*********************************************
-\hr\textbf{Set}
-
-\verb|s:=brace([1,2,3,4,5])| $\rightarrow$ $\{1,2,3,4,5\}$
-
-\verb;t:=brace([2,3,5,7]); $\rightarrow$ $\{2,3,5,7\}$
-
-intersect(s,t) $\rightarrow$ $\{2,3,5\}$
-
-union(s,t) $\rightarrow$ $\{1,2,3,4,5,7\}$
-
-difference(s,t) $\rightarrow$ $\{1,4\}$
-
-insert!(7,s) $\rightarrow$ $\{1,2,3,4,5,7\}$
-
-remove!(7,s) $\rightarrow$ $\{1,2,3,4,5\}$
-
-$\{1,2,1,a\}=$ \verb|brace([1,2,1,'a])| \ ($=\{1,2,a\}$)
-
-$\{f(x):x\in X,x>0\}\approx$\verb?brace([f(x) for x in X | x>0])?
-
-%*********************************************
-\hr\textbf{Special Functions}
-
-[fibonacci(k) for k in 0..] $\rightarrow$ [0,1,1,2,3,5,...]
-
-[legendre(i,11) for i in 0..5] $\rightarrow$ [0,1,- 1,1,1,1]
-
-[jacobi(i,15) for i in 0..5] $\rightarrow$ [0,1,1,0,1,0]
-
-[eulerPhi i for i in 1..] $\rightarrow$ [1,1,2,2,4,2,...]
-
-[moebiusMu i for i in 1..] $\rightarrow$ [1,- 1,- 1,0,- 1,1,...]
-
-E1(0.01) $\rightarrow$ 4.0379295765381134
-
-Gamma(0.01) $\rightarrow$ 99.432585119150588
-
-%*********************************************
-\hr\textbf{Stream}
-
-)set streams calculate 6
-
-\verb|ints := [i for i in 1..]| $\rightarrow$ \verb|[1,2,3,4,5,6,...]|
-
-ints.20 $\rightarrow$ 20
-
-\verb;[i for i in ints | odd? i]; $\rightarrow$ \verb|[1,3,5,7,9,11,...]|
-
-%*********************************************
-\hr\textbf{String}
-
-creation: \ s:= \verb|"Hello"| 
-
-concatenate \verb|"He" "llo"| $\rightarrow$ \verb|"Hello"| 
-
-\texttt{s(1)='H' \quad s.1='H' \quad s(2..3)='el' \quad s(4..)='lo'}
-
-split("hi there",char " ") $\rightarrow$ \verb|["hi","there"]|
-
-prefix?("He","Hello") $\rightarrow$ true
-
-substring?("ll","Hello",3) $\rightarrow$ true
-
-%*********************************************
-\hr\textbf{TwoDimensionalArray}
-
-creation: \verb|arr:ARRAY2 INT:=new(2,3,0)| $\rightarrow$ 
-$
-\left[
-\begin{array}{ccc}
-0 & 0 & 0\\
-0 & 0 & 0\\
-\end{array}
-\right]
-$
-
-nrows arr $\rightarrow$ 2
-
-ncols arr $\rightarrow$ 3
-
-setelt(arr,1,1,17) $\rightarrow$
-$
-\left[
-\begin{array}{ccc}
-17 & 0 & 0\\
-0 & 0 & 0\\
-\end{array}
-\right]
-$
-
-arr(1,1) $\rightarrow$ 17
-
-%*********************************************
-\hr\textbf{Univariate Polynomial}
-
-creation: \verb|p:UP(x,INT):=(3*x-1)^2*(2*x+8)|\\
-\hbox{\hskip 1.5cm}\verb|q:UP(x,INT):=(1-6*x+9*x^2)^2|
-
-leadingCoefficient p $\rightarrow$ 18
-
-degree p $\rightarrow$ 3
-
-reductum p $\rightarrow$ $60x^2-46x+8$
-
-gcd(p,q) $\rightarrow$ $9x^2-6x+1$
-
-lcm(p,q) $\rightarrow$ $162x^5+432x^4-756x^3+408x^2-94x+8$
-
-resultant(p,q) $\rightarrow$ 0
-
-p(2) $\rightarrow$ 300 (used as function)
-
-D(p) $\rightarrow$ $54x^2+120x-46$ (derivative)
-
-%*********************************************
-\hr\textbf{Vector}
-
-creation: \verb|v := vector([1,2,3,4,5])| $\rightarrow$ $[1,2,3,4,5]$
-
-length: \verb|#v| $\rightarrow$ 5
-
-access: v.2 $\rightarrow$ 2
-
-add: v+v $\rightarrow$ $[2,4,6,8,10]$
-
-multiply: 5*v $\rightarrow$ $[5,10,15,20,25]$
-
-assign: v.2 := 7 $\rightarrow$ $[1,7,3,4,5]$
-
-\end{multicols*}
-
-\end{document}
\ No newline at end of file
diff --git a/src/doc/rosetta.pamphlet b/src/doc/rosetta.pamphlet
deleted file mode 100644
index 9e14ccc..0000000
--- a/src/doc/rosetta.pamphlet
+++ /dev/null
@@ -1,1511 +0,0 @@
-\documentclass{article}
-\normalsize\baselineskip=12pt
-\parskip=0pt
-\parindent=10pt
-\tolerance=5000
-\pretolerance=5000
-\frenchspacing
-\hangindent=10pt
-\skip\footins=18pt
-\global\textwidth 31pc \global\textheight 47pc
-\headsep 12pt
-\oddsidemargin 0pt
-\evensidemargin 0pt
-%
-\renewcommand{\textfraction}{.1}
-\renewcommand{\floatpagefraction}{.75}
-%
-\catcode`@=11
-\def\ps@plain{\let\@mkboth\@gobbletwo%
-     \let\@oddhead\@empty\def\@oddfoot{\sysdetails}
-     \let\@evenhead\@empty\let\@evenfoot\@oddfoot}
-\def\ps@empty{\let\@mkboth\@gobbletwo%
-     \let\@oddhead\@empty\def\@oddfoot{\sysdetails}
-     \let\@evenhead\@empty\let\@evenfoot\@oddfoot}
-\catcode`@=12
-%
-\def\sysdetails{\parbox{\textwidth}{%
-Based on material originally published in {\sl Computer Algebra Systems: A
-Practical Guide\/} edited by Michael J.\ Wester, John Wiley \& Sons,
-Chichester, United Kingdom, ISBN 0-471-98353-5, xvi+436 pages, 1999.}}
-%
-\pagestyle{plain}
-
-\begin{document}
-%
-% \nth{n} produces 1^{st}, 2^{nd}, 3^{rd}, 4^{th}, etc.
-%
-\def\nth#1{$#1^{\rm \ifcase#1 th\or st\or nd\or rd\else th\fi}$}
-%
-% Abbreviations
-%
-\newcommand{\Axiom}{{\sf Axiom}}
-\newcommand{\Derive}{{\sf Derive}}
-\newcommand{\DoCon}{{\sf DoCon}}
-\newcommand{\GAP}{{\sf GAP}}
-\newcommand{\Gmp}{{\sf Gmp}}
-\newcommand{\Macsyma}{{\sf Macsyma}}
-\newcommand{\Magnus}{{\sf Magnus}}
-\newcommand{\Maxima}{{\sf Maxima}}
-\newcommand{\Maple}{{\sf Maple}}
-\newcommand{\Mathematica}{{\sf Mathematica}}
-\newcommand{\MuPAD}{{\sf MuPAD}}
-\newcommand{\Octave}{{\sf Octave}}
-\newcommand{\Pari}{{\sf Pari}}
-\newcommand{\Reduce}{{\sf Reduce}}
-\newcommand{\Scilab}{{\sf Scilab}}
-\newcommand{\Sumit}{{\sf Sumit}}
-\newcommand{\Yacas}{{\sf Yacas}}
-
-\section{Introduction}
-
-The following is a collection of synonyms for various operations in
-the computer algebra systems \Axiom, \Derive, \GAP, \Gmp, \DoCon,
-\Macsyma, \Magnus, \Maxima, \Maple, \Mathematica, \MuPAD, \Octave,
-\Pari, \Reduce, \Scilab, \Sumit\ and \Yacas.  This collection does not
-attempt to be comprehensive, but hopefully it will be useful in giving
-an indication of how to translate between the syntaxes used by the
-different systems in many common situations.  Note that a blank entry
-means either (a) that there may be an exact translation of a
-particular operation for the indicated system, but we don't know what
-it is or (b) there is no exact translation but it may still be
-possible to work around this lack with a related functionality.
-
-While commercial systems are not provided on this CD the intent of the
-Rosetta effort is to make it possible for experienced Computer Algebra
-users to experiment with other systems. Thus the commands for
-commercial systems are included to allow users of those systems to
-translate.
-
-Some of these systems are special purpose and do not support a lot of
-the functionality of the more general purpose systems. Where they do
-support an interpreter the commands are provided.
-
-Originally written by Michael Wester.
-Modified for Rosetta by Timothy Daly, Alexander Hulpke (GAP).
-
-\section{System availability}
-
-\begin{tabular}{l|lll}
-System & \rm{License} & \rm{Status (May 2002)} & \rm{Web Location} \\
-\hline
-\Axiom       & BSD         & available  & http://www.aldor.org \\
-\Axiom       & open source & pending    & http://home.earthlink.net/~jgg964/axiom.html \\
-\Derive      & commercial  & available  & http://www.mathware.com \\
-\DoCon       & open source & available  & http://www.haskell.org/docon \\
-\GAP         & GPL         & Rosetta    & http://www.gap-system.org/~gap \\
-\Gmp         & GPL         & Rosetta    & http://www.swox.com/gmp \\
-\Macsyma     & commercial  & dead       & unavailable \\
-\Magnus      & GPL         & Rosetta    & http://sourceforge.net/projects/magnus \\
-\Maxima      & GPL         & Rosetta    & http://www.ma.utexas.edu/maxima.html\\
-\Maple       & commercial  & available  & http://www.maplesoft.com \\
-\Mathematica & commercial  & available  & http://www.wolfram.com \\
-\MuPAD       & commercial  & available  & http://www.mupad.de \\
-\Octave      & GPL         & Rosetta    & http://www.octave.org \\
-\Pari        & GPL         & Rosetta    & http://www.parigp-home.de \\
-\Reduce      & commercial  & available  & http://www.zib.de/Symbolik/reduce \\
-\Scilab      & Scilab      & available  & http://www-rocq.inria.fr/scilab \\
-\Sumit       &             & available  & http://www-sop.inria.fr/cafe/soft-f.html \\
-\Yacas       & GPL         & available  & http://yacas.sourceforge.net \\
-\end{tabular} \\[10pt]
-\\
-\begin{tabular}{l|ll}
-System & \rm{Type} & \rm{Interpreted or Compiled}\\
-\hline
-\Axiom       & General Purpose          & both \\
-\Derive      & General Purpose          & \\
-\DoCon       & General Purpose          & Interpreted in Haskell \\
-\GAP         & Group Theory             & \\
-\Gmp         & arb. prec. arithmetic    & \\
-\Macsyma     & General Purpose          & \\
-\Magnus      & Infinite Group Theory    & \\
-\Maxima      & General Purpose          & \\
-\Maple       & General Purpose          & \\
-\Mathematica & General Purpose          & \\
-\MuPAD       & General Purpose          & \\
-\Octave      & Numerical Computing      & \\
-\Pari        & Number Theory            & \\
-\Reduce      & General Purpose          & \\
-\Scilab      & General Purpose          & \\
-\Sumit       & Functional Equations     & \\
-\Yacas       & General Purpose          & \\
-\end{tabular} \\[10pt]
-
-\section{Programming and Miscellaneous}
-
-\begingroup
-\newcommand{\OR}{{\em or }}
-\newcommand{\fnm}{\footnotemark}
-\newcommand{\h}[1]{{\rm #1}}
-\newcommand{\m}[2]{\multicolumn{#1}{l}{#2}}
-\newcommand{\q}{\quad}
-\newcommand{\st}{\small\tt}
-\parindent=0pt
-\hfuzz=1pt
-\begin{tt}
-
-\begin{tabular}{l|ll}
-& \m{2}{\rm Unix/Microsoft user initialization file} \\
-\hline
-\Axiom       & \~{}/axiom.input          & \\
-\GAP         & \~{}/.gaprc               & GAP.RC \\
-\Gmp         &                           & \\
-\DoCon       &                           & \\
-\Derive      &                           & derive.ini   \\
-\Macsyma     & \~{}/macsyma-init.macsyma & mac-init.mac \\
-\Magnus      &                           & \\
-\Maxima      & \~{}/macsyma-init.macsyma & mac-init.mac \\
-\Maple       & \~{}/.mapleinit           & maplev5.ini  \\
-\Mathematica & \~{}/init.m               & init.m       \\
-\MuPAD       & \~{}/.mupadinit           &
-	$\backslash$mupad$\backslash$bin$\backslash$userinit.mu \\
-\Octave      &                           & \\
-\Pari        &                           & \\
-\Reduce      & \~{}/.reducerc            & reduce.rc    \\
-\Scilab      &                           & \\
-\Sumit       &                           & \\
-\Yacas       &                           & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Describe {\em keyword}} & \h{Find keywords containing {\em pattern}} \\
-\hline
-\Axiom       &                       & )what operations pattern \\
-\Derive      &                       & \\
-\DoCon       &                       & \\
-\GAP         & ?keyword              & ??keyword\\
-\Gmp         &                       & \\
-\Macsyma     & describe("keyword")\$ & apropos("pattern");      \\
-\Magnus      &                       & \\
-\Maxima      & describe("keyword")\$ & apropos("pattern");      \\
-\Maple       & ?keyword              & ?pattern\,\fnm           \\
-\Mathematica & ?keyword              & ?*pattern*               \\
-\MuPAD       & ?keyword              & ?*pattern*               \\
-\Octave      & help -i keyword       & \\
-\Pari        &                       & \\
-\Reduce      &                       & \\
-\Scilab      &                       & \\
-\Sumit       &                       & \\
-\Yacas       &                       & \\
-\end{tabular} \\[10pt]
-
-\footnotetext{Only if the pattern is not a keyword and then the matches are
-simplistic.}
-
-\begin{tabular}{l|l@{ }llll}
-& & & \h{Prev.} & \h{Case} & \h{Variables} \\
-& \h{Comment} & \h{Line continuation} & \h{expr.} & \h{sensitive} & \h{assumed}
-	\\
-\hline
-\Axiom       & -- comment    & input \_<CR>input   & \% & Yes & real    \\
-\Derive      & "comment"     & input \~{}<CR>input &    & No  & real    \\
-\DoCon       &               &                     &    &     & \\
-\GAP         & \# comment    & input$\backslash$<CR>input&last&Yes&no assumption\\
-\Gmp         &               &                     &    &     & \\
-\Macsyma     & /* comment */ & input<CR>input;     & \% & No  & real    \\
-\Magnus      &               &                     &    &     & \\
-\Maxima      & /* comment */ & input<CR>input;     & \% & No  & real    \\
-\Maple       & \# comment    & input<CR>input;     & \% & Yes & complex \\
-\Mathematica & (* comment *) & input<CR>input      & \% & Yes & complex \\
-\MuPAD       & \# comment \# & input<CR>input;     & \% & Yes & complex \\
-\Octave      & \#\#          &                     &    & Yes & \\
-\Pari        &               &                     &    &     & \\
-\Reduce      & \% comment    & input<CR>input;     & ws & No  & complex \\
-\Scilab      &               &                     &    &     & \\
-\Sumit       &               &                     &    &     & \\
-\Yacas       &               &                     &    &     & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{Load a file} & \h{Time a command} & \h{Quit} \\
-\hline
-\Axiom       & )read "file" )quiet    & )set messages time on  & )quit \\
-\Derive      & [Transfer Load Derive] &                        & [Quit] \\
-\DoCon       &                        &                        & \\
-\GAP         & Read("file");          & time; \h{(also see {\tt Runtime();})}&quit;\\
-\Gmp         &                        &                        & \\
-\Macsyma     & load("file")\$         & showtime: all\$        & quit(); \\
-\Magnus      &                        &                        & \\
-\Maxima      & load("file")\$         & showtime: all\$        & quit(); \\
-\Maple       & read("file"):          & readlib(showtime): on; & quit \\
-\Mathematica & @<< file                & Timing[command]        & Quit[] \\
-\MuPAD       & read("file"):          & time(command);         & quit \\
-\Octave      & load file              & tic(); cmd ; toc()     & quit \OR\ exit\\
-\Pari        &                        &                        & \\
-\Reduce      & in "file"\$            & on time;               & quit; \\
-\Scilab      &                        &                        & quit \\
-\Sumit       &                        &                        & \\
-\Yacas       &                        &                        & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{Display} & \h{Suppress} & \\
-& \h{output} & \h{output} & \h{Substitution: $f(x, y) \rightarrow f(z, w)$} \\
-\hline
-\Axiom       & input  & input;      & subst(f(x, y), [x = z, y = w])   \\
-\Derive      & input  & var:= input & [Manage Substitute]              \\
-\DoCon       &        &             & \\
-\GAP         & input; & input;;     & Value(f,[x,y],[z,w]);\fnm         \\
-\Gmp         &        &             & \\
-\Macsyma     & input; & input\$     & subst([x = z, y = w], f(x, y));  \\
-\Magnus      &        &             & \\
-\Maxima      & input; & input\$     & subst([x = z, y = w], f(x, y));  \\
-\Maple       & input; & input:      & subs(\{x = z, y = w\}, f(x, y)); \\
-\Mathematica & input  & input;      & f[x, y] /. \{x -> z, y -> w\}    \\
-\MuPAD       & input; & input:      & subs(f(x, y), [x = z, y = w]);   \\
-\Octave      & input  & input;      & \\
-\Pari        &        &             & \\
-\Reduce      & input; & input\$     & sub(\{x = z, y = w\}, f(x, y));  \\
-\Scilab      &        &             & \\
-\Sumit       &        &             & \\
-\Yacas       &        &             & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{Set} & \h{List} & \h{Matrix} \\
-\hline
-\Axiom       & set [1, 2] & [1, 2]    & matrix(@[[1, 2],[3, 4]])            \\
-\Derive      & \{1, 2\}   & [1, 2]    & @[[1,2], [3,4]]                     \\
-\DoCon       &            &           & \\
-\GAP         & Set([1,2]) & [1, 2]    & @[[1,2], [3,4]]\fnm                 \\
-\Gmp         &            &           & \\
-\Macsyma     & [1, 2]     & [1, 2]    & matrix([1, 2], [3, 4])             \\
-\Magnus      &            &           & \\
-\Maxima      & [1, 2]     & [1, 2]    & matrix([1, 2], [3, 4])             \\
-\Maple       & \{1, 2\}   & [1, 2]    & matrix(@[[1, 2], [3, 4]])           \\
-\Mathematica & \{1, 2\}   & \{1, 2\}  & \{\{1, 2\}, \{3, 4\}\}             \\
-\MuPAD       & \{1, 2\}   & [1, 2]    & export(Dom): \q export(linalg):    \\
-             &            &           & matrix:= ExpressionField(normal)): \\
-             &            &           & matrix(@[[1, 2], [3, 4]])           \\
-\Octave      &            &           & \\
-\Pari        &            &           & \\
-\Reduce      & \{1, 2\}   & \{1, 2\}  & mat((1, 2), (3, 4))                \\
-\Scilab      &            & list(1,2) & A=[1,2;3,4]\\
-\Sumit       &            &           & \\
-\Yacas       &            &           & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|llll}
-& \h{Equation} & \h{List element} & \h{Matrix element} & \h{Length of a list} \\
-\hline
-\Axiom       & x = 0  & l . 2      & m(2, 3)       & \#l          \\
-\Derive      & x = 0  & l SUB 2    & m SUB 2 SUB 3 & DIMENSION(l) \\
-\DoCon       &        &            &               & \\
-\GAP         & x=0    & l[2]       & m[2][3]       & Length(l)    \\
-\Gmp         &        &            &               & \\
-\Macsyma     & x = 0  & l[2]       & m[2, 3]       & length(l)    \\
-\Magnus      &        &            &               & \\
-\Maxima      & x = 0  & l[2]       & m[2, 3]       & length(l)    \\
-\Maple       & x = 0  & l[2]       & m[2, 3]       & nops(l)      \\
-\Mathematica & x == 0 & l@[[2]]     & m@[[2, 3]]     & Length[l]    \\
-\MuPAD       & x = 0  & l[2]       & m[2, 3]       & nops(l)      \\
-\Octave      &        &            &               & \\
-\Pari        &        &            &               & \\
-\Reduce      & x = 0  & part(l, 2) & m(2, 3)       & length(l)    \\
-\Scilab      &        & l(2)       &               & \\
-\Sumit       &        &            &               & \\
-\Yacas       &        &            &               & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \m{2}{\rm Prepend/append an element to a list} & \h{Append two lists} \\
-\hline
-\Axiom       & cons(e, l)     & concat(l, e)   & append(l1, l2)   \\
-\Derive      & APPEND([e], l) & APPEND(l, [e]) & APPEND(l1, l2)   \\
-\DoCon       &                &                & \\
-\GAP         & Concatenation([e],l) & Add(l,e) & Append(l1, l2)   \\
-\Gmp         &                &                & \\
-\Macsyma     & cons(e, l)     & endcons(e, l)  & append(l1, l2)   \\
-\Magnus      &                &                & \\
-\Maxima      & cons(e, l)     & endcons(e, l)  & append(l1, l2)   \\
-\Maple       & [e, op(l)]     & [op(l), e]     & [op(l1), op(l2)] \\
-\Mathematica & Prepend[l, e]  & Append[l, e]   & Join[l1, l2]     \\
-\MuPAD       & [e, op(l)]     & append(l, e)   & l1 . l2          \\
-\Octave      &                &                & \\
-\Pari        &                &                & \\
-\Reduce      & e . l          & append(l, {e}) & append(l1, l2)   \\
-\Scilab      &                &                & \\
-\Sumit       &                &                & \\
-\Yacas       &                &                & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Matrix column dimension} & \h{Convert a list into a column vector} \\
-\hline
-\Axiom       & ncols(m)                  & transpose(matrix([l]))         \\
-\Derive      & DIMENSION(m SUB 1)        & [l]\`{}                        \\
-\DoCon       &                           & \\
-\GAP         & Length(mat[1])            & \h{objects are identical}      \\
-\Gmp         &                           & \\
-\Macsyma     & mat\_\,ncols(m)           & transpose(matrix(l))           \\
-\Magnus      &                           & \\
-\Maxima      & mat\_\,ncols(m)           & transpose(matrix(l))           \\
-\Maple       & linalg[coldim](m)         & linalg[transpose](matrix([l])) \\
-\Mathematica & Dimensions[m]@[[2]]        & Transpose[\{l\}]               \\
-\MuPAD       & linalg::ncols(m)          & transpose(matrix([l]))\,\fnm   \\
-\Octave      &                           & \\
-\Pari        &                           & \\
-\Reduce      & load\_\,package(linalg)\$ & matrix v(length(l), 1)\$       \\
-             & column\_dim(m)            & for i:=1:length(l) do          \\
-             &                           & \q\q v(i, 1):= part(l, i)      \\
-\Scilab      &                           & \\
-\Sumit       &                           & \\
-\Yacas       &                           & \\
-\end{tabular} \\[10pt]
-
-\footnotetext{See the definition of {\tt matrix} above.}
-
-\begin{tabular}{l|l}
-& \h{Convert a column vector into a list} \\
-\hline
-\Axiom       & [v(i, 1) for i in 1..nrows(v)]              \\
-\Derive      & v\`{} SUB 1                                 \\
-\DoCon       & \\
-\GAP         & \h{objects are identical}                   \\
-\Gmp         & \\
-\Macsyma     & part(transpose(v), 1)                       \\
-\Magnus      & \\
-\Maxima      & part(transpose(v), 1)                       \\
-\Maple       & op(convert(linalg[transpose](v), listlist)) \\
-\Mathematica & Flatten[v]                                  \\
-\MuPAD       & [op(v)]                                     \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & load\_\,package(linalg)\$                   \\
-             & for i:=1:row\_\,dim(v) collect(v(i, 1))     \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lllllll}
-& \h{True} & \h{False} & \h{And} & \h{Or} & \h{Not} & \h{Equal} & \h{Not equal}
-	\\
-\hline
-\Axiom       & true & false & and  & or & not & =  & \~{}= \\
-\Derive      & TRUE & FALSE & AND  & OR & NOT & =  & /=    \\
-\DoCon       &      &       &      &    &     &    & \\
-\GAP         & true & false\fnm & and  & or & not & = & <>     \\
-\Gmp         &      &       &      &    &     &    & \\
-\Macsyma     & true & false & and  & or & not & =  & \#    \\
-\Magnus      &      &       &      &    &     &    & \\
-\Maxima      & true & false & and  & or & not & =  & \#    \\
-\Maple       & true & false & and  & or & not & =  & <>    \\
-\Mathematica & True & False & \&\& & || & !   & == & !=    \\
-\MuPAD       & true & false & and  & or & not & =  & <>    \\
-\Octave      &      &       &      &    &     &    & \\
-\Pari        &      &       &      &    &     &    & \\
-\Reduce      & t    & nil   & and  & or & not & =  & neq   \\
-\Scilab      & \%t  & \%f   &      &    &     &    & \\
-\Sumit       &      &       &      &    &     &    & \\
-\Yacas       &      &       &      &    &     &    & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{If+then+else statements} & \h{Strings (concatenated)} \\
-\hline
-\Axiom       & if \_ then \_ else if \_ then \_ else \_ & concat(["x", "y"])  \\
-\Derive      & IF(\_, \_, IF(\_, \_, \_))               & "xy"                \\
-\DoCon       &                                          & \\
-\GAP         & if \_ then \_ elif \_ then \_ else \_ fi & Concatenation("x","y")\\
-\Gmp         &                                          & \\
-\Macsyma     & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y")    \\
-\Magnus      &                                          & \\
-\Maxima      & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y")    \\
-\Maple       & if \_ then \_ elif \_ then \_ else \_ fi & "x" . "y"           \\
-\Mathematica & If[\_, \_, If[\_, \_, \_]]               & "x" <> "y"          \\
-\MuPAD       & if \_ then \_ elif \_ then \_ else \_    & "x" . "y"           \\
-             & \q\q end\_if                             & \\
-\Octave      &                                          & \\
-\Pari        &                                          & \\
-\Reduce      & if \_ then \_ else if \_ then \_ else \_ & "xy" \OR\ mkid(x, y)\\
-\Scilab      &                                          & \\
-\Sumit       &                                          & \\
-\Yacas       &                                          & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Simple loop and Block} & \h{Generate the list $[1, 2, \ldots, n]$} \\
-\hline
-\Axiom       & for i in 1..n repeat ( x; y )       & [f(i) for i in 1..n]     \\
-\Derive      & VECTOR([x, y], i, 1, n)             & VECTOR(f(i), i, 1, n)    \\
-\DoCon       &                                     & \\
-\GAP         & for i in [1..n] do \_ od;           & [1..n] {\rm or} [1,2..n]\\
-\Gmp         &                                     & \\
-\Macsyma     & for i:1 thru n do (x, y);           & makelist(f(i), i, 1, n); \\
-\Magnus      &                                     & \\
-\Maxima      & for i:1 thru n do (x, y);           & makelist(f(i), i, 1, n); \\
-\Maple       & for i from 1 to n do x; y od;       & [f(i) \$ i = 1..n];      \\
-\Mathematica & Do[x; y, \{i, 1, n\}]               & Table[f[i], \{i, 1, n\}] \\
-\MuPAD       & for i from 1 to n do x; y           & [f(i) \$ i = 1..n];      \\
-             & \q\q end\_for;                      & \\
-\Octave      &                                     & \\
-\Pari        &                                     & \\
-\Reduce      & for i:=1:n do @<<x; y>>;             & for i:=1:n collect f(i); \\
-\Scilab      &                                     & \\
-\Sumit       &                                     & \\
-\Yacas       &                                     & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Complex loop iterating on a list} \\
-\hline
-\Axiom       & for x in [2, 3, 5] while x**2 < 10 repeat output(x)         \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & for x in [2, 3, 5] do while x\^{}2<10 do Print(x);od;od; \\
-\Gmp         & \\
-\Macsyma     & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$          \\
-\Magnus      & \\
-\Maxima      & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$          \\
-\Maple       & for x in [2, 3, 5] while x\^{}2 < 10 do print(x) od:        \\
-\Mathematica & For[l = \{2, 3, 5\}, l != \{\} \&\& l@[[1]]\^{}2 < 10,       \\
-             & \q l = Rest[l], Print[l@[[1]]] ]                             \\
-\MuPAD       & for x in [2, 3, 5] do if x\^{}2 < 10 then print(x) end\_if  \\
-             & \q end\_for:                                                \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & for each x in \{2, 3, 5\} do if x\^{}2 < 10 then write(x)\$ \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{\small Assignment} & \h{Function definition} & \h{Clear vars and funs} \\
-\hline
-\Axiom       & y:= f(x)  & f(x, y) == x*y              &
-	{\small\tt )clear properties y f} \\
-\Derive      & y:= f(x)  & f(x, y):= x*y               & y:=  f:=           \\
-\DoCon       &           &                             & \\
-\GAP         & y:= f(x); & f:=function(x, y) return x*y; end; & \h{There are
-no symbolic variables}\\
-\Gmp         &           &                             & \\
-\Macsyma     & y: f(x);  & f(x, y):= x*y;              & remvalue(y)\$      \\
-             &           &                             & remfunction(f)\$   \\
-\Magnus      &           &                             & \\
-\Maxima      & y: f(x);  & f(x, y):= x*y;              & remvalue(y)\$      \\
-             &           &                             & remfunction(f)\$   \\
-\Maple       & y:= f(x); & f:= proc(x, y) x*y end;     & y:= 'y':  f:= 'f': \\
-\Mathematica & y = f[x]  & f[x\_, y\_\,]:= x*y         & Clear[y, f]        \\
-\MuPAD       & y:= f(x); & f:= proc(x, y)              & y:= NIL:  f:= NIL: \\
-             &           & \q\q begin x*y end\_\,proc; & \\
-\Octave      &           &                             & \\
-\Pari        &           &                             & \\
-\Reduce      & y:= f(x); & procedure f(x, y); x*y;     & clear y, f;        \\
-\Scilab      &           &                             & \\
-\Sumit       &           &                             & \\
-\Yacas       &           &                             & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Function definition with a local variable} \\
-\hline
-\Axiom       & f(x) == (local n; n:= 2; n*x)                           \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & f:=function(x) local n; n:=2;return n*x; end;           \\
-\Gmp         & \\
-\Macsyma     & f(x):= block([n], n: 2, n*x);                           \\
-\Magnus      & \\
-\Maxima      & f(x):= block([n], n: 2, n*x);                           \\
-\Maple       & f:= proc(x) local n; n:= 2; n*x end;                    \\
-\Mathematica & f[x\_\,]:= Module[\{n\}, n = 2; n*x]                    \\
-\MuPAD       & f:= proc(x) local n; begin n:= 2; n*x end\_\,proc;      \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & procedure f(x); begin scalar n; n:= 2; return(n*x) end; \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Return unevaluated symbol} & \h{Define a function from an expression} \\
-\hline
-\Axiom       & e:= x*y;\q 'e          & function(e, f, x, y)          \\
-\Derive      & e:= x*y\q 'e           & f(x, y):== e                  \\
-\DoCon       &                        & \\
-\GAP         & \h{No unevaluated symbols}\fnm&\\
-\Gmp         &                        & \\
-\Macsyma     & e: x*y\$\q 'e;         & define(f(x, y), e);           \\
-\Magnus      &                        & \\
-\Maxima      & e: x*y\$\q 'e;         & define(f(x, y), e);           \\
-\Maple       & e:= x*y:\q 'e';        & f:= unapply(e, x, y);         \\
-\Mathematica & e = x*y;\q HoldForm[e] & f[x\_, y\_\,] = e             \\
-\MuPAD       & e:= x*y:\q hold(e);    & f:= hold(func)(e, x, y);      \\
-\Octave      &                        & \\
-\Pari        &                        & \\
-\Reduce      & e:= x*y\$              & for all x, y let f(x, y):= e; \\
-\Scilab      &                        & \\
-\Sumit       &                        & \\
-\Yacas       &                        & \\
-\end{tabular} \\[10pt]
-\footnotetext{Variables can be assigned to generators of a suitable free
-object, for example {\tt x:=X(Rationals,"x");} or {\tt
-f:=FreeGroup(2);x:=f.1;}.}
-\addtocounter{footnote}{-1}%
-
-\begin{tabular}{l|ll}
-& \h{Fun.\ of an indefinite number of args} & \h{Apply ``+'' to sum a list} \\
-\hline
-\Axiom       &                                   & reduce(+, [1, 2])          \\
-\Derive      & LST l:= l                         & \\
-\DoCon       &                                   & \\
-\GAP         & lst:=function(args) \_ end;       & Sum([1,2])\\
-\Gmp         &                                   & \\
-\Macsyma     & lst([l]):= l;                     & apply("+", [1, 2])         \\
-\Magnus      &                                   & \\
-\Maxima      & lst([l]):= l;                     & apply("+", [1, 2])         \\
-\Maple       & lst:=proc() [args[1..nargs]] end; & convert([1, 2], \`{}+\`{}) \\
-\Mathematica & lst[l\_\,\_\,\_\,]:= \{l\}        & Apply[Plus, \{1, 2\}]      \\
-\MuPAD       & lst:= proc(l) begin [args()]      & \_\,plus(op([1, 2]))       \\
-             & \q\q\q end\_\,proc;               & \\
-\Octave      &                                   & \\
-\Pari        &                                   & \\
-\Reduce      &                                   & xapply(+, \{1, 2\})\,\fnm  \\
-\Scilab      &                                   & \\
-\Sumit       &                                   & \\
-\Yacas       &                                   & \\
-\end{tabular} \\[10pt]
-
-\footnotetext{\tt procedure xapply(f, lst); lisp(f . cdr(lst))\$}
-\addtocounter{footnote}{-1}%
-
-\begin{tabular}{l|ll}
-& \h{Apply a fun.\ to a} & \\
-& \h{list of its args} & \h{Map an anonymous function onto a list} \\
-\hline
-\Axiom       & reduce(f, l)       & map(x +-> x + y, [1, 2])                \\
-\Derive      &                    & x:= [1, 2]                              \\
-             &                    & VECTOR(x SUB i + y, i, 1, DIMENSION(x)) \\
-\DoCon       &                    & \\
-\GAP         & List(l,f)          & List([1,2],x->x+y) \\
-\Gmp         &                    & \\
-\Macsyma     & apply(f, l)        & map(lambda([x], x + y), [1, 2])         \\
-\Magnus      &                    & \\
-\Maxima      & apply(f, l)        & map(lambda([x], x + y), [1, 2])         \\
-\Maple       & f(op(l))           & map(x -> x + y, [1, 2])                 \\
-\Mathematica & Apply[f, l]        & Map[\# + y \&, \{1, 2\}]                \\
-\MuPAD       & f(op(l))           & map([1, 2], func(x + y, x))             \\
-\Octave      &                    & \\
-\Pari        &                    & \\
-\Reduce      & xapply(f, l)\,\fnm & for each x in \{1, 2\} collect x + y    \\
-\Scilab      &                    & \\
-\Sumit       &                    & \\
-\Yacas       &                    & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Pattern matching: $f(3 y) + f(z y) \rightarrow 3 f(y) + f(z y)$} \\
-\hline
-\Axiom       & f:= operator('f);                                  \\
-             & ( rule f((n | integer?(n)) * x) == n*f(x) )( \_    \\
-             & \q\q f(3*y) + f(z*y))                              \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & matchdeclare(n, integerp, x, true)\$               \\
-             & defrule(fnx, f(n*x), n*f(x))\$                     \\
-             & apply1(f(3*y) + f(z*y), fnx);                      \\
-\Magnus      & \\
-\Maxima      & matchdeclare(n, integerp, x, true)\$               \\
-             & defrule(fnx, f(n*x), n*f(x))\$                     \\
-             & apply1(f(3*y) + f(z*y), fnx);                      \\
-\Maple       & map(proc(q) local m;                               \\
-             & \q\q\q if match(q = f(n*y), y, 'm') and            \\
-             & \q\q\q\q\q type(rhs(op(m)), integer) then          \\
-             & \q\q\q\q subs(m, n * f(y)) else q fi               \\
-             & \q\q end,                                          \\
-             & \q\q f(3*y) + f(z*y));                             \\
-\Mathematica & f[3*y] + f[z*y] /. f[n\_Integer * x\_\,] -> n*f[x] \\
-\MuPAD       & d:= domain("match"): \q d::FREEVARIABLE:= TRUE:    \\
-             & n:= new(d, "n", func(testtype(m, DOM\_INT), m)):   \\
-             & x:= new(d, "x", TRUE):                             \\
-             & map(f(3*y) + f(z*y),                               \\
-             & \q\q proc(q) local m; begin m:= match(q, f(n*x));  \\
-             & \q\q\q if m = FAIL then q                          \\
-             & \q\q\q else subs(hold("n" * f("x")), m) end\_if    \\
-             & \q\q end\_\,proc);                                 \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & operator f;                                        \\
-             & f(3*y) + f(z*y)                                    \\
-             & \q\q where \{f(\~{}n * \~{}x) => n*f(x) when fixp(n)\}; \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Define a new infix operator and then use it} \\
-\hline
-\Axiom       & \\
-\Derive      & \\
-\DoCon       & \\
-\GAP     &\h{One can overload existing infix operators for ones own purposes}\\
-\Gmp         & \\
-\Macsyma     & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q
-	3 \~{} 4;               \\
-\Magnus      & \\
-\Maxima      & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q
-	3 \~{} 4;               \\
-\Maple       & \`{}\&\~{}\`{}:= (x, y) -> sqrt(x\^{}2 + y\^{}2): \q 3 \&\~{} 4;
-	\\
-\Mathematica & x\_ $\backslash$[Tilde] y\_:= Sqrt[x\^{}2 + y\^{}2]; \q
-	3 $\backslash$[Tilde] 4 \\
-\MuPAD       & tilde:= proc(x, y) begin sqrt(x\^{}2 + y\^{}2) end\_\,proc: \\
-             & \q 3 \&tilde 4;                                             \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & infix |\$ \q procedure |(x, y); sqrt(x\^{}2 + y\^{}2)\$ \q
-	3 | 4;                  \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{Main expression} & & \\
-& \h{operator} & \h{\nth{1} operand} & \h{List of expression operands} \\
-\hline
-\Axiom\fnm   &            & kernels(e) . 1 & kernels(e)              \\
-\Derive      &            &                & {\em various}\fnm       \\
-\DoCon       &            &                & \\
-\GAP         &\m{3}{\rm There are no formal unevaluated expressions}\\
-\Gmp         &            &                & \\
-\Macsyma     & part(e, 0) & part(e, 1)     & args(e)                 \\
-\Magnus      &            &                & \\
-\Maxima      & part(e, 0) & part(e, 1)     & args(e)                 \\
-\Maple       & op(0, e)   & op(1, e)       & [op(e)]                 \\
-\Mathematica & Head[e]    & e@[[1]]         & ReplacePart[e, List, 0] \\
-\MuPAD       & op(e, 0)   & op(e, 1)       & [op(e)]                 \\
-\Octave      &            &                & \\
-\Pari        &            &                & \\
-\Reduce      & part(e, 0) & part(e, 1)     & for i:=1:arglength(e)   \\
-             &            &                & \q\q collect part(e, i) \\
-\Scilab      &            &                & \\
-\Sumit       &            &                & \\
-\Yacas       &            &                & \\
-\end{tabular} \\[10pt]
-
-\addtocounter{footnote}{-1}%
-\footnotetext{The following commands work only on expressions that consist of a
-single level (e.g., $x + y + z$ but not $a/b + c/d$).}
-\addtocounter{footnote}{-1}%
-\footnotetext{{\tt TERMS}, {\tt FACTORS}, {\tt NUMERATOR}, {\tt LHS}, etc.}
-
-\begin{tabular}{l|l}
-& \h{Print text and results} \\
-\hline
-\Axiom       & output(concat(["sin(", string(0), ") = ",                 \\
-             & \q string(sin(0))]));                                     \\
-\Derive      & "sin(0)" = sin(0)                                         \\
-\DoCon       & \\
-\GAP         & Print("There is no sin, but factors(10)= ",Factors(10),
-"$\backslash$n")\\
-\Gmp         & \\
-\Macsyma     & print("sin(", 0, ") =", sin(0))\$                         \\
-\Magnus      & \\
-\Maxima      & print("sin(", 0, ") =", sin(0))\$                         \\
-\Maple       & printf("sin(\%a) = \%a$\backslash$n", 0, sin(0)):         \\
-\Mathematica & Print[StringForm["sin(\`{}\`{}) = \`{}\`{}", 0, Sin[0]]]; \\
-\MuPAD       & print(Unquoted, "sin(".0.")" = sin(0)):                   \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & write("sin(", 0, ") = ", sin(0))\$                        \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Generate FORTRAN} & \h{Generate \TeX/\LaTeX} \\
-\hline
-\Axiom       & outputAsFortran(e)                    & outputAsTex(e)      \\
-\Derive      & [Transfer Save Fortran]               & \\
-\DoCon       &                                       & \\
-\GAP         &&Print(LaTeX(e));\\
-\Gmp         &                                       & \\
-\Macsyma     & fortran(e)\$ \OR gentran(eval(e))\$   & tex(e);             \\
-\Magnus      &                                       & \\
-\Maxima      & fortran(e)\$ \OR gentran(eval(e))\$   & tex(e);             \\
-\Maple       & fortran([e]);                         & latex(e);           \\
-\Mathematica & FortranForm[e]                        & TexForm[e]          \\
-\MuPAD       & generate::fortran(e);                 & generate::TeX(e);   \\
-\Octave      &                                       & \\
-\Pari        &                                       & \\
-\Reduce      & on fort; \q e; \q off fort; \OR       & load\_\,package(tri)\$ \\
-             & load\_\,package(gentran)\$ gentran e; & on TeX; e; off TeX; \\
-\Scilab      &                                       & \\
-\Sumit       &                                       & \\
-\Yacas       &                                       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Import two space separated columns of integers from {\tt file}} \\
-\hline
-\Axiom       & \\
-\Derive      & [Transfer Load daTa] ({\rm from} file.dat)          \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\
-\Magnus      & \\
-\Maxima      & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\
-\Maple       & xy:= readdata("file", integer, 2):                  \\
-\Mathematica & xy = ReadList["file", Number, RecordLists -> True]  \\
-\MuPAD       & \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Export two space separated columns of integers to {\tt file}\fnm} \\
-\hline
-\Axiom       & )set output algebra "file" \q ({\rm creates} file.spout)       \\
-             & for i in 1..n repeat output( \_                                \\
-             & \q concat([string(xy(i, 1)), " ", string(xy(i, 2))]) )         \\
-             & )set output algebra console                                    \\
-\Derive      & xy  [Transfer Print Expressions File]\q({\rm creates} file.prt)\\
-\DoCon       & \\
-\GAP         & PrintTo("file");for i in [1..n] do\\
-             &\q AppendTo("file",xy[i][1]," ",xy[i][2],"$\backslash$n");od;\\
-\Gmp         & \\
-\Macsyma     & writefile("file")\$ \q for i:1 thru n do                       \\
-             & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$                \\
-\Magnus      & \\
-\Maxima      & writefile("file")\$ \q for i:1 thru n do                       \\
-             & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$                \\
-\Maple       & writedata("file", xy);                                         \\
-\Mathematica & outfile = OpenWrite["file"];                                   \\
-             & Do[WriteString[outfile,                                        \\
-             & \q xy@[[i, 1]], " ", xy@[[i, 2]], "$\backslash$n"], \{i, 1, n\}] \\
-             & Close[outfile];                                                \\
-\MuPAD       & fprint(Unquoted, Text, "file",                                 \\
-             & \q ("$\backslash$n", xy[i, 1], xy[i, 2]) \$ i = 1..n):         \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & out "file"; \q for i:=1:n do                                   \\
-             & \q write(xy(i, 1), " ", xy(i, 2)); \q shut "file";             \\
-\Scilab      & \\
-\Sumit       & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\footnotetext{Some editing of {\tt file} will be necessary for all systems but
-\Maple\ and \Mathematica.}
-
-\section{Mathematics and Graphics}
-
-{\rm Since {\GAP} aims at discrete mathematics, it does not provide much of
-the calculus functionality listed in the following section.}
-
-\begin{tabular}{l|llllll}
-& $e$ & $\pi$ & $i$ & $+\infty$ & $\sqrt{2}$ & $2^{1/3}$ \\
-\hline
-\Axiom       & \%e    & \%pi & \%i & \%plusInfinity & sqrt(2) & 2**(1/3)   \\
-\Derive      & \#e    & pi   & \#i & inf            & SQRT(2) & 2\^{}(1/3) \\
-\DoCon       &        &      &     &                &         & \\
-\GAP         &        &      & E(4) & infinity & ER(2)\fnm &\\
-\Gmp         &        &      &     &                &         & \\
-\Macsyma     & \%e    & \%pi & \%i & inf            & sqrt(2) & 2\^{}(1/3) \\
-\Magnus      &        &      &     &                &         & \\
-\Maxima      & \%e    & \%pi & \%i & inf            & sqrt(2) & 2\^{}(1/3) \\
-\Maple       & exp(1) & Pi   & I   & infinity       & sqrt(2) & 2\^{}(1/3) \\
-\Mathematica & E      & Pi   & I   & Infinity       & Sqrt[2] & 2\^{}(1/3) \\
-\MuPAD       & E      & PI   & I   & infinity       & sqrt(2) & 2\^{}(1/3) \\
-\Octave      &        &      &     &                &         & \\
-\Pari        &        &      &     &                &         & \\
-\Reduce      & e      & pi   & i   & infinity       & sqrt(2) & 2\^{}(1/3) \\
-\Scilab      &        &      &     &                &         & \\
-\Sumit       &        &      &     &                &         & \\
-\Yacas       &        &      &     &                &         & \\
-\end{tabular} \\[10pt]
-\footnotetext{{\tt ER} represents special cyclotomic numbers and is not a
-root function.}
-\addtocounter{footnote}{-1}%
-
-\begin{tabular}{l|llll}
-& \h{Euler's constant} & \h{Natural log} & \h{Arctangent} & $n!$ \\
-\hline
-\Axiom       &                & log(x) & atan(x)   & factorial(n) \\
-\Derive      & euler\_\,gamma & LOG(x) & ATAN(x)   & n!           \\
-\DoCon       &                &        &           & \\
-\GAP         &                & LogInt(x,base) && Factorial(n) \\
-\Gmp         &                &        &           & \\
-\Macsyma     & \%gamma        & log(x) & atan(x)   & n!           \\
-\Magnus      &                &        &           & \\
-\Maxima      & \%gamma        & log(x) & atan(x)   & n!           \\
-\Maple       & gamma          & log(x) & arctan(x) & n!           \\
-\Mathematica & EulerGamma     & Log[x] & ArcTan[x] & n!           \\
-\MuPAD       & EULER          & ln(x)  & atan(x)   & n!           \\
-\Octave      &                &        &           & \\
-\Pari        &                &        &           & \\
-\Reduce      & Euler\_\,Gamma & log(x) & atan(x)   & factorial(n) \\
-\Scilab      &                &        &           & \\
-\Sumit       &                &        &           & \\
-\Yacas       &                &        &           & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Legendre polynomial} & \h{Chebyshev poly.\ of the \nth{1} kind} \\
-\hline
-\Axiom       & legendreP(n, x)          & chebyshevT(n, x)           \\
-\Derive      & LEGENDRE\_\,P(n, x)      & CHEBYCHEV\_\,T(n, x)       \\
-\DoCon       &                          & \\
-\GAP         &                          & \\
-\Gmp         &                          & \\
-\Macsyma     & legendre\_\,p(n, x)      & chebyshev\_\,t(n, x)       \\
-\Magnus      &                          & \\
-\Maxima      & legendre\_\,p(n, x)      & chebyshev\_\,t(n, x)       \\
-\Maple       & orthopoly[P](n, x)       & orthopoly[T](n, x)         \\
-\Mathematica & LegendreP[n, x]          & ChebyshevT[n, x]           \\
-\MuPAD       & orthpoly::legendre(n, x) & orthpoly::chebyshev1(n, x) \\
-\Octave      &                          & \\
-\Pari        &                          & \\
-\Reduce      & LegendreP(n, x)          & ChebyshevT(n, x)           \\
-\Scilab      &                          & \\
-\Sumit       &                          & \\
-\Yacas       &                          & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Fibonacci number} & \h{Elliptic integral of the \nth{1} kind} \\
-\hline
-\Axiom       & fibonacci(n)           & \\
-\Derive      & FIBONACCI(n)           & ELLIPTIC\_\,E(phi, k\^{}2) \\
-\DoCon       &                        & \\
-\GAP         & Fibonacci(n)           & \\
-\Gmp         &                        & \\
-\Macsyma     & fib(n)                 & elliptic\_\,e(phi, k\^{}2) \\
-\Magnus      &                        & \\
-\Maxima      & fib(n)                 & elliptic\_\,e(phi, k\^{}2) \\
-\Maple       & combinat[fibonacci](n) & EllipticE(sin(phi), k)     \\
-\Mathematica & Fibonacci[n]           & EllipticE[phi, k\^{}2]     \\
-\MuPAD       & numlib::fibonacci(n)   & \\
-\Octave      &                        & \\
-\Pari        &                        & \\
-\Reduce      &                        & EllipticE(phi, k\^{}2)     \\
-\Scilab      &                        & \\
-\Sumit       &                        & \\
-\Yacas       &                        & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|llll}
-& $\Gamma(x)$ & $\psi(x)$ & \h{Cosine integral} & \h{Bessel fun.\ (\nth{1})} \\
-\hline
-\Axiom       & Gamma(x) & psi(x)       & real(Ei(\%i*x)) & besselJ(n, x)     \\
-\Derive      & GAMMA(x) & PSI(x)       & CI(x)           & BESSEL\_\,J(n, x) \\
-\DoCon       &          &              &                 & \\
-\GAP         &          &              &                 & \\
-\Gmp         &          &              &                 & \\
-\Macsyma     & gamma(x) & psi[0](x)    & cos\_\,int(x)   & bessel\_j[n](x)   \\
-\Magnus      &          &              &                 & \\
-\Maxima      & gamma(x) & psi[0](x)    & cos\_\,int(x)   & bessel\_j[n](x)   \\
-\Maple       & GAMMA(x) & Psi(x)       & Ci(x)           & BesselJ(n, x)     \\
-\Mathematica & Gamma[x] & PolyGamma[x] & CosIntegral[x]  & BesselJ[n, x]     \\
-\MuPAD       & gamma(x) & psi(x)       &                 & besselJ(n, x)     \\
-\Octave      &          &              &                 & \\
-\Pari        &          &              &                 & \\
-\Reduce      & Gamma(x) & Psi(x)       & Ci(x)           & BesselJ(n, x)     \\
-\Scilab      &          &              &                 & \\
-\Sumit       &          &              &                 & \\
-\Yacas       &          &              &                 & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{Hypergeometric fun.\ ${}_2F_1(a, b; c; x)$} & \h{Dirac delta} &
-	\h{Unit step fun.} \\
-\hline
-\Axiom       &                                    &          & \\
-\Derive      & GAUSS(a, b, c, x)                  &          & STEP(x)      \\
-\DoCon       &                                    &          & \\
-\GAP         &                                    &          & \\
-\Gmp         &                                    &          & \\
-\Macsyma     & hgfred([a, b], [c], x)             & delta(x) & unit\_\,step(x)
-	\\
-\Magnus      &                                    &          & \\
-\Maxima      & hgfred([a, b], [c], x)             & delta(x) & unit\_\,step(x)
-	\\
-\Maple       & hypergeom([a, b], [c], x)          & Dirac(x) & Heaviside(x) \\
-\Mathematica & HypergeometricPFQ[\{a,b\},\{c\},x] &
-	\m{2}{@<< Calculus\`{}DiracDelta\`{}} \\
-\MuPAD       &                                    & dirac(x) & heaviside(x) \\
-\Octave      &                                    &          & \\
-\Pari        &                                    &          & \\
-\Reduce      & hypergeometric(\{a, b\}, \{c\}, x) &          & \\
-\Scilab      &                                    &          & \\
-\Sumit       &                                    &          & \\
-\Yacas       &                                    &          & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Define $|x|$ via a piecewise function} \\
-\hline
-\Axiom       & \\
-\Derive      & a(x):= -x*CHI(-inf, x, 0) + x*CHI(0, x, inf)        \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$    \\
-\Magnus      & \\
-\Maxima      & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$    \\
-\Maple       & a:= x -> piecewise(x < 0, -x, x):                   \\
-\Mathematica & @<< Calculus\`{}DiracDelta\`{}                       \\
-             & a[x\_]:= -x*UnitStep[-x] + x*UnitStep[x]            \\
-\MuPAD       & a:= proc(x) begin -x*heaviside(-x) + x*heaviside(x) \\
-             & \q\q end\_\,proc:                                   \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Assume $x$ is real} & \h{Remove that assumption} \\
-\hline
-\Axiom       & & \\
-\Derive      & x :epsilon Real           & x:=                         \\
-\DoCon       &                           & \\
-\GAP         &                           & \\
-\Gmp         &                           & \\
-\Macsyma     & declare(x, real)\$        & remove(x, real)\$           \\
-\Magnus      &                           & \\
-\Maxima      & declare(x, real)\$        & remove(x, real)\$           \\
-\Maple       & assume(x, real);          & x:= 'x':                    \\
-\Mathematica & x/: Im[x] = 0;            & Clear[x]                    \\
-\MuPAD       & assume(x, Type::RealNum): & unassume(x, Type::RealNum): \\
-\Octave      &                           & \\
-\Pari        &                           & \\
-\Reduce      & & \\
-\Scilab      &                           & \\
-\Sumit       &                           & \\
-\Yacas       &                           & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Assume $0 < x \le 1$} & \h{Remove that assumption} \\
-\hline
-\Axiom       & & \\
-\Derive      & x :epsilon (0, 1]               & x:=                     \\
-\DoCon       &                                 & \\
-\GAP         &                                 & \\
-\Gmp         &                                 & \\
-\Macsyma     & assume(x > 0, x <= 1)\$         & forget(x > 0, x <= 1)\$ \\
-\Magnus      &                                 & \\
-\Maxima      & assume(x > 0, x <= 1)\$         & forget(x > 0, x <= 1)\$ \\
-\Maple       & assume(x > 0);                  & x:= 'x':                \\
-             & additionally(x <= 1);           & \\
-\Mathematica & Assumptions -> 0 < x <= 1\,\fnm & \\
-\MuPAD       & assume(x > 0):  assume(x <= 1): & unassume(x):            \\
-\Octave      &                                 & \\
-\Pari        &                                 & \\
-\Reduce      & & \\
-\Scilab      &                                 & \\
-\Sumit       &                                 & \\
-\Yacas       &                                 & \\
-\end{tabular} \\[10pt]
-
-\footnotetext{This is an option for {\tt Integrate}.}
-
-\begin{tabular}{l|l}
-& \h{Basic simplification of an expression $e$} \\
-\hline
-\Axiom       & simplify(e) \OR\ normalize(e) \OR\ complexNormalize(e) \\
-\Derive      & e                                                      \\
-\DoCon       & \\
-\GAP         & e \\
-\Gmp         & \\
-\Macsyma     & ratsimp(e) \OR\ radcan(e)                              \\
-\Magnus      & \\
-\Maxima      & ratsimp(e) \OR\ radcan(e)                              \\
-\Maple       & simplify(e)                                            \\
-\Mathematica & Simplify[e] \OR\ FullSimplify[e]                       \\
-\MuPAD       & simplify(e) \OR\ normal(e)                             \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & e                                                      \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Use an unknown function} & \h{Numerically evaluate an expr.} \\
-\hline
-\Axiom       & f:= operator('f); \q f(x) & exp(1) :: Complex Float \\
-\Derive      & f(x):=                    & Precision:= Approximate \\
-             & f(x)                      & APPROX(EXP(1)) \\
-             &                           & Precision:= Exact \\
-\DoCon       &                           & \\
-\GAP         &                           & EvalF(123/456)\\
-\Gmp         &                           & \\
-\Macsyma     & f(x)                      & sfloat(exp(1)); \\
-\Magnus      &                           & \\
-\Maxima      & f(x)                      & sfloat(exp(1)); \\
-\Maple       & f(x)                      & evalf(exp(1)); \\
-\Mathematica & f[x]                      & N[Exp[1]] \\
-\MuPAD       & f(x)                      & float(exp(1)); \\
-\Octave      &                           & \\
-\Pari        &                           & \\
-\Reduce      & operator f; \q f(x)       & on rounded; \q exp(1); \\
-             &                           & off rounded; \\
-\Scilab      &                           & \\
-\Sumit       &                           & \\
-\Yacas       &                           & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& $ n \bmod m$ & \h{Solve $e \equiv 0 \bmod m$ for $x$} \\
-\hline
-\Axiom       & rem(n, m)       & solve(e = 0 :: PrimeField(m), x)        \\
-\Derive      & MOD(n, m)       & SOLVE\_\,MOD(e = 0, x, m)               \\
-\DoCon       &                 & \\
-\GAP         & n mod m         & \h{solve using finite fields}\\
-\Gmp         &                 & \\
-\Macsyma     & mod(n, m)       & modulus: m\$ \q solve(e = 0, x)         \\
-\Magnus      &                 & \\
-\Maxima      & mod(n, m)       & modulus: m\$ \q solve(e = 0, x)         \\
-\Maple       & n mod m         & msolve(e = 0, m)                        \\
-\Mathematica & Mod[n, m]       & Solve[\{e == 0, Modulus == m\}, x]      \\
-\MuPAD       & n mod m         & solve(poly(e = 0, [x], IntMod(m)), x)   \\
-\Octave      &                 & \\
-\Pari        &                 & \\
-\Reduce      & on modular;     & load\_\,package(modsr)\$ \q on modular; \\
-             & setmod m\$ \q n & setmod m\$ \q m\_solve(e = 0, x)        \\
-\Scilab      &                 & \\
-\Sumit       &                 & \\
-\Yacas       &                 & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Put over common denominator} & \h{Expand into separate fractions} \\
-\hline
-\Axiom       & a/b + c/d                  & (a*d + b*c)/(b*d) :: \_      \\
-             &                            & \q MPOLY([a], FRAC POLY INT) \\
-\Derive      & FACTOR(a/b + c/d, Trivial) & EXPAND((a*d + b*c)/(b*d))    \\
-\DoCon       &                            & \\
-\GAP         & a/b+c/d                    &\\
-\Gmp         &                            & \\
-\Macsyma     & xthru(a/b + c/d)           & expand((a*d + b*c)/(b*d))    \\
-\Magnus      &                            & \\
-\Maxima      & xthru(a/b + c/d)           & expand((a*d + b*c)/(b*d))    \\
-\Maple       & normal(a/b + c/d)          & expand((a*d + b*c)/(b*d))    \\
-\Mathematica & Together[a/b + c/d]        & Apart[(a*d + b*c)/(b*d)]     \\
-\MuPAD       & normal(a/b + c/d)          & expand((a*d + b*c)/(b*d))    \\
-\Octave      &                            & \\
-\Pari        &                            & \\
-\Reduce      & a/b + c/d                  & on div;  (a*d + b*c)/(b*d)   \\
-\Scilab      &                            & \\
-\Sumit       &                            & \\
-\Yacas       &                            & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Manipulate the root of a polynomial} \\
-\hline
-\Axiom       & a:= rootOf(x**2 - 2); \q a**2                               \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & x:=X(Rationals,"x");\\
-&\q a:=RootOfDefiningPolynomial(AlgebraicExtension(Rationals,x\^{}2-2));
-a\^{}2\\
-\Gmp         & \\
-\Macsyma     & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2);   \\
-\Magnus      & \\
-\Maxima      & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2);   \\
-\Maple       & a:= RootOf(x\^{}2 - 2): \q simplify(a\^{}2);                \\
-\Mathematica & a = Root[\#\^{}2 - 2 \&, 2] \q a\^{}2                       \\
-\MuPAD       & \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & load\_\,package(arnum)\$ \q defpoly(a\^{}2 - 2); \q a\^{}2; \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Noncommutative multiplication} & \h{Solve a pair of equations} \\
-\hline
-\Axiom       &                      & solve([eqn1, eqn2], [x, y])     \\
-\Derive      & x :epsilon Nonscalar & SOLVE([eqn1, eqn2], [x, y])     \\
-             & y :epsilon Nonscalar & \\
-             & x . y                & \\
-\DoCon       &                      & \\
-\GAP         &*&\\
-\Gmp         &                      & \\
-\Macsyma     & x . y                & solve([eqn1, eqn2], [x, y])     \\
-\Magnus      &                      & \\
-\Maxima      & x . y                & solve([eqn1, eqn2], [x, y])     \\
-\Maple       & x \&* y              & solve(\{eqn1, eqn2\}, \{x, y\}) \\
-\Mathematica & x ** y               & Solve[\{eqn1, eqn2\}, \{x, y\}] \\
-\MuPAD       &                      & solve(\{eqn1, eqn2\}, \{x, y\}) \\
-\Octave      &                      & \\
-\Pari        &                      & \\
-\Reduce      & operator x, y;       & solve(\{eqn1, eqn2\}, \{x, y\}) \\
-             & noncom x, y;         & \\
-             & x() * y()            & \\
-\Scilab      &                      & \\
-\Sumit       &                      & \\
-\Yacas       &                      & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \m{2}{\rm Decrease/increase angles in trigonometric functions} \\
-\hline
-\Axiom       & \m{2}{simplify(normalize(sin(2*x)))} \\
-\Derive      & Trigonometry:= Expand         & Trigonometry:= Collect      \\
-             & sin(2*x)                      & 2*sin(x)*cos(x)             \\
-\DoCon       &                               & \\
-\GAP         &                               & \\
-\Gmp         &                               & \\
-\Macsyma     & trigexpand(sin(2*x))          & trigreduce(2*sin(x)*cos(x)) \\
-\Magnus      &                               & \\
-\Maxima      & trigexpand(sin(2*x))          & trigreduce(2*sin(x)*cos(x)) \\
-\Maple       & expand(sin(2*x))              & combine(2*sin(x)*cos(x))    \\
-\Mathematica & TrigExpand[Sin[2*x]]          & TrigReduce[2*Sin[x]*Cos[x]] \\
-\MuPAD       & expand(sin(2*x))              & combine(2*sin(x)*cos(x), sincos)
-	\\
-\Octave      &                               & \\
-\Pari        &                               & \\
-\Reduce      & load\_\,package(assist)\$ \\
-             & trigexpand(sin(2*x))          & trigreduce(2*sin(x)*cos(x)) \\
-\Scilab      &                               & \\
-\Sumit       &                               & \\
-\Yacas       &                               & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Gr\"obner basis} \\
-\hline
-\Axiom       & groebner([p1, p2, ...])                                  \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & grobner([p1, p2, ...]) \\
-\Magnus      & \\
-\Maxima      & grobner([p1, p2, ...]) \\
-\Maple       & Groebner[gbasis]([p1, p2, ...], plex(x1, x2, ...))       \\
-\Mathematica & GroebnerBasis[\{p1, p2, ...\}, \{x1, x2, ...\}]          \\
-\MuPAD       & groebner::gbasis([p1, p2, ...])                          \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & load\_\,package(groebner)\$ \q groebner(\{p1, p2, ...\}) \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Factorization of $e$ over $i = \sqrt{-1}$} \\
-\hline
-\Axiom       & factor(e, [rootOf(i**2 + 1)]) \\
-\Derive      & FACTOR(e, Complex) \\
-\DoCon       & \\
-\GAP         & Factors(GaussianIntegers,e)\\
-\Gmp         & \\
-\Macsyma     & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\
-\Magnus      & \\
-\Maxima      & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\
-\Maple       & factor(e, I); \\
-\Mathematica & Factor[e, Extension -> I] \\
-\MuPAD       & QI:= Dom::AlgebraicExtension(Dom::Rational, i\^{}2 + 1); \\
-             & QI::name:= "QI": \q Factor(poly(e, QI)); \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & on complex, factor; \q e; \q off complex, factor; \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Real part} & \h{Convert a complex expr.\ to rectangular form} \\
-\hline
-\Axiom       & real(f(z))     & complexForm(f(z))             \\
-\Derive      & RE(f(z))       & f(z)                          \\
-\DoCon       &                & \\
-\GAP         & (f(z)+GaloisCyc(f(z),-1))/2&\\
-\Gmp         &                & \\
-\Macsyma     & realpart(f(z)) & rectform(f(z))                \\
-\Magnus      &                & \\
-\Maxima      & realpart(f(z)) & rectform(f(z))                \\
-\Maple       & Re(f(z))       & evalc(f(z))                   \\
-\Mathematica & Re[f[z]]       & ComplexExpand[f[z]]           \\
-\MuPAD       & Re(f(z))       & rectform(f(z))                \\
-\Octave      &                & \\
-\Pari        &                & \\
-\Reduce      & repart(f(z))   & repart(f(z)) + i*impart(f(z)) \\
-\Scilab      &                & \\
-\Sumit       &                & \\
-\Yacas       &                & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|lll}
-& \h{Matrix addition} & \h{Matrix multiplication} & \h{Matrix transpose} \\
-\hline
-\Axiom       & A + B        & A * B          & transpose(A)         \\
-\Derive      & A + B        & A . B          & A\`{}                \\
-\DoCon       &              &                & \\
-\GAP         & A + B        & A * B          & TransposedMat(A)\\
-\Gmp         &              &                & \\
-\Macsyma     & A + B        & A . B          & transpose(A)         \\
-\Magnus      &              &                & \\
-\Maxima      & A + B        & A . B          & transpose(A)         \\
-\Maple       & evalm(A + B) & evalm(A \&* B) & linalg[transpose](A) \\
-\Mathematica & A + B        & A . B          & Transpose[A]         \\
-\MuPAD       & A + B        & A * B          & transpose(A)         \\
-\Octave      &              &                & \\
-\Pari        &              &                & \\
-\Reduce      & A + B        & A * B          & tp(A)                \\
-\Scilab      &              &                & \\
-\Sumit       &              &                & \\
-\Yacas       &              &                & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Solve the matrix equation $A x = b$} \\
-\hline
-\Axiom       & solve(A, transpose(b)) . 1 . particular :: Matrix \_\_\_ \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & SolutionMat(TransposedMat(A),b)\\
-\Gmp         & \\
-\Macsyma     & xx: genvector('x, mat\_nrows(b))\$                       \\
-             & x: part(matlinsolve(A . xx = b, xx), 1, 2)               \\
-\Magnus      & \\
-\Maxima      & xx: genvector('x, mat\_nrows(b))\$                       \\
-             & x: part(matlinsolve(A . xx = b, xx), 1, 2)               \\
-\Maple       & x:= linalg[linsolve](A, b)                               \\
-\Mathematica & x = LinearSolve[A, b]                                    \\
-\MuPAD       & \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Sum: $\sum_{i = 1}^n f(i)$} & \h{Product: $\prod_{i = 1}^n f(i)$} \\
-\hline
-\Axiom       & sum(f(i), i = 1..n)    & product(f(i), i = 1..n)    \\
-\Derive      & SUM(f(i), i, 1, n)     & PRODUCT(f(i), i, 1, n)     \\
-\DoCon       &                        & \\
-\GAP         & Sum([1..n],f)          & Product([1..n],f)\\
-\Gmp         &                        & \\
-\Macsyma     & closedform(            & closedform(                \\
-             & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\
-\Magnus      &                        & \\
-\Maxima      & closedform(            & closedform(                \\
-             & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\
-\Maple       & sum(f(i), i = 1..n)    & product(f(i), i = 1..n)    \\
-\Mathematica & Sum[f[i], \{i, 1, n\}] & Product[f[i], \{i, 1, n\}] \\
-\MuPAD       & sum(f(i), i = 1..n)    & product(f(i), i = 1..n)    \\
-\Octave      &                        & \\
-\Pari        &                        & \\
-\Reduce      & sum(f(i), i, 1, n)     & prod(f(i), i, 1, n)        \\
-\Scilab      &                        & \\
-\Sumit       &                        & \\
-\Yacas       &                        & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Limit: $\lim_{x \rightarrow 0-} f(x)$} & \h{Taylor/Laurent/etc.\ series} \\
-\hline
-\Axiom       & limit(f(x), x = 0, "left")      & series(f(x), x = 0, 3)   \\
-\Derive      & LIM(f(x), x, 0, -1)             & TAYLOR(f(x), x, 0, 3)    \\
-\DoCon       &                                 & \\
-\GAP         &                                 & \\
-\Gmp         &                                 & \\
-\Macsyma     & limit(f(x), x, 0, minus)        & taylor(f(x), x, 0, 3)    \\
-\Magnus      &                                 & \\
-\Maxima      & limit(f(x), x, 0, minus)        & taylor(f(x), x, 0, 3)    \\
-\Maple       & limit(f(x), x = 0, left)        & series(f(x), x = 0, 4)   \\
-\Mathematica & Limit[f[x], x->0, Direction->1] & Series[f[x],\{x, 0, 3\}] \\
-\MuPAD       & limit(f(x), x = 0, Left)        & series(f(x), x = 0, 4)   \\
-\Octave      &                                 & \\
-\Pari        &                                 & \\
-\Reduce      & limit!-(f(x), x, 0)             & taylor(f(x), x, 0, 3)    \\
-\Scilab      &                                 & \\
-\Sumit       &                                 & \\
-\Yacas       &                                 & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Differentiate: $\frac{d^3 f(x, y)}{dx \, dy^2}$} &
-	\h{Integrate: $\int_0^1 f(x) \, dx$} \\
-\hline
-\Axiom       & D(f(x, y), [x, y], [1, 2]) & integrate(f(x), x = 0..1)    \\
-\Derive      & DIF(DIF(f(x, y), x), y, 2) & INT(f(x), x, 0, 1)           \\
-\DoCon       &                            & \\
-\GAP         &                            & \\
-\Gmp         &                            & \\
-\Macsyma     & diff(f(x, y), x, 1, y, 2)  & integrate(f(x), x, 0, 1)     \\
-\Magnus      &                            & \\
-\Maxima      & diff(f(x, y), x, 1, y, 2)  & integrate(f(x), x, 0, 1)     \\
-\Maple       & diff(f(x, y), x, y\$2)     & int(f(x), x = 0..1)          \\
-\Mathematica & D[f[x, y], x, \{y, 2\}]    & Integrate[f[x], \{x, 0, 1\}] \\
-\MuPAD       & diff(f(x, y), x, y\$2)     & int(f(x), x = 0..1)          \\
-\Octave      &                            & \\
-\Pari        &                            & \\
-\Reduce      & df(f(x, y), x, y, 2)       & int(f(x), x, 0, 1)           \\
-\Scilab      &                            & \\
-\Sumit       &                            & \\
-\Yacas       &                            & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|ll}
-& \h{Laplace transform} & \h{Inverse Laplace transform} \\
-\hline
-\Axiom       & laplace(e, t, s)          & inverseLaplace(e, s, t)        \\
-\Derive      & LAPLACE(e, t, s)          & \\
-\DoCon       &                           & \\
-\GAP         &                           & \\
-\Gmp         &                           & \\
-\Macsyma     & laplace(e, t, s)          & ilt(e, s, t)                   \\
-\Magnus      &                           & \\
-\Maxima      & laplace(e, t, s)          & ilt(e, s, t)                   \\
-\Maple       & inttrans[laplace](e,t,s)  & inttrans[invlaplace](e,s,t)    \\
-\Mathematica & \m{2}{\q @<< Calculus\`{}LaplaceTransform\`{}} \\
-             & LaplaceTransform[e, t, s] & {\st InverseLaplaceTransform[e,s,t]}
-	\\
-\MuPAD       & transform::laplace(e,t,s) & transform::ilaplace(e, s, t)   \\
-\Octave      &                           & \\
-\Pari        &                           & \\
-\Reduce      & \m{2}{\q load\_\,package(laplace)\$ \q load\_\,package(defint)\$}
-	\\
-             & laplace(e, t, s)          & invlap(e, t, s)                \\
-\Scilab      &                           & \\
-\Sumit       &                           & \\
-\Yacas       &                           & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Solve an ODE (with the initial condition $y'(0) = 1$)} \\
-\hline
-\Axiom       & solve(eqn, y, x)                                      \\
-\Derive      & APPLY\_\,IC(RHS(ODE(eqn, x, y, y\_)), [x, 0], [y, 1]) \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\
-\Magnus      & \\
-\Maxima      & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\
-\Maple       & dsolve(\{eqn, D(y)(0) = 1\}, y(x))                    \\
-\Mathematica & DSolve[\{eqn, y'[0] == 1\}, y[x], x]                  \\
-\MuPAD       & solve(ode(\{eqn, D(y)(0) = 1\}, y(x)))                \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & odesolve(eqn, y(x), x)                                \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Define the differential operator $L = D_x + I$ and apply it to $\sin x$} \\
-\hline
-\Axiom       & DD : LODO(Expression Integer, e +-> D(e, x)) := D(); \\
-             & L:= DD + 1; \q L(sin(x))                             \\
-\Derive      & \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x));  \\
-\Magnus      & \\
-\Maxima      & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x));  \\
-\Maple       & id:= x -> x: \q L:= (D + id): \q L(sin)(x);          \\
-\Mathematica & L = D[\#, x]\& + Identity; \q Through[L[Sin[x]]]     \\
-\MuPAD       & L:= (D + id): \q L(sin)(x);                          \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{2D plot of two separate curves overlayed} \\
-\hline
-\Axiom       & draw(x, x = 0..1); \q draw(acsch(x), x = 0..1);           \\
-\Derive      & [Plot Overlay]                                            \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$           \\
-\Magnus      & \\
-\Maxima      & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$           \\
-\Maple       & plot(\{x, arccsch(x)\}, x = 0..1):                        \\
-\Mathematica & Plot[\{x, ArcCsch[x]\}, \{x, 0, 1\}];                     \\
-\MuPAD       & plotfunc(x, acsch(x), x = 0..1):                          \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & load\_\,package(gnuplot)\$ \q plot(y = x, x = (0 .. 1))\$ \\
-             & plot(y = acsch(x), x = (0 .. 1))\$                        \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-\begin{tabular}{l|l}
-& \h{Simple 3D plotting} \\
-\hline
-\Axiom       & draw(abs(x*y), x = 0..1, y = 0..1);              \\
-\Derive      & [Plot Overlay]                                   \\
-\DoCon       & \\
-\GAP         & \\
-\Gmp         & \\
-\Macsyma     & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$             \\
-\Magnus      & \\
-\Maxima      & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$             \\
-\Maple       & plot3d(abs(x*y), x = 0..1, y = 0..1):            \\
-\Mathematica & Plot3D[Abs[x*y], \{x, 0, 1\}, \{y, 0, 1\}];      \\
-\MuPAD       & plotfunc(abs(x*y), x = 0..1, y = 0..1):          \\
-\Octave      & \\
-\Pari        & \\
-\Reduce      & load\_\,package(gnuplot)\$                       \\
-             & plot(z = abs(x*y), x = (0 .. 1), y = (0 .. 1))\$ \\
-\Scilab      & \\
-\Sumit       & \\
-\Yacas       & \\
-\end{tabular} \\[10pt]
-
-%\begin{tabular}{l|l}
-%& \h{} \\
-%\hline
-%\Axiom       & \\
-%\Derive      & \\
-%\DoCon       & \\
-%\GAP         & \\
-%\Gmp         & \\
-%\Macsyma     & \\
-%\Magnus      & \\
-%\Maxima      & \\
-%\Maple       & \\
-%\Mathematica & \\
-%\MuPAD       & \\
-%\Octave      & \\
-%\Pari        & \\
-%\Reduce      & \\
-%\Scilab      & \\
-%\Sumit       & \\
-%\Yacas       & \\
-%\end{tabular} \\[10pt]
-
-\end{tt}
-\endgroup
-\end{document}
