axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20080728.01.tpd.patch (expand RootPage->Topics->Number


From: daly
Subject: [Axiom-developer] 20080728.01.tpd.patch (expand RootPage->Topics->Numbers)
Date: Mon, 28 Jul 2008 21:15:57 -0500

Expand the page documentation for RootPage->Topics->Numbers.
Fix up known broken links.

=========================================================================
diff --git a/books/bookvol7.1.pamphlet b/books/bookvol7.1.pamphlet
index e1a9dca..11ed426 100644
--- a/books/bookvol7.1.pamphlet
+++ b/books/bookvol7.1.pamphlet
@@ -2235,8 +2235,8 @@ The \spadtype{TwoDimensionalArray} domain is used for 
storing data in
 a \twodim{} data structure indexed by row and by column.  Such an
 array is a homogeneous data structure in that all the entries of the
 array must belong to the same Axiom domain (although see
-\downlink{``\ugTypesAnyNoneTitle''}{ugTypesAnyNonePage} in Section
-\ugTypesAnyNoneNumber\ignore{ugTypesAnyNone}).  Each array has a fixed
+\downlink{``The Any Domain''}{ugTypesAnyNonePage} in Section 2.6
+\ignore{ugTypesAnyNone}).  Each array has a fixed
 number of rows and columns specified by the user and arrays are not
 extensible.  In Axiom, the indexing of two-dimensional arrays is
 one-based.  This means that both the ``first'' row of an array and the
@@ -2577,13 +2577,14 @@ answer for \texht{$12^2$}{12**2}.
 @
 \section{binary.ht}
 \pagehead{BinaryExpansionXmpPage}{binary.ht}{BinaryExpansion}
-\pageto{notitle}{DecimalExpansionXmpPage}
-\pageto{notitle}{RadixExpansionXmpPage}
-\pageto{notitle}{HexExpansionXmpPage}
+\pagepic{ps/v71binaryexpansionxmppage.eps}{BinaryExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{DecimalExpansion}{DecimalExpansionXmpPage}
+\pageto{RadixExpansion}{RadixExpansionXmpPage}
+\pageto{HexadecimalExpansion}{HexExpansionXmpPage}
 <<binary.ht>>=
 \begin{page}{BinaryExpansionXmpPage}{BinaryExpansion}
 \beginscroll
- 
 All rational numbers have repeating binary expansions.
 Operations to access the individual bits of a binary expansion can
 be obtained by converting the value to \spadtype{RadixExpansion(2)}.
@@ -2743,8 +2744,8 @@ To solve the above equation, enter this.
 }{
 \spadpaste{solve(deq, y, x) \free{e1}\free{y}}
 }
-See \downlink{``\ugProblemDEQTitle''}{ugProblemDEQPage} 
-in Section \ugProblemDEQNumber\ignore{ugProblemDEQ}
+See \downlink{``Solution of Differential Equations''}{ugProblemDEQPage} 
+in Section 8.10\ignore{ugProblemDEQ}
 for this kind of use of \axiomType{BasicOperator}.
 
 Use the single argument form of
@@ -2946,10 +2947,11 @@ Have Axiom check that these are equal.
 @
 \section{card.ht}
 \pagehead{CardinalNumberXmpPage}{card.ht}{CardinalNumber}
+\pagepic{ps/v71cardinalnumberxmppage.eps}{CardinalNumberXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
 <<card.ht>>=
 \begin{page}{CardinalNumberXmpPage}{CardinalNumber}
 \beginscroll
-
 The \spadtype{CardinalNumber} domain can be used for values indicating
 the cardinality of sets, both finite and infinite.
 For example, the \spadfunFrom{dimension}{VectorSpace} operation in the
@@ -3997,12 +3999,13 @@ for t in 1..4]) \bound{lhs}\free{g gam m n r s}}
 @
 \section{complex.ht}
 \pagehead{ComplexXmpPage}{complex.ht}{Complex}
-\pageto{notitle}{ugProblemNumericPage}
+\pagepic{ps/v71complexxmppage.eps}{ComplexXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Numeric Functions}{ugProblemNumericPage}
 \pageto{notitle}{ugTypesConvertPage}
 <<complex.ht>>=
 \begin{page}{ComplexXmpPage}{Complex}
 \beginscroll
-
 The \spadtype{Complex} constructor implements complex objects over a
 commutative ring \spad{R}.
 Typically, the ring \spad{R} is \spadtype{Integer}, \spadtype{Fraction
@@ -4010,8 +4013,8 @@ Integer}, \spadtype{Float} or \spadtype{DoubleFloat}.
 \spad{R} can also be a symbolic type, like \spadtype{Polynomial Integer}.
 For more information about the numerical and graphical aspects of complex
 numbers, 
-see \downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in Section 
-\ugProblemNumericNumber\ignore{ugProblemNumeric}.
+see \downlink{``Numeric Functions''}{ugProblemNumericPage} in Section 8.1
+\ignore{ugProblemNumeric}.
 
 \xtc{
 Complex objects are created by the \spadfunFrom{complex}{Complex} operation.
@@ -4041,8 +4044,8 @@ If \spad{R} is a field, you can also divide the complex 
objects.
 \spadpaste{a / b \free{a b}\bound{adb}}
 }
 \xtc{
-Use a conversion (\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}) to view the last
+Use a conversion (\downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert}) to view the last
 object as a fraction of complex integers.
 }{
 \spadpaste{\% :: Fraction Complex Integer \free{adb}}
@@ -4102,21 +4105,21 @@ You can \spadfunFrom{factor}{Complex} Gaussian integers.
 @
 \section{contfrac.ht}
 \pagehead{ContinuedFractionXmpPage}{contfrac.ht}{ContinuedFraction}
-\pageto{notitle}{StreamXmpPage}
+\pagepic{ps/v71continuedfractionxmppage.eps}{ContinuedFractionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Stream}{StreamXmpPage}
 <<contfrac.ht>>=
 \begin{page}{ContinuedFractionXmpPage}{ContinuedFraction}
 \beginscroll
 
-Continued fractions have been a fascinating and useful tool in mathematics
-for well over three hundred years.
-Axiom implements continued fractions for fractions of any Euclidean
-domain.
-In practice, this usually means rational numbers.
-In this section we demonstrate some of the operations available for
-manipulating both finite and infinite continued fractions.
-It may be helpful if you review 
-\downlink{`Stream'}{StreamXmpPage}\ignore{Stream} to remind yourself of some
-of the operations with streams.
+Continued fractions have been a fascinating and useful tool in
+mathematics for well over three hundred years.  Axiom implements
+continued fractions for fractions of any Euclidean domain.  In
+practice, this usually means rational numbers.  In this section we
+demonstrate some of the operations available for manipulating both
+finite and infinite continued fractions.  It may be helpful if you
+review \downlink{`Stream'}{StreamXmpPage}\ignore{Stream} to remind
+yourself of some of the operations with streams.
 
 The \spadtype{ContinuedFraction} domain is a field and therefore you can
 add, subtract, multiply and divide the fractions.
@@ -5112,14 +5115,14 @@ u=0..\%pi,v=0..2*\%pi)}
 @
 \section{decimal.ht}
 \pagehead{DecimalExpansionXmpPage}{decimal.ht}{Decimal Expansion}
-\pageto{notitle}{BinaryExpansionXmpPage}
-\pageto{notitle}{HexExpansionXmpPage}
-\pageto{notitle}{RadixExpansionXmpPage}
+\pagepic{ps/v71decimalexpansionxmppage.eps}{DecimalExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{BinaryExpansion}{BinaryExpansionXmpPage}
+\pageto{HexadecimalExpansion}{HexExpansionXmpPage}
+\pageto{RadixExpansion}{RadixExpansionXmpPage}
 <<decimal.ht>>=
 \begin{page}{DecimalExpansionXmpPage}{Decimal Expansion}
 \beginscroll
-
-
 All rationals have repeating decimal expansions.
 Operations to access the individual digits of a decimal expansion can
 be obtained by converting the value to \spadtype{RadixExpansion(10)}.
@@ -5386,13 +5389,14 @@ consists of the eight forms: \spad{1}, \spad{dx}, 
\spad{dy}, \spad{dz},
 @
 \section{dfloat.ht}
 \pagehead{DoubleFloatXmpPage}{dfloat.ht}{DoubleFloat}
-\pageto{notitle}{ugGraphPage}
-\pageto{notitle}{ugProblemNumericPage}
-\pageto{notitle}{FloatXmpPage}
+\pagepic{ps/v71doublefloatxmppage.eps}{DoubleFloatXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Graphics}{ugGraphPage}
+\pageto{Numeric Functions}{ugProblemNumericPage}
+\pageto{Float}{FloatXmpPage}
 <<dfloat.ht>>=
 \begin{page}{DoubleFloatXmpPage}{DoubleFloat}
 \beginscroll
-
 Axiom provides two kinds of floating point numbers.
 The domain \spadtype{Float} (abbreviation \spadtype{FLOAT})
 implements a model of arbitrary
@@ -5484,10 +5488,10 @@ By far, the most common usage of \spadtype{DoubleFloat} 
is for functions
 to be graphed.
 For more information about Axiom's numerical and graphical
 facilities, see
-\downlink{``\ugGraphTitle''}{ugGraphPage} in Section \ugGraphNumber
+\downlink{``Graphics''}{ugGraphPage} in Section 7.
 \ignore{ugGraph},
-\downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in 
-Section \ugProblemNumericNumber\ignore{ugProblemNumeric}, and
+\downlink{``Numeric Functions''}{ugProblemNumericPage} in 
+Section 8.1\ignore{ugProblemNumeric}, and
 \downlink{`Float'}{FloatXmpPage}\ignore{Float}.
 \endscroll
 \autobuttons
@@ -5569,10 +5573,10 @@ This flexibility is mostly important for algorithms 
such as
 sensitive to term ordering.
 
 For more information on related topics, see
-\downlink{``\ugIntroVariablesTitle''}{ugIntroVariablesPage} 
-in Section \ugIntroVariablesNumber\ignore{ugIntroVariables},
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert},
+\downlink{``Polynomials''}{ugIntroVariablesPage} 
+in Section 1.9\ignore{ugIntroVariables},
+\downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert},
 \downlink{`Polynomial'}{PolynomialXmpPage}\ignore{Polynomial},
 \downlink{`UnivariatePolynomial'}{UnivariatePolyXmpPage}
 \ignore{UnivariatePolynomial}, and
@@ -5947,8 +5951,8 @@ Because
 }
 
 For functions which return no value at all, use \spadtype{Void}.
-See \downlink{``\ugUserTitle''}{ugUserPage} in 
-Section \ugUserNumber\ignore{ugUser} and 
+See \downlink{``User-Defined Functions, Macros and Rules''}
+{ugUserPage} in Section 6\ignore{ugUser} and 
 \downlink{`Void'}{VoidXmpPage}\ignore{Void} for more information.
 %
 \showBlurb{Exit}
@@ -6607,23 +6611,23 @@ Use \axiomFunFrom{D}{Expression} to compute partial 
derivatives.
 \spadpaste{D(e, x) \free{e}}
 }
 \xtc{
-See \downlink{``\ugIntroCalcDerivTitle''}{ugIntroCalcDerivPage} in Section 
-\ugIntroCalcDerivNumber\ignore{ugIntroCalcDeriv}
+See \downlink{``Derivatives''}{ugIntroCalcDerivPage} in Section 1.12
+\ignore{ugIntroCalcDeriv}
 for more examples of expressions and derivatives.
 }{
 \spadpaste{D(e, [x, y], [1, 2]) \free{e}}
 }
-See \downlink{``\ugIntroCalcLimitsTitle''}{ugIntroCalcLimitsPage} 
-in Section \ugIntroCalcLimitsNumber\ignore{ugIntroCalcLimits} and
-\downlink{``\ugIntroSeriesTitle''}{ugIntroSeriesPage} in Section 
-\ugIntroSeriesNumber\ignore{ugIntroSeries}
+See \downlink{``Limits''}{ugIntroCalcLimitsPage} 
+in Section 1.10\ignore{ugIntroCalcLimits} and
+\downlink{``Series''}{ugIntroSeriesPage} in Section 1.11
+\ignore{ugIntroSeries}
 for more examples of expressions and calculus.
 Differential equations involving expressions are discussed in
-\downlink{``\ugProblemDEQTitle''}{ugProblemDEQPage} in Section 
-\ugProblemDEQNumber\ignore{ugProblemDEQ}.
+\downlink{``Solution of Differential Equations''}
+{ugProblemDEQPage} in Section 8.10\ignore{ugProblemDEQ}.
 Chapter 8 has many advanced examples: see
-\downlink{``\ugProblemIntegrationTitle''}{ugProblemIntegrationPage} 
-in Section \ugProblemIntegrationNumber\ignore{ugProblemIntegration}
+\downlink{``Integration''}{ugProblemIntegrationPage} 
+in Section 8.8\ignore{ugProblemIntegration}
 for a discussion of Axiom's integration facilities.
 
 When an expression involves no ``symbol kernels'' (for example,
@@ -6688,11 +6692,9 @@ use \axiomFun{simplify}.
 }{
 \spadpaste{simplify \% \free{tan6}}
 }
-See \downlink{``\ugUserRulesTitle''}{ugUserRulesPage} in 
-Section \ugUserRulesNumber\ignore{ugUserRules}
-for examples of how to write your own rewrite rules for
-expressions.
-
+See \downlink{``Rules and Pattern Matching''}{ugUserRulesPage} in
+Section 6.21\ignore{ugUserRules} for examples of how to write your own
+rewrite rules for expressions.
 
 \endscroll
 \autobuttons
@@ -7374,17 +7376,18 @@ For more information on related topics, see
 @
 \section{float.ht}
 \pagehead{FloatXmpPage}{float.ht}{Float}
-\pageto{notitle}{ugGraphPage}
-\pageto{notitle}{ugProblemNumericPage}
-\pageto{notitle}{DoubleFloatXmpPage}
-\pageto{notitle}{ugxFloatIntroPage}
-\pageto{notitle}{ugxFloatConvertPage}
-\pageto{notitle}{ugxFloatOutputPage}
-\pageto{notitle}{ugxFloatHilbertPage}
+\pagepic{ps/v71floatxmppage.eps}{FloatXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Graphics}{ugGraphPage}
+\pageto{Numeric Functions}{ugProblemNumericPage}
+\pageto{DoubleFloat}{DoubleFloatXmpPage}
+\pageto{Introduction to Float}{ugxFloatIntroPage}
+\pageto{Conversion Functions}{ugxFloatConvertPage}
+\pageto{Output Functions}{ugxFloatOutputPage}
+\pageto{Determinant of a Hilbert Matrix}{ugxFloatHilbertPage}
 <<float.ht>>=
 \begin{page}{FloatXmpPage}{Float}
 \beginscroll
-
  Axiom provides two kinds of floating point numbers.
 The domain \spadtype{Float} (abbreviation \spadtype{FLOAT})
 implements a model of arbitrary
@@ -7405,10 +7408,10 @@ twenty to two hundred times more time than hardware 
floating point.
 
 For more information about Axiom's numeric and graphic
 facilities,  see
-\downlink{``\ugGraphTitle''}{ugGraphPage} in 
-Section \ugGraphNumber\ignore{ugGraph},
-\downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in 
-Section \ugProblemNumericNumber\ignore{ugProblemNumeric}, and
+\downlink{``Graphics''}{ugGraphPage} in 
+Section 7 \ignore{ugGraph},
+\downlink{``Numeric Functions''}{ugProblemNumericPage} in 
+Section 8.1\ignore{ugProblemNumeric}, and
 \downlink{`DoubleFloat'}{DoubleFloatXmpPage}\ignore{DoubleFloat}.
 
 \beginmenu
@@ -7467,8 +7470,8 @@ numbers.
 \labelSpace{3pc}
 \xtc{
 You can use conversion
-(\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert})
+(\downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert})
 to go back and forth between \spadtype{Integer}, 
 \spadtype{Fraction Integer} and \spadtype{Float}, as appropriate.
 }{
@@ -7636,7 +7639,8 @@ This resets the output printing to the default behavior.
 \pagehead{ugxFloatHilbertPage}{float.ht}
 {An Example: Determinant of a Hilbert Matrix}
 <<float.ht>>=
-\begin{page}{ugxFloatHilbertPage}{An Example: Determinant of a Hilbert Matrix}
+\begin{page}{ugxFloatHilbertPage}
+{An Example: Determinant of a Hilbert Matrix}
 \beginscroll
 
 Consider the problem of computing the determinant of a \spad{10} by \spad{10}
@@ -8036,8 +8040,8 @@ respectively.
 \xtc{
 Another way to get the zero and one factored objects is to use
 package calling 
-(see \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+(see \downlink{``Package Calling and Target Types''}
+{ugTypesPkgCallPage} in Section 2.9\ignore{ugTypesPkgCall}).
 }{
 \spadpaste{0\$Factored(Integer)}
 }
@@ -8199,8 +8203,8 @@ by \spadfunFrom{map}{FactoredFunctions2}.
 
 For more information about factored objects and their use, see
 \downlink{`Factored'}{FactoredXmpPage}\ignore{Factored} and
-\downlink{``\ugProblemGaloisTitle''}{ugProblemGaloisPage} in 
-Section \ugProblemGaloisNumber\ignore{ugProblemGalois}.
+\downlink{``Computation of Galois Groups''}{ugProblemGaloisPage} in 
+Section 8.13\ignore{ugProblemGalois}.
 \endscroll
 \autobuttons
 \end{page}
@@ -8298,8 +8302,8 @@ moved in and out of the numerator and denominator.
 }
 \xtc{
 Conversion is discussed in detail in 
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}.
+\downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert}.
 }{
 \spadpaste{g :: FRAC COMPLEX INT \free{g}}
 }
@@ -11015,13 +11019,14 @@ Apply \spadfun{heapsort} to present elements in order.
 @
 \section{hexadec.ht}
 \pagehead{HexExpansionXmpPage}{hexadec.ht}{HexadecimalExpansion}
-\pageto{notitle}{DecimalExpansionXmpPage}
-\pageto{notitle}{BinaryExpansionXmpPage}
-\pageto{notitle}{RadixExpansionXmpPage}
+\pagepic{ps/v71hexexpansionxmppage.eps}{HexExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{DecimalExpansion}{DecimalExpansionXmpPage}
+\pageto{BinaryExpansion}{BinaryExpansionXmpPage}
+\pageto{RadixExpansion}{RadixExpansionXmpPage}
 <<hexadec.ht>>=
 \begin{page}{HexExpansionXmpPage}{HexadecimalExpansion}
 \beginscroll
-
 All rationals have repeating hexadecimal expansions.  The operation
 \spadfunFrom{hex}{HexadecimalExpansion} returns these expansions of
 type \spadtype{HexadecimalExpansion}.  Operations to access the
@@ -11095,8 +11100,7 @@ integers.  In this section we will show some of those 
that come from
 \spadtype{Integer} itself plus some that are implemented in other
 packages.  More examples of using integers are in the following
 sections:
-\downlink{``\ugIntroNumbersTitle''}{ugIntroNumbersPage} in section
-\ugIntroNumbersNumber
+\downlink{``Numbers''}{ugIntroNumbersPage} in section 1.5
 \downlink{`IntegerNumberTheoryFunctions'}
 {IntNumberTheoryFnsXmpPage}
 \ignore{IntegerNumberTheoryFunctions},
@@ -11293,8 +11297,8 @@ remainder.
 \xtc{
 One integer is evenly divisible by another if the remainder is zero.
 The operation \spadfunFrom{exquo}{Integer} can also be used.
-See \downlink{``\ugTypesUnionsTitle''}{ugTypesUnionsPage} in Section 
-\ugTypesUnionsNumber\ignore{ugTypesUnions} for an example.
+See \downlink{``Unions''}{ugTypesUnionsPage} in Section 2.5
+\ignore{ugTypesUnions} for an example.
 }{
 \spadpaste{zero?(167604736446952 rem 2003644)}
 }
@@ -11311,8 +11315,8 @@ quotient and remainder and thus is more efficient when 
both are needed.
 }
 \xtc{
 Records are discussed in detail in 
-\downlink{``\ugTypesRecordsTitle''}{ugTypesRecordsPage} in Section 
-\ugTypesRecordsNumber\ignore{ugTypesRecords}.
+\downlink{``Records''}{ugTypesRecordsPage} in Section 2.4
+\ignore{ugTypesRecords}.
 }{
 \spadpaste{d.remainder \free{d}}
 }
@@ -16071,12 +16075,12 @@ is also two.
 }
 
 For more information on related topics, see
-\downlink{``\ugIntroTwoDimTitle''}{ugIntroTwoDimPage} in 
-Section \ugIntroTwoDimNumber\ignore{ugIntroTwoDim},
-\downlink{``\ugProblemEigenTitle''}{ugProblemEigenPage} in 
-Section \ugProblemEigenNumber\ignore{ugProblemEigen},
-\downlink{``\ugxFloatHilbertTitle''}{ugxFloatHilbertPage} in 
-Section \ugxFloatHilbertNumber\ignore{ugxFloatHilbert},
+\downlink{``Expanding to Higher Dimensions''}{ugIntroTwoDimPage} in 
+Section 1.7\ignore{ugIntroTwoDim},
+\downlink{``Computation of Eigenvalues and Eigenvectors''}
+{ugProblemEigenPage} in Section 8.4\ignore{ugProblemEigen},
+\downlink{``Determinant of a Hilbert Matrix''}
+{ugxFloatHilbertPage}\ignore{ugxFloatHilbert},
 \downlink{`Permanent'}{PermanentXmpPage}\ignore{Permanent},
 \downlink{`Vector'}{VectorXmpPage}\ignore{Vector},
 \downlink{`OneDimensionalArray'}{OneDimensionalArrayXmpPage}
@@ -16168,8 +16172,9 @@ for which they are defined.
 \spadpaste{h(m1, m2) \free{h m1 m2}}
 }
 %
-For more information, see \downlink{``\ugUserMakeTitle''}{ugUserMakePage} 
-in Section \ugUserMakeNumber\ignore{ugUserMake}.
+For more information, see 
+\downlink{``Making Functions from Objects''}{ugUserMakePage} 
+in Section 6.14\ignore{ugUserMake}.
 \showBlurb{MakeFunction}
 \endscroll
 \autobuttons
@@ -16345,7 +16350,7 @@ type directly, such as \spadtype{List 
NonNegativeInteger}, do it this way.
 \section{numbers.ht}
 \pagehead{NumberPage}{numbers.ht}{Axiom Number Types}
 \pagepic{ps/v71numberpage.eps}{numberpage}
-\pagefrom{Topics}{TopicPage}
+\pagefrom{Axiom Topics}{TopicPage}
 \pageto{Integers}{IntegerPage}
 \pageto{Fractions}{FractionPage}
 \pageto{Machine Floats}{DoubleFloatXmpPage}
@@ -16413,11 +16418,12 @@ Additional Topics
 
 @
 \pagehead{FractionPage}{numbers.ht}{Fraction}
-\pageto{notitle}{RationalNumberPage}
-\pageto{notitle}{FractionXmpPage}
+\pagepic{ps/v71fractionpage.eps}{FractionPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Rational Numbers}{RationalNumberPage}
+\pageto{Quotient Fields}{FractionXmpPage}
 <<numbers.ht>>=
 \begin{page}{FractionPage}{Fractions}
-
 \beginscroll
 Axiom handles fractions in many different contexts
 and will automatically simplify fractions whenever possible.
@@ -16429,15 +16435,10 @@ Here are some examples:
 \endscroll
 Additional Topics:
 \beginmenu
-
 \menulink{Rational Numbers}{RationalNumberPage} \tab{18}
 Quotients of integers
-
 \menulink{Quotient Fields}{FractionXmpPage}  \tab{18}
 Quotients over an arbitrary integral domain
-
-%\menulink{Localizations}{LocalizationPage}  \tab{18}
-%Fractions in the most general setting
 \endmenu
 \autobuttons
 \end{page}
@@ -16470,11 +16471,13 @@ command:
 
 @
 \pagehead{IntegerPage}{numbers.ht}{Integers}
-\pageto{notitle}{IntegerXmpPage}
-\pageto{notitle}{ugxIntegerPrimesPage}
-\pageto{notitle}{IntNumberTheoryFnsXmpPage}
-\pageto{notitle}{IntegerExamplePage}
-\pageto{notitle}{IntegerProblemPage}
+\pagepic{ps/v71integerpage.eps}{IntegerPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{General Info}{IntegerXmpPage}
+\pageto{Factorization}{ugxIntegerPrimesPage}
+\pageto{Functions}{IntNumberTheoryFnsXmpPage}
+\pageto{Examples}{IntegerExamplePage}
+\pageto{Problems}{IntegerProblemPage}
 <<numbers.ht>>=
 \begin{page}{IntegerPage}{Integers}
 \beginscroll
@@ -16671,11 +16674,12 @@ n**n - n + 41 is not prime.
 @
 \section{oct.ht}
 \pagehead{OctonionXmpPage}{oct.ht}{Octonion}
-\pageto{notitle}{QuaternionXmpPage}
+\pagepic{ps/v71octonionxmppage.eps}{OctonionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Quaternion}{QuaternionXmpPage}
 <<oct.ht>>=
 \begin{page}{OctonionXmpPage}{Octonion}
 \beginscroll
-
 The Octonions, also called the Cayley-Dixon algebra, defined over a
 commutative ring are an eight-dimensional non-associative algebra.
 Their construction from quaternions is similar to the construction
@@ -17317,11 +17321,12 @@ Here are some derangement numbers, which you see grow 
quite fast.
 @
 \section{pfr.ht}
 \pagehead{PartialFractionXmpPage}{pfr.ht}{PartialFraction}
-\pageto{notitle}{FullPartialFracExpansionXmpPage}
+\pagepic{ps/v71partialfractionxmppage.eps}{PartialFractionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{FullPartialFracExpansion}{FullPartialFracExpansionXmpPage}
 <<pfr.ht>>=
 \begin{page}{PartialFractionXmpPage}{PartialFraction}
 \beginscroll
-
 A {\it partial fraction} is a decomposition of a quotient into a sum
 of quotients where the denominators of the summands are powers of
 primes.\footnote{Most people first encounter partial fractions when
@@ -17740,8 +17745,8 @@ for factoring polynomials created with 
\spadtype{Polynomial} are
 currently restricted to the integer and rational number coefficient
 cases.  There are more complete facilities for factoring univariate
 polynomials: see
-\downlink{``\ugProblemFactorTitle''}{ugProblemFactorPage} in Section
-\ugProblemFactorNumber\ignore{ugProblemFactor}.
+\downlink{``Polynomial Factorization''}{ugProblemFactorPage} in 
+Section 8.2\ignore{ugProblemFactor}.
 
 \xtc{
 The standard arithmetic operations are available for polynomials.
@@ -18013,13 +18018,16 @@ to display the full list of operations defined by
 @
 \section{quat.ht}
 \pagehead{QuaternionXmpPage}{quat.ht}{Quaternion}
+\pagepic{ps/v71quaternionxmppage.eps}{QuaternionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Complex}{ComplexXmpPage}
+\pageto{Octonion}{OctonionXmpPage}
 <<quat.ht>>=
 \begin{page}{QuaternionXmpPage}{Quaternion}
 \beginscroll
 The domain constructor \spadtype{Quaternion} implements quaternions over
 commutative rings.
 For information on related topics, see
-%\menuxmpref{CliffordAlgebra}
 \downlink{`Complex'}{ComplexXmpPage}\ignore{Complex} and
 \downlink{`Octonion'}{OctonionXmpPage}\ignore{Octonion}.
 You can also issue the system command
@@ -18092,15 +18100,15 @@ The norm is the quaternion times its conjugate.
 @
 \section{radix.ht}
 \pagehead{RadixExpansionXmpPage}{radix.ht}{RadixExpansion}
-\pageto{notitle}{HexExpansionXmpPage}
-\pageto{notitle}{DecimalExpansionXmpPage}
-\pageto{notitle}{BinaryExpansionXmpPage}
+\pagepic{ps/v71radixexpansionxmppage.eps}{RadixExpansionXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{HexadecimalExpansion}{HexExpansionXmpPage}
+\pageto{DecimalExpansion}{DecimalExpansionXmpPage}
+\pageto{BinaryExpansion}{BinaryExpansionXmpPage}
 <<radix.ht>>=
 \begin{page}{RadixExpansionXmpPage}{RadixExpansion}
 \beginscroll
-
-It possible to expand numbers in general bases.
-
+It is possible to expand numbers in general bases.
 \labelSpace{2pc}
 \xtc{
 Here we expand \spad{111} in base \spad{5}.
@@ -19102,10 +19110,11 @@ address@hidden for more information and help.
 @
 \section{roman.ht}
 \pagehead{RomanNumeralXmpPage}{roman.ht}{RomanNumeral}
+\pagepic{ps/v71romannumeralxmppage.eps}{RomanNumeralXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
 <<roman.ht>>=
 \begin{page}{RomanNumeralXmpPage}{RomanNumeral}
 \beginscroll
-
 The Roman numeral package was added to Axiom in MCMLXXXVI
 for use in denoting higher order derivatives.
 
@@ -19461,13 +19470,14 @@ For more information about lists, see
 @
 \section{sint.ht}
 \pagehead{SingleIntegerXmpPage}{sint.ht}{SingleInteger}
-\pageto{notitle}{ugTypesDeclarePage}
-\pageto{notitle}{ugTypesPkgCallPage}
-\pageto{notitle}{ugBrowsePage}
+\pagepic{ps/v71singleintegerxmppage.eps}{SingleIntegerXmpPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Declarations}{ugTypesDeclarePage}
+\pageto{Package Calling and Target Types}{ugTypesPkgCallPage}
+\pageto{Browse}{ugBrowsePage}
 <<sint.ht>>=
 \begin{page}{SingleIntegerXmpPage}{SingleInteger}
 \beginscroll
-
 The \axiomType{SingleInteger} domain is intended to provide support in
 Axiom for machine integer arithmetic.  It is generally much faster
 than (bignum) \axiomType{Integer} arithmetic but suffers from a
@@ -19494,15 +19504,15 @@ by using \spadfunFrom{min}{SingleInteger} and 
\spadfunFrom{max}{SingleInteger}.
 \xtc{
 To avoid confusion with \axiomType{Integer}, which is the default
 type for integers, you usually need to work with declared variables
-(\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} 
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare}) \ldots
+(\downlink{``Declarations''}{ugTypesDeclarePage} 
+in Section 2.3\ignore{ugTypesDeclare}) \ldots
 }{
 \spadpaste{a := 1234 :: SingleInteger \bound{a}}
 }
 \xtc{
 or use package calling
-(\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+(\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage} 
+in Section 2.9\ignore{ugTypesPkgCall}).
 }{
 \spadpaste{b := 124\$SingleInteger \bound{b}}
 }
@@ -19560,8 +19570,7 @@ if negative.
 Many other operations are available for small integers, including
 many of those provided for \axiomType{Integer}.
 To see the other operations, use the Browse Hyperdoc facility
-(\downlink{``\ugBrowseTitle''}{ugBrowsePage} in Section 
-\ugBrowseNumber\ignore{ugBrowse}).
+(\downlink{``Browse''}{ugBrowsePage} in Section 14\ignore{ugBrowse}).
 \showBlurb{SingleInteger}.
 \endscroll
 \autobuttons
@@ -19625,10 +19634,10 @@ coefficients.
 }
  
 For more information on related topics, see
-\downlink{``\ugTypesWritingModesTitle''}{ugTypesWritingModesPage} 
-in Section \ugTypesWritingModesNumber\ignore{ugTypesWritingModes},
-\downlink{``\ugTypesExposeTitle''}{ugTypesExposePage} 
-in Section \ugTypesExposeNumber\ignore{ugTypesExpose}, and
+\downlink{``Modes''}{ugTypesWritingModesPage} 
+in Section 2.2.4\ignore{ugTypesWritingModes},
+\downlink{``Exposing Domains and Packages''}{ugTypesExposePage} 
+in Section 2.11\ignore{ugTypesExpose}, and
 \downlink{`Matrix'}{MatrixXmpPage}\ignore{Matrix}.
 \showBlurb{SquareMatrix}
 \endscroll
@@ -19977,10 +19986,10 @@ The packages \spadtype{StreamFunctions1},
 \spadtype{StreamFunctions3} export some useful stream manipulation
 operations.
 For more information, see
-\downlink{``\ugLangItsTitle''}{ugLangItsPage} in Section 
-\ugLangItsNumber\ignore{ugLangIts},
-\downlink{``\ugProblemSeriesTitle''}{ugProblemSeriesPage} 
-in Section \ugProblemSeriesNumber\ignore{ugProblemSeries},
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts},
+\downlink{``Working with Power Series''}{ugProblemSeriesPage} 
+in Section 8.9\ignore{ugProblemSeries},
 \downlink{`ContinuedFraction'}{ContinuedFractionXmpPage}
 \ignore{ContinuedFraction}, and
 \downlink{`List'}{ListXmpPage}\ignore{List}.
@@ -21288,15 +21297,15 @@ decide on the full type and how to do the 
transformation.
 \spadpaste{u :: UP(b1,?) \free{u}}
 }
 
-See \downlink{``\ugProblemFactorTitle''}{ugProblemFactorPage} in 
-Section \ugProblemFactorNumber\ignore{ugProblemFactor}
+See \downlink{``Polynomial Factorization''}{ugProblemFactorPage} in 
+Section 8.2\ignore{ugProblemFactor}
 for a discussion of the factorization facilities
 in Axiom for univariate polynomials.
 For more information on related topics, see
-\downlink{``\ugIntroVariablesTitle''}{ugIntroVariablesPage} in 
-Section \ugIntroVariablesNumber\ignore{ugIntroVariables},
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in 
-Section \ugTypesConvertNumber\ignore{ugTypesConvert},
+\downlink{``Polynomials''}{ugIntroVariablesPage} in 
+Section 1.9\ignore{ugIntroVariables},
+\downlink{``Conversion''}{ugTypesConvertPage} in 
+Section 2.7\ignore{ugTypesConvert},
 \downlink{`Polynomial'}{PolynomialXmpPage}\ignore{Polynomial},
 \downlink{`MultivariatePolynomial'}{MultivariatePolyXmpPage}
 \ignore{MultivariatePolynomial}, and
@@ -23182,8 +23191,8 @@ with the discussion of system commands and an 
interactive ``undo.''
 Before embarking on the tour, we need to brief those readers
 working interactively with Axiom on some details.
 Others can skip right immediately to
-\downlink{``\ugIntroTypoTitle''}{ugIntroTypoPage} in 
-Section \ugIntroTypoNumber\ignore{ugIntroTypo}.
+\downlink{``Typographic Conventions''}{ugIntroTypoPage} in 
+Section 1.2\ignore{ugIntroTypo}.
 
 \beginmenu
     \menudownlink{{1.1. Starting Up and Winding Down}}{ugIntroStartPage}
@@ -23246,8 +23255,7 @@ expressions, and generate graphics.  If you are in a 
graphical
 windowing environment, it is usually started automatically when Axiom
 begins.  If it is not running, issue \spadsys{)hd} to start it.  We
 discuss the basics of Hyperdoc in
-\downlink{``\ugHyperTitle''}{ugHyperPage} in Chapter
-\ugHyperNumber\ignore{ugHyper}.
+\downlink{``Using Hyperdoc''}{ugHyperPage} in Chapter 3\ignore{ugHyper}.
 
 To interrupt an Axiom computation, hold down the
 \texht{\fbox{\bf Ctrl}}{{\bf Ctrl}} (control) key and press
@@ -23271,8 +23279,8 @@ different machines, operating systems and window 
environments, and
 these differences all affect the physical look of the system.  You can
 also change the way that Axiom behaves via \spadgloss{system commands}
 described later in this chapter and in
-\downlink{``\ugSysCmdTitle''}{ugSysCmdPage} in Appendix
-\ugSysCmdNumber\ignore{ugSysCmd}.  System commands are special
+\downlink{``Axiom System Commands''}{ugSysCmdPage} in Appendix B
+\ignore{ugSysCmd}.  System commands are special
 commands, like \spadcmd{)set}, that begin with a closing parenthesis
 and are used to change your environment.  For example, you can set a
 system variable so that you are not prompted for confirmation when you
@@ -23502,8 +23510,9 @@ This is the result from step number 1.
 Everything in Axiom has a type.
 The type determines what operations you can perform on an object and
 how the object can be used.
-An entire chapter of this book (\downlink{``\ugTypesTitle''}{ugTypesPage} 
-in Chapter \ugTypesNumber\ignore{ugTypes}) is dedicated to
+An entire chapter of this book (
+\downlink{``Using Types and Modes''}{ugTypesPage} 
+in Chapter 2\ignore{ugTypes}) is dedicated to
 the interactive use of types.
 Several of the final chapters discuss how types are built and how
 they are organized in the Axiom library.
@@ -23566,10 +23575,10 @@ variable refers to a value.  To 
\spadglossSee{assign}{assignment} a
 value to a variable, the operator \axiomSyntax{:=} is
 used.\footnote{Axiom actually has two forms of assignment: {\it
 immediate} assignment, as discussed here, and {\it delayed
-assignment}. See \downlink{``\ugLangAssignTitle''}{ugLangAssignPage}
-in Section \ugLangAssignNumber\ignore{ugLangAssign} for details.}  A
-variable initially has no restrictions on the kinds of values to which
-it can refer.
+assignment}. See \downlink{``Immediate and Delayed Assignments''}
+{ugLangAssignPage} in Section 5.1\ignore{ugLangAssign} for details.}
+A variable initially has no restrictions on the kinds of values to
+which it can refer.
 
 \xtc{
 This assignment gives the value \axiom{4} (an integer) to
@@ -23674,8 +23683,8 @@ Objects of one type can usually be ``converted'' to 
objects of several
 other types.  To \spadglossSee{convert}{conversion} an object to a new
 type, use the \axiomSyntax{::} infix operator.\footnote{Conversion is
 discussed in detail in
-\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in Section
-\ugTypesConvertNumber\ignore{ugTypesConvert}.}  For example, to
+\downlink{``Conversion''}{ugTypesConvertPage} in Section
+2.7\ignore{ugTypesConvert}.}  For example, to
 display an object, it is necessary to convert the object to type
 \spadtype{OutputForm}.
 
@@ -23767,13 +23776,11 @@ operations are provided for efficiency reasons.
 \begin{page}{ugIntroMacrosPage}{1.3.7. Some Predefined Macros}
 \beginscroll
 
-Axiom provides several \spadglossSee{macros}{macro}
-for your convenience.\footnote{See 
-\downlink{``\ugUserMacrosTitle''}{ugUserMacrosPage} 
-in Section \ugUserMacrosNumber\ignore{ugUserMacros}
-for a discussion on how to write your own macros.}
-Macros are names
-(or forms) that expand to larger expressions for commonly used values.
+Axiom provides several \spadglossSee{macros}{macro} for your
+convenience.\footnote{See \downlink{``Macros''}{ugUserMacrosPage} in
+Section 6.2\ignore{ugUserMacros} for a discussion on how to write your
+own macros.}  Macros are names (or forms) that expand to larger
+expressions for commonly used values.
 
 \texht{
 \centerline{{\begin{tabular}{ll}}}
@@ -23833,11 +23840,11 @@ is the same as if you had entered
 \end{verbatim}
 
 If you are putting your Axiom statements in an input file
-(see \downlink{``\ugInOutInTitle''}{ugInOutInPage} 
-in Section \ugInOutInNumber\ignore{ugInOutIn}),
+(see \downlink{``Input Files''}{ugInOutInPage} 
+in Section 4.1\ignore{ugInOutIn}),
 you can use indentation to indicate the structure of your program.
-(see \downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} 
-in Section \ugLangBlocksNumber\ignore{ugLangBlocks}).
+(see \downlink{``Blocks''}{ugLangBlocksPage} 
+in Section 5.2\ignore{ugLangBlocks}).
 
 \endscroll
 \autobuttons
@@ -23905,8 +23912,8 @@ options set from the 3D Control Panel.  The PostScript 
output was
 produced by clicking on the \texht{\fbox{\bf save}}{{\bf save}} 3D
 Control Panel button and then clicking on the \texht{\fbox{\bf
 PS}}{{\bf PS}} button.  See
-\downlink{``\ugProblemNumericTitle''}{ugProblemNumericPage} in Section
-\ugProblemNumericNumber\ignore{ugProblemNumeric} for more details and
+\downlink{``Numeric Functions''}{ugProblemNumericPage} in Section
+8.1\ignore{ugProblemNumeric} for more details and
 examples of Axiom's numeric and graphics capabilities.
 }{
 \graphpaste{draw((x,y) +-> real atan complex(x,y), -\%pi..\%pi, 
@@ -23915,20 +23922,17 @@ examples of Axiom's numeric and graphics capabilities.
 \epsffile[72 72 285 285]{../ps/atan-1.ps}
 }
 
-An exhibit of \Gallery{} is given in the
-center section of this book.
-For a description of the commands and programs that
-produced these figures, see 
-\downlink{``\ugAppGraphicsTitle''}{ugAppGraphicsPage} 
-in Appendix \ugAppGraphicsNumber\ignore{ugAppGraphics}.
-PostScript
-output is available so that Axiom images can be
-printed.\footnote{PostScript is a trademark of Adobe Systems 
-Incorporated, registered in the United States.}
-See \downlink{``\ugGraphTitle''}{ugGraphPage} 
-in Chapter \ugGraphNumber\ignore{ugGraph} for 
-more examples and details about using
-Axiom's graphics facilities.
+An exhibit of \Gallery{} is given in the center section of this book.
+For a description of the commands and programs that produced these
+figures, see 
+\downlink{``Programs for Axiom Images''}{ugAppGraphicsPage} 
+in Appendix G.\ignore{ugAppGraphics}.
+PostScript output is available so that Axiom images can be
+printed.\footnote{PostScript is a trademark of Adobe Systems
+Incorporated, registered in the United States.}  See
+\downlink{``Graphics''}{ugGraphPage} in Chapter 7
+\ignore{ugGraph} for more examples and details about
+using Axiom's graphics facilities.
 
 \endscroll
 \autobuttons
@@ -24161,8 +24165,9 @@ All of the usual arithmetic operations are available.
 Inversion is not available if the modulus is not a prime
 number.
 Modular arithmetic and prime fields are discussed in
-\downlink{``\ugxProblemFinitePrimeTitle''}{ugxProblemFinitePrimePage} 
-in Section \ugxProblemFinitePrimeNumber\ignore{ugxProblemFinitePrime}.
+\downlink{``Modular Arithmetic and Prime Fields''}
+{ugxProblemFinitePrimePage} 
+in Section 8.11.1\ignore{ugxProblemFinitePrime}.
 }{
 \spadpaste{1/y \free{y}}
 }
@@ -24254,8 +24259,8 @@ A \spadgloss{list} is the most commonly used data 
structure in
 Axiom for holding objects all of the same
 type.\footnote{Lists are discussed in 
 \downlink{`List'}{ListXmpPage}\ignore{List} and in
-\downlink{``\ugLangItsTitle''}{ugLangItsPage} 
-in Section \ugLangItsNumber\ignore{ugLangIts}.}
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts}.}
 The name {\it list} is short for ``linked-list of nodes.'' Each
 node consists of a value (\spadfunFrom{first}{List}) and a link
 (\spadfunFrom{rest}{List}) that
@@ -24318,8 +24323,8 @@ A \spadgloss{stream}
 is a structure that (potentially) has an infinite number of
 distinct elements.\footnote{Streams are discussed in
 \downlink{`Stream'}{StreamXmpPage}\ignore{Stream} and in 
-\downlink{``\ugLangItsTitle''}{ugLangItsPage} 
-in Section \ugLangItsNumber\ignore{ugLangIts}.}
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts}.}
 Think of a stream as an ``infinite list'' where elements are
 computed successively.
 
@@ -24554,8 +24559,8 @@ t\free{how t}}
 A {\it record}
 is an example of an inhomogeneous collection
 of objects.\footnote{See 
-\downlink{``\ugTypesRecordsTitle''}{ugTypesRecordsPage} 
-in Section \ugTypesRecordsNumber\ignore{ugTypesRecords} for details.}
+\downlink{``Records''}{ugTypesRecordsPage} 
+in Section 2.4\ignore{ugTypesRecords} for details.}
 A record consists of a set of named {\it selectors} that
 can be used to access its components.
 
@@ -24580,8 +24585,8 @@ Give \axiom{daniel} a raise.
 A {\it union}
 is a data structure used when objects
 have multiple types.\footnote{See 
-\downlink{``\ugTypesUnionsTitle''}{ugTypesUnionsPage} 
-in Section \ugTypesUnionsNumber\ignore{ugTypesUnions} for details.}
+\downlink{``Unions''}{ugTypesUnionsPage} 
+in Section 2.5\ignore{ugTypesUnions} for details.}
 
 \xtc{
 Let \axiom{dog} be either an integer or a string value.
@@ -24597,8 +24602,8 @@ Give \axiom{dog} a name.
 All told, there are over forty different data structures in
 Axiom.
 Using the domain constructors described in 
-\downlink{``\ugDomainsTitle''}{ugDomainsPage} 
-in Chapter \ugDomainsNumber\ignore{ugDomains}, you
+\downlink{``Domains''}{ugDomainsPage} 
+in Chapter 13\ignore{ugDomains}, you
 can add your own data structure or extend an existing one.
 Choosing the right data structure for your application may be the key
 to obtaining good performance.
@@ -24646,13 +24651,13 @@ facilities, see 
\downlink{`Matrix'}{MatrixXmpPage}\ignore{Matrix},
 \downlink{`Permanent'}{PermanentXmpPage}\ignore{Permanent},
 \downlink{`SquareMatrix'}{SqMatrixXmpPage}\ignore{SquareMatrix}, 
 \downlink{`Vector'}{VectorXmpPage}\ignore{Vector},
-\downlink{``\ugProblemEigenTitle''}{ugProblemEigenPage} 
-in Section \ugProblemEigenNumber\ignore{ugProblemEigen}
+\downlink{``Computation of Eigenvalues and Eigenvectors''}
+{ugProblemEigenPage} in Section 8.4\ignore{ugProblemEigen}
 \texht{(computation of eigenvalues and
 eigenvectors)}{}, and
-\downlink{``\ugProblemLinPolEqnTitle''}{ugProblemLinPolEqnPage} 
-in Section \ugProblemLinPolEqnNumber\ignore{ugProblemLinPolEqn}\
-texht{(solution of linear and
+\downlink{``Solution of Linear and Polynomial Equations''}
+{ugProblemLinPolEqnPage} in Section 8.5\ignore{ugProblemLinPolEqn}
+\texht{(solution of linear and
 polynomial equations)}{}.}
 
 \xtc{
@@ -24663,8 +24668,8 @@ where each of the inner lists represents a row of the 
matrix.
 }
 \xtc{
 The ``collections'' construct (see 
-\downlink{``\ugLangItsTitle''}{ugLangItsPage} 
-in Section \ugLangItsNumber\ignore{ugLangIts}) is
+\downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts}) is
 useful for creating matrices whose entries are given by formulas.
 }{
 \spadpaste{matrix([[1/(i + j - x) for i in 1..4] for j in 1..4]) 
@@ -24722,8 +24727,8 @@ For many applications, you need to interact with the 
interpreter and
 write some Axiom programs to tackle your application.  Axiom allows
 you to write functions interactively, thereby effectively extending
 the system library.  Here we give a few simple examples, leaving the
-details to \downlink{``\ugUserTitle''}{ugUserPage} in Chapter
-\ugUserNumber\ignore{ugUser}.
+details to \downlink{``User-Defined Functions, Macros and Rules''}
+{ugUserPage} in Chapter 6\ignore{ugUser}.
 
 We begin by looking at several ways that you can define the
 ``factorial'' function in Axiom.  The first way is to give a
@@ -24793,8 +24798,8 @@ above because it highly optimizes the recurrence 
relation definition of
 
 You are not limited to one-line functions in Axiom.
 If you place your function definitions in {\bf .input} files
-(see \downlink{``\ugInOutInTitle''}{ugInOutInPage} 
-in Section \ugInOutInNumber\ignore{ugInOutIn}), you can have
+(see \downlink{``Input Files''}{ugInOutInPage} 
+in Section 4.1\ignore{ugInOutIn}), you can have
 multi-line functions that use indentation for grouping.
 
 Given \axiom{n} elements, \axiomFun{diagonalMatrix} creates an
@@ -25002,8 +25007,8 @@ To find the limit of an expression \axiom{f} as a real 
variable
 \axiom{x} tends to a limit value \axiom{a}, enter \axiom{limit(f, x=a)}.
 Use \axiomFun{complexLimit} if the variable is complex.
 Additional information and examples of limits are in
-\downlink{``\ugProblemLimitsTitle''}{ugProblemLimitsPage} 
-in Section \ugProblemLimitsNumber\ignore{ugProblemLimits}.
+\downlink{``Limits''}{ugProblemLimitsPage} 
+in Section 8.6\ignore{ugProblemLimits}.
 
 \xtc{
 You can take limits of functions with parameters.
@@ -25070,8 +25075,8 @@ to something else.
 For the purposes of this book, we have used this system command to display
 fewer than ten terms.
 For more information about working with series, see
-\downlink{``\ugProblemSeriesTitle''}{ugProblemSeriesPage} 
-in Section \ugProblemSeriesNumber\ignore{ugProblemSeries}.
+\downlink{``Working with Power Series''}{ugProblemSeriesPage} 
+in Section 8.9\ignore{ugProblemSeries}.
 
 \xtc{
 You can convert a functional expression to a power series by using the
@@ -25377,8 +25382,8 @@ handle some of them.
 }
 
 More examples of Axiom's integration capabilities are discussed in
-\downlink{``\ugProblemIntegrationTitle''}{ugProblemIntegrationPage} 
-in Section \ugProblemIntegrationNumber\ignore{ugProblemIntegration}.
+\downlink{``Integration''}{ugProblemIntegrationPage} 
+in Section 8.8\ignore{ugProblemIntegration}.
 
 \endscroll
 \autobuttons
@@ -25567,8 +25572,8 @@ system, issue operating system commands and leave 
Axiom.  For example,
 \spadsys{)system} is used to issue commands to the operating system
 from Axiom.  Here is a brief description of some of these commands.
 For more information on specific commands, see
-\downlink{``\ugSysCmdTitle''}{ugSysCmdPage} in Appendix
-\ugSysCmdNumber\ignore{ugSysCmd}.
+\downlink{``Axiom System Commands''}{ugSysCmdPage} in Appendix B
+\ignore{ugSysCmd}.
 
 Perhaps the most important user command is the \spadsys{)clear all}
 command that initializes your environment.  Every section and
@@ -26073,8 +26078,8 @@ wrongfully applying algorithms that presume that the 
ring axioms hold.
 
 
 Enough on categories. To learn more about them, see
-\downlink{``\ugCategoriesTitle''}{ugCategoriesPage} 
-in Chapter \ugCategoriesNumber\ignore{ugCategories}.
+\downlink{``Categories''}{ugCategoriesPage} 
+in Chapter 12\ignore{ugCategories}.
 We now return to our discussion of domains.
 
 Domains \spadgloss{export} a set of operations to make them available
@@ -26116,8 +26121,8 @@ convert an object from \axiomType{Polynomial(Integer)} 
to
 \axiomType{Polynomial(Float)}, Axiom builds the package
 \axiomType{PolynomialFunctions2(Integer,Float)} in order to create the
 required conversion function.  (This happens ``behind the scenes'' for
-you: see \downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in
-Section \ugTypesConvertNumber\ignore{ugTypesConvert} for details on
+you: see \downlink{``Conversion''}{ugTypesConvertPage} in
+Section 2.7\ignore{ugTypesConvert} for details on
 how to convert objects.)
 
 Axiom categories, domains and packages and all their contained
@@ -26148,8 +26153,8 @@ their functions and how to write your own functions.
 %
 
 We have already seen in \texht{the last
-section}{\downlink{``\ugTypesBasicTitle''}{ugTypesBasicPage} in
-Section \ugTypesBasicNumber\ignore{ugTypesBasic}} several examples of
+section}{\downlink{``The Basic Idea''}{ugTypesBasicPage} in
+Section 2.1\ignore{ugTypesBasic}} several examples of
 types.  Most of these examples had either no arguments (for example,
 \axiomType{Integer}) or one argument (for example,
 \axiomType{Polynomial (Integer)}).  In this section we give details
@@ -26165,15 +26170,15 @@ You need to do so when you declare variables.
 }
 \xtc{
 You need to do so when you declare functions
-(\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} 
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare}),
+(\downlink{``Declarations''}{ugTypesDeclarePage} 
+in Section 2.3\ignore{ugTypesDeclare}),
 }{
 \spadpaste{f : Integer -> String}
 }
 \xtc{
 You need to do so when you convert an object from one type to another
-(\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}).
+(\downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert}).
 }{
 \spadpaste{factor(2 :: Complex(Integer))}
 }
@@ -26183,8 +26188,8 @@ in Section 
\ugTypesConvertNumber\ignore{ugTypesConvert}).
 }
 \xtc{
 You need to do so when you give computation target type information
-(\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+(\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage} 
+in Section 2.9\ignore{ugTypesPkgCall}).
 }{
 \spadpaste{(2 = 3)@Boolean}
 }
@@ -26275,8 +26280,8 @@ then enclose the whole type expression with parentheses.
 }
 \xtc{
 If you supply computation target type information
-(\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall})
+(\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage} 
+in Section 2.9\ignore{ugTypesPkgCall})
 then you should enclose the argument in parentheses.
 }{
 \spadpaste{(2/3)@Fraction(Polynomial(Integer))}
@@ -26365,11 +26370,10 @@ integer that is the dimension of a square matrix).  
This rules out,
 for example, the two \axiomType{SquareMatrix} expressions.
 
 Modes can be used for declarations
-(\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} 
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare})
-and conversions
-(\downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert}).
+(\downlink{``Declarations''}{ugTypesDeclarePage} 
+in Section 2.3\ignore{ugTypesDeclare}) and conversions
+(\downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert}).
 However, you cannot use a mode for package calling or giving target
 type information.
 
@@ -26429,8 +26433,8 @@ abbreviations.  For a specific constructor, use 
\spadcmd{)abbreviation
 query}.  You can also use the \spadcmd{)what} system command to see
 the names and abbreviations of constructors.  For more information
 about \spadcmd{)what}, see
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage} in Section
-\ugSysCmdwhatNumber\ignore{ugSysCmdwhat}.
+\downlink{``)what''}{ugSysCmdwhatPage} in Section B.28
+\ignore{ugSysCmdwhat}.
 \xtc{
 \spadcmd{)abbreviation query} can be
 abbreviated (no pun intended) to \spadcmd{)abb q}.
@@ -26482,13 +26486,13 @@ You can always combine a declaration with an 
assignment.
 When you do, it is equivalent to first giving a declaration statement,
 then giving an assignment.
 For more information on assignment, see
-\downlink{``\ugIntroAssignTitle''}{ugIntroAssignPage} 
-in Section \ugIntroAssignNumber\ignore{ugIntroAssign} and
-\downlink{``\ugLangAssignTitle''}{ugLangAssignPage} 
-in Section \ugLangAssignNumber\ignore{ugLangAssign}.
+\downlink{``Symbols, Variables, Assignments, and Declarations''}
+{ugIntroAssignPage} in Section 1.3.4\ignore{ugIntroAssign} and
+\downlink{``Immediate and Delayed Assignments''}{ugLangAssignPage} 
+in Section 5.1\ignore{ugLangAssign}.
 To see how to declare your own functions, see
-\downlink{``\ugUserDeclareTitle''}{ugUserDeclarePage} 
-in Section \ugUserDeclareNumber\ignore{ugUserDeclare}.
+\downlink{``Declaring the Type of Functions''}{ugUserDeclarePage} 
+in Section 6.4\ignore{ugUserDeclare}.
 
 \xtc{
 This declares one variable to have a type.
@@ -26559,8 +26563,8 @@ This is a complex object with polynomial real and 
imaginary parts.
 \xtc{
 This is a polynomial with complex integer coefficients.
 The objects are convertible from one to the other.
-See \downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} 
-in Section \ugTypesConvertNumber\ignore{ugTypesConvert} for more 
+See \downlink{``Conversion''}{ugTypesConvertPage} 
+in Section 2.7\ignore{ugTypesConvert} for more 
 information.
 }{
 \spadpaste{g : POLY COMPLEX ? := (x + y*\%i)**2}
@@ -26904,10 +26908,8 @@ Here the retraction fails.
 \begin{page}{ugTypesUnionsWSelPage}{2.5.2. Unions With Selectors}
 \beginscroll
 
-Like records (
-\downlink{``\ugTypesRecordsTitle''}{ugTypesRecordsPage} 
-in Section \ugTypesRecordsNumber\ignore{ugTypesRecords}),
-you can write \pspadtype{Union} types
+Like records ( \downlink{``Records''}{ugTypesRecordsPage} in Section
+2.4\ignore{ugTypesRecords}), you can write \pspadtype{Union} types
 with selectors.
 
 \beginImportant
@@ -26933,8 +26935,8 @@ integer {\it and} a float {\it and} a string.  An 
object of type
 {\it or} a float {\it or} a string.
 
 Here is a version of the \userfun{sayBranch} function (cf.
-\downlink{``\ugTypesUnionsWOSelTitle''}{ugTypesUnionsWOSelPage} 
-in Section \ugTypesUnionsWOSelNumber\ignore{ugTypesUnionsWOSel}) 
+\downlink{``Unions Without Selectors''}{ugTypesUnionsWOSelPage} 
+in Section 2.5.1\ignore{ugTypesUnionsWOSel}) 
 that works with a union with selectors.
 It displays a message stating in which branch of the \pspadtype{Union} the
 object lies.
@@ -27140,8 +27142,8 @@ argument type have commutative multiplication, whereas
 that its argument belong to the category \axiomType{IntegralDomain} and
 \axiomType{Complex} requires that its argument belong to
 \axiomType{CommutativeRing}. See
-\downlink{``\ugTypesBasicTitle''}{ugTypesBasicPage} 
-in Section \ugTypesBasicNumber\ignore{ugTypesBasic}
+\downlink{``The Basic Idea''}{ugTypesBasicPage} 
+in Section 2.1\ignore{ugTypesBasic}
 for a brief discussion of categories.}
 The \axiomType{Integer} level did not move anywhere
 because it does not allow any arguments.
@@ -27335,8 +27337,8 @@ Nevertheless, there are times when you need to help it 
along by
 providing hints (or even orders!) to get Axiom to do what
 you want.
 
-We saw in \downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} 
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare} that 
+We saw in \downlink{``Declarations''}{ugTypesDeclarePage} 
+in Section 2.3\ignore{ugTypesDeclare} that 
 declarations using types
 and modes control the type of the results produced.
 For example, we can either produce a complex object with
@@ -27403,8 +27405,9 @@ For example, to call the ``minimum'' function from 
\axiomType{DoubleFloat}
 on two integers, you could write \axiom{min(4,89)\$DoubleFloat}.
 Another use of package calling is to tell Axiom to use a library
 function rather than a function you defined.
-We discuss this in \downlink{``\ugUserUseTitle''}{ugUserUsePage} 
-in Section \ugUserUseNumber\ignore{ugUserUse}.
+We discuss this in 
+\downlink{``How Axiom Determines What Function to Use''}{ugUserUsePage} 
+in Section 6.9\ignore{ugUserUse}.
 
 Sometimes rather than specifying where an operation comes from, you just
 want to say what type the result should be.
@@ -27620,8 +27623,8 @@ either
 operations without doing
 anything special) or it is {\it hidden} (meaning you have to either
 package call
-(see \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall})
+(see \downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage} 
+in Section 2.9\ignore{ugTypesPkgCall})
 the operations it contains or explicitly expose it to use the
 operations).
 The initial exposure status for a constructor is set in the
@@ -27691,8 +27694,8 @@ default environment.
 
 It is more likely that you would want to expose or hide individual
 constructors.  In
-\downlink{``\ugUserTriangleTitle''}{ugUserTrianglePage} in Section
-\ugUserTriangleNumber\ignore{ugUserTriangle} we use several operations
+\downlink{``A Famous Triangle''}{ugUserTrianglePage} in Section
+6.19\ignore{ugUserTriangle} we use several operations
 from \axiomType{OutputForm}, a domain usually hidden.  To avoid
 package calling every operation from \axiomType{OutputForm}, we expose
 the domain and let Axiom conclude that those operations should be
@@ -27722,8 +27725,8 @@ drop constructor OutputForm \bound{setexposedrop}} }
 
 Finally, exposure is done on a frame-by-frame basis.  A
 \spadgloss{frame} (see
-\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage} in Section
-\ugSysCmdframeNumber\ignore{ugSysCmdframe}) is one of possibly several
+\downlink{``)frame''}{ugSysCmdframePage} in Section B.11
+\ignore{ugSysCmdframe}) is one of possibly several
 logical Axiom workspaces within a physical one, each having its own
 environment (for example, variables and function definitions).  If you
 have several Axiom workspace windows on your screen, they are all
@@ -27751,8 +27754,8 @@ that you can use for getting more information about 
domains,
 packages, categories, and operations.
 The most powerful Axiom facility for getting information about
 constructors and operations is the \Browse{} component of Hyperdoc.
-This is discussed in \downlink{``\ugBrowseTitle''}{ugBrowsePage} 
-in Chapter \ugBrowseNumber\ignore{ugBrowse}.
+This is discussed in \downlink{``Browse''}{ugBrowsePage} 
+in Chapter 14\ignore{ugBrowse}.
 
 Use the \spadsys{)what} system command to see lists of system objects
 whose name contain a particular substring (uppercase or lowercase is
@@ -27808,8 +27811,8 @@ The primary example of a constructor implementing 
domains
 belonging to \axiomType{ComplexCategory} is \axiomType{Complex}.
 See \downlink{`Complex'}{ComplexXmpPage}\ignore{Complex} 
 for more information on that and see
-\downlink{``\ugUserDeclareTitle''}{ugUserDeclarePage} in 
-Section \ugUserDeclareNumber\ignore{ugUserDeclare} 
+\downlink{``Declaring the Type of Functions''}{ugUserDeclarePage} in 
+Section 6.4\ignore{ugUserDeclare} 
 for more information on function types.
 \endscroll
 \autobuttons
@@ -27920,10 +27923,10 @@ For example, there is no \ReturnButton{} button on 
the top-level menu.
 
 The following keyboard definitions are in effect throughout
 Hyperdoc.
-See \downlink{``\ugHyperScrollTitle''}{ugHyperScrollPage} 
-in Section \ugHyperScrollNumber\ignore{ugHyperScroll} and
-\downlink{``\ugHyperInputTitle''}{ugHyperInputPage} 
-in Section \ugHyperInputNumber\ignore{ugHyperInput}
+See \downlink{``Scroll Bars''}{ugHyperScrollPage} 
+in Section 3.3\ignore{ugHyperScroll} and
+\downlink{``Input Areas''}{ugHyperInputPage} 
+in Section 3.4\ignore{ugHyperInput}
 for some contextual key definitions.
 %
 \indent{0}
@@ -27989,8 +27992,8 @@ They move the visible part of the region up and down 
one page each
 time you press them.
 
 If the Hyperdoc page does not contain an input area
-(see \downlink{``\ugHyperInputTitle''}{ugHyperInputPage} 
-in Section \ugHyperInputNumber\ignore{ugHyperInput}), 
+(see \downlink{``Input Areas''}{ugHyperInputPage} 
+in Section 3.4\ignore{ugHyperInput}), 
 you can also use the
 \texht{\fbox{\bf Home}}{{\bf Home}} and
 \texht{\fbox{$\uparrow$}}{up} and
@@ -28420,8 +28423,8 @@ The file is in your home directory or in the directory 
you
 specified with \spadsys{)cd}.
 \endImportant
 
-In \downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} 
-in Section \ugLangBlocksNumber\ignore{ugLangBlocks}
+In \downlink{``Blocks''}{ugLangBlocksPage} in Section 5.2
+\ignore{ugLangBlocks}
 we discuss using indentation in input files to group statements
 into {\it blocks.}
 
@@ -29057,8 +29060,9 @@ values held by variables.
 
 There is no syntactic form for multiple delayed assignments.
 See the discussion in
-\downlink{``\ugUserDelayTitle''}{ugUserDelayPage} 
-in Section \ugUserDelayNumber\ignore{ugUserDelay}
+\downlink{``Delayed Assignments vs. Functions with No Arguments''}
+{ugUserDelayPage} 
+in Section 6.8\ignore{ugUserDelay}
 about how Axiom differentiates between delayed assignments and
 user functions of no arguments.
 
@@ -29201,8 +29205,8 @@ eval(x**2 - x*y**2,
 }
 \xtc{
 Blocks can be used in the clauses of \axiom{if-then-else}
-expressions (see \downlink{``\ugLangIfTitle''}{ugLangIfPage} 
-in Section \ugLangIfNumber\ignore{ugLangIf}).
+expressions (see \downlink{``if-then-else''}{ugLangIfPage} 
+in Section 5.3\ignore{ugLangIf}).
 }{
 \spadpaste{if h > 3.1 then 1.0 else (z := cos(h); max(z,0.5)) \free{h}}
 }
@@ -29287,8 +29291,8 @@ If the
 \void{}.
 If both clauses are present, the type of the value returned by \axiom{if}
 is obtained by resolving the types of the values of the two clauses.
-See \downlink{``\ugTypesResolveTitle''}{ugTypesResolvePage} 
-in Section \ugTypesResolveNumber\ignore{ugTypesResolve}
+See \downlink{``Resolving Types''}{ugTypesResolvePage} 
+in Section 2.10\ignore{ugTypesResolve}
 for more information.
 
 The predicate must evaluate to, or be convertible to, an object of type
@@ -29310,8 +29314,9 @@ In other contexts you may need to tell Axiom that you 
want
 to test for equality rather than create an equation.
 In those cases, use address@hidden and a target type of
 \axiomType{Boolean}.
-See \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} in Section 
-\ugTypesPkgCallNumber\ignore{ugTypesPkgCall} for more information.
+See \downlink{``Package Calling and Target Types''}
+{ugTypesPkgCallPage} in Section 2.9
+\ignore{ugTypesPkgCall} for more information.
 
 The compound symbol meaning ``not equal'' in Axiom is
 ``\texht{$\sim =$}{\axiom{~=}}''.
@@ -29467,8 +29472,8 @@ message stating the problem and then the following 
message:
 %
 It is still possible that Axiom can evaluate the loop but in
 \spadgloss{interpret-code mode}.
-See \downlink{``\ugUserCompIntTitle''}{ugUserCompIntPage} 
-in Section \ugUserCompIntNumber\ignore{ugUserCompInt} where 
+See \downlink{``Compiling vs. Interpreting''}{ugUserCompIntPage} 
+in Section 6.10\ignore{ugUserCompInt} where 
 this is discussed in terms
 of compiling versus interpreting functions.
 
@@ -29548,8 +29553,8 @@ f() ==
 \xtc{
 When we try \userfun{f} again we get what we wanted.
 See
-\downlink{``\ugUserBlocksTitle''}{ugUserBlocksPage} 
-in Section \ugUserBlocksNumber\ignore{ugUserBlocks}
+\downlink{``Functions Defined with Blocks''}{ugUserBlocksPage} 
+in Section 6.15\ignore{ugUserBlocks}
 for more information.
 }{
 \spadpaste{f() \free{f1}}
@@ -29580,8 +29585,8 @@ That is, \axiom{break} takes no argument.
 \xtc{
 This example is a modification of the last example in
 \texht{the previous section}{
-\downlink{``\ugLangLoopsReturnTitle''}{ugLangLoopsReturnPage} 
-in Section \ugLangLoopsReturnNumber\ignore{ugLangLoopsReturn}}.
+\downlink{``return in Loops''}{ugLangLoopsReturnPage} 
+in Section 5.4.2\ignore{ugLangLoopsReturn}}.
 Instead of using \axiom{return}, we'll use \axiom{break}.
 }{
 \begin{spadsrc}[\bound{f1}]
@@ -29771,8 +29776,8 @@ Scan the rows looking for the first negative element.
 We remark that you can reformulate this example in a better, more
 concise form by using a \axiom{for} clause with \axiom{repeat}.
 See
-\downlink{``\ugLangLoopsForInTitle''}{ugLangLoopsForInPage} 
-in Section \ugLangLoopsForInNumber\ignore{ugLangLoopsForIn}
+\downlink{``for Loops''}{ugLangLoopsForInPage} 
+in Section 5.4.8\ignore{ugLangLoopsForIn}
 for more information.
 }{
 \begin{spadsrc}[\free{m2 r c lastrow lastcol}]
@@ -30234,8 +30239,8 @@ for i in 1..50 repeat
 
 The last example of
 \texht{the previous section}{
-\downlink{``\ugLangLoopsForInPredTitle''}{ugLangLoopsForInPredPage} 
-in Section \ugLangLoopsForInPredNumber\ignore{ugLangLoopsForInPred}}
+\downlink{``Such that Predicates''}{ugLangLoopsForInPredPage} 
+in Section 5.4.13\ignore{ugLangLoopsForInPred}}
 gives an example of
 \spadgloss{nested iteration}: a loop is contained
 in another loop.
@@ -30371,8 +30376,8 @@ or any \axiom{for} clause to the left.
 \beginscroll
 
 All of what we did for loops in 
-\downlink{``\ugLangLoopsTitle''}{ugLangLoopsPage} 
-in Section \ugLangLoopsNumber\ignore{ugLangLoops}
+\downlink{``Loops''}{ugLangLoopsPage} 
+in Section 5.4\ignore{ugLangLoops}
 can be transformed into expressions that create lists
 and streams.
 The \axiom{repeat,} \axiom{break} or \axiom{iterate} words are not used but
@@ -30742,8 +30747,8 @@ This is a use of the ``absolute value'' library 
function for integers.
 \xtc{
 This is an unnamed function that does the same thing, using the
 ``maps-to'' syntax \axiomSyntax{+->} that we discuss in
-\downlink{``\ugUserAnonTitle''}{ugUserAnonPage} 
-in Section \ugUserAnonNumber\ignore{ugUserAnon}.
+\downlink{``Anonymous Functions''}{ugUserAnonPage} 
+in Section 6.17\ignore{ugUserAnon}.
 }{
 \spadpaste{(x +-> if x < 0 then -x else x)(-8)}
 }
@@ -30926,8 +30931,8 @@ If you define a function in the workspace that has the 
same name and number
 of arguments as one in the library, then your definition takes precedence.
 In fact, to get the library function you must
 \spadglossSee{package-call}{package call} it (see 
-\downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}).
+\downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage} 
+in Section 2.9\ignore{ugTypesPkgCall}).
 
 To use a function in Axiom, you apply it to its arguments.
 Most functions are applied by entering the name of the function followed by
@@ -30976,8 +30981,8 @@ Every function in Axiom is identified by
 a \spadgloss{name} and \spadgloss{type}.\footnote{An exception is
 an ``anonymous function''
 discussed in
-\downlink{``\ugUserAnonTitle''}{ugUserAnonPage} 
-in Section \ugUserAnonNumber\ignore{ugUserAnon}.}
+\downlink{``Anonymous Functions''}{ugUserAnonPage} 
+in Section 6.17\ignore{ugUserAnon}.}
 The type of a function is always a mapping of the form
 \spadsig{Source}{Target}
 where \axiom{Source} and \axiom{Target} are types.
@@ -31010,8 +31015,8 @@ but with different functions.
 \begin{page}{ugUserDeclarePage}{6.4. Declaring the Type of Functions}
 \beginscroll
 
-In \downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} 
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare} we 
+In \downlink{``Declarations''}{ugTypesDeclarePage} 
+in Section 2.3\ignore{ugTypesDeclare} we 
 discussed how to declare a variable
 to restrict the kind of values that can be assigned to it.
 In this section we show how to declare a variable that refers to
@@ -31080,8 +31085,8 @@ A current restriction on function declarations is that 
they must
 involve fully specified types (that is, cannot include modes involving
 explicit or implicit \axiomSyntax{?}).
 For more information on declaring things in general, see
-\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} 
-in Section \ugTypesDeclareNumber\ignore{ugTypesDeclare}.
+\downlink{``Declarations''}{ugTypesDeclarePage} 
+in Section 2.3\ignore{ugTypesDeclare}.
 
 \endscroll
 \autobuttons
@@ -31213,8 +31218,8 @@ Here \axiom{x+1} for \axiom{x = "axiom"} makes no sense.
 \spadpaste{g("axiom")\free{g}}
 }
 
-As you will see in \downlink{``\ugCategoriesTitle''}{ugCategoriesPage} 
-in Chapter \ugCategoriesNumber\ignore{ugCategories},
+As you will see in \downlink{``Categories''}{ugCategoriesPage} 
+in Chapter 12\ignore{ugCategories},
 Axiom has a formal idea of categories for what ``makes sense.''
 
 \endscroll
@@ -31260,17 +31265,17 @@ type.  An operation is what domains and packages 
export.  Thus
 \axiomType{Ring} exports one operation \axiomOp{+}.  Every ring also
 exports this operation.  Also, the author of every ring in the system
 is obliged under contract (see
-\downlink{``\ugPackagesAbstractTitle''}{ugPackagesAbstractPage} in
-Section \ugPackagesAbstractNumber\ignore{ugPackagesAbstract}) to
+\downlink{``Abstract Datatypes''}{ugPackagesAbstractPage} in
+Section 11.3\ignore{ugPackagesAbstract}) to
 provide an implementation for this operation.
 
 This chapter is all about functions---how you create them
 interactively and how you apply them to meet your needs.  In
-\downlink{``\ugPackagesTitle''}{ugPackagesPage} in Chapter
-\ugPackagesNumber\ignore{ugPackages} you will learn how to create them
+\downlink{``Packages''}{ugPackagesPage} in Chapter
+11\ignore{ugPackages} you will learn how to create them
 for the Axiom library.  Then in
-\downlink{``\ugCategoriesTitle''}{ugCategoriesPage} in Chapter
-\ugCategoriesNumber\ignore{ugCategories}, you will learn about
+\downlink{``Categories''}{ugCategoriesPage} in Chapter
+12\ignore{ugCategories}, you will learn about
 categories and exported operations.
 
 \endscroll
@@ -31286,8 +31291,9 @@ categories and exported operations.
 {6.8. Delayed Assignments vs. Functions with No Arguments}
 \beginscroll
 
-In \downlink{``\ugLangAssignTitle''}{ugLangAssignPage} in Section 
-\ugLangAssignNumber\ignore{ugLangAssign} we discussed the difference 
+In \downlink{``Immediate and Delayed Assignments''}
+{ugLangAssignPage} in Section 
+5.1\ignore{ugLangAssign} we discussed the difference 
 between immediate and
 delayed assignments.
 In this section we show the difference between delayed
@@ -31362,8 +31368,8 @@ The value \axiom{1.0} is returned for any argument.
 }
 \xtc{
 If you want the library operation, we have to package-call it
-(see \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} 
-in Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall}
+(see \downlink{``Package Calling and Target Types''}{ugTypesPkgCallPage} 
+in Section 2.9\ignore{ugTypesPkgCall}
 for more information).
 }{
 \spadpaste{sin(4.3)\$Float}
@@ -31423,8 +31429,8 @@ creating an object of type 
\axiomType{Fraction(Integer)}.
 \item[8. ] No \axiomOp{+} for arguments of types \axiomType{Variable(x)} 
 and \axiomType{Fraction(Integer)} are found in either domain.
 \item[9. ] Axiom resolves
-(see \downlink{``\ugTypesResolveTitle''}{ugTypesResolvePage} 
-in Section \ugTypesResolveNumber\ignore{ugTypesResolve})
+(see \downlink{``Resolving Types''}{ugTypesResolvePage} 
+in Section 2.10\ignore{ugTypesResolve})
 the types and gets \axiomType{Polynomial (Fraction (Integer))}.
 \item[10. ] The \axiom{x} and the \axiom{2/3} are converted to objects 
 of this type and \axiomOp{+} is applied, yielding the answer, an object 
@@ -31501,8 +31507,8 @@ for var in ['x,'y,'z] repeat
 
 Sometimes you can help a function to compile by using an extra
 conversion or by using \axiom{pretend}.  \spadkey{pretend} See
-\downlink{``\ugTypesSubdomainsTitle''}{ugTypesSubdomainsPage} in
-Section \ugTypesSubdomainsNumber\ignore{ugTypesSubdomains} for
+\downlink{``Subdomains Again''}{ugTypesSubdomainsPage} in
+Section 2.8\ignore{ugTypesSubdomains} for
 details.
 
 When a function is compilable, you have the choice of whether it is
@@ -31698,8 +31704,8 @@ functions and compiled.
 \xtc{
 Let's recall the definition of \userfun{eleven} from
 \texht{the previous section}{
-\downlink{``\ugUserPieceBasicTitle''}{ugUserPieceBasicPage} 
-in Section \ugUserPieceBasicNumber\ignore{ugUserPieceBasic}}.
+\downlink{``A Basic Example''}{ugUserPieceBasicPage} 
+in Section 6.11.1\ignore{ugUserPieceBasic}}.
 }{
 \spadpaste{eleven(n | n < 1) == n + 11\bound{ff0}}
 }
@@ -31802,14 +31808,13 @@ Check it at \axiom{n= 100}.
 
 We have already seen some examples of
 predicates
-(\downlink{``\ugUserPieceBasicTitle''}{ugUserPieceBasicPage} 
-in Section \ugUserPieceBasicNumber\ignore{ugUserPieceBasic}).
+(\downlink{``A Basic Example''}{ugUserPieceBasicPage} 
+in Section 6.11.1\ignore{ugUserPieceBasic}).
 Predicates are \axiomType{Boolean}-valued expressions and Axiom uses them
 for filtering collections
-(see \downlink{``\ugLangItsTitle''}{ugLangItsPage} 
-in Section \ugLangItsNumber\ignore{ugLangIts})
-and for placing
-constraints on function arguments.
+(see \downlink{``Creating Lists and Streams with Iterators''}
+{ugLangItsPage} in Section 5.5\ignore{ugLangIts})
+and for placing constraints on function arguments.
 In this section we discuss their latter usage.
 
 \xtc{
@@ -31946,8 +31951,8 @@ arguments should be cached.
 
 You should also be careful about caching functions that depend on
 free variables.
-See \downlink{``\ugUserFreeLocalTitle''}{ugUserFreeLocalPage} in 
-Section \ugUserFreeLocalNumber\ignore{ugUserFreeLocal}
+See \downlink{``Free and Local Variables''}{ugUserFreeLocalPage} in 
+Section 6.16\ignore{ugUserFreeLocal}
 for an example.
 
 \endscroll
@@ -32043,11 +32048,11 @@ relation, Axiom caches the last \axiom{k} values.}
 If, after computing a value for \userfun{fib}, you ask
 for some larger value, Axiom picks up the cached values
 and continues computing from there.
-See \downlink{``\ugUserFreeLocalTitle''}{ugUserFreeLocalPage} 
-in Section \ugUserFreeLocalNumber\ignore{ugUserFreeLocal}
+See \downlink{``Free and Local Variables''}{ugUserFreeLocalPage} 
+in Section 6.16\ignore{ugUserFreeLocal}
 for an example of a function definition that has this same behavior.
-Also see \downlink{``\ugUserCacheTitle''}{ugUserCachePage} 
-in Section \ugUserCacheNumber\ignore{ugUserCache}
+Also see \downlink{``Caching Previously Computed Results''}
+{ugUserCachePage} in Section 6.12\ignore{ugUserCache}
 for a more general discussion of how you can cache function values.
 
 Recurrence relations can be used for defining recurrence relations
@@ -32239,8 +32244,8 @@ InputForm}.  Thus you can use \axiomFun{function} for
 You need not restrict yourself to functions that only fit on one line
 or are written in a piece-wise manner.
 The body of the function can be a block, as discussed in
-\downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} 
-in Section \ugLangBlocksNumber\ignore{ugLangBlocks}.
+\downlink{``Blocks''}{ugLangBlocksPage} 
+in Section 5.2\ignore{ugLangBlocks}.
 
 \labelSpace{1pc}
 \xtc{
@@ -32515,8 +32520,8 @@ in your functions.  No declaration is needed for this 
situation, but
 be sure to initialize their values.
 
 Be careful if you use free variables and you cache the value of
-your function (see \downlink{``\ugUserCacheTitle''}{ugUserCachePage} 
-in Section \ugUserCacheNumber\ignore{ugUserCache}).
+your function (see \downlink{``Caching Previously Computed Results''}
+{ugUserCachePage} in Section 6.12\ignore{ugUserCache}).
 Caching {\it only} checks if the values of the function arguments
 are the same as in a function call previously seen.
 It does not check if any of the free variables on which the
@@ -32600,8 +32605,8 @@ To conclude this section, we give an iterative 
definition of
 a function that computes Fibonacci numbers.
 This definition approximates the definition into which Axiom
 transforms the recurrence relation definition of \userfun{fib} in
-\downlink{``\ugUserRecurTitle''}{ugUserRecurPage} 
-in Section \ugUserRecurNumber\ignore{ugUserRecur}.
+\downlink{``Recurrence Relations''}{ugUserRecurPage} 
+in Section 6.13\ignore{ugUserRecur}.
 
 \xtc{
 Global variables
@@ -33004,8 +33009,8 @@ operations you probably haven't seen before.
 To make these output operations
 available, we have to \spadgloss{expose} the domain
 \axiomType{OutputForm}.
-See \downlink{``\ugTypesExposeTitle''}{ugTypesExposePage} 
-in Section \ugTypesExposeNumber\ignore{ugTypesExpose} for 
+See \downlink{``Exposing Domains and Packages''}{ugTypesExposePage} 
+in Section 2.11\ignore{ugTypesExpose} for 
 more information about exposing domains
 and packages.
 }{
@@ -33140,9 +33145,8 @@ A list of polynomials.
 }
 \xtc{
 A list of integers from the example in
-\texht{the last section.}{\downlink{``\ugUserTriangleTitle''}
-{ugUserTrianglePage} in Section \ugUserTriangleNumber
-\ignore{ugUserTriangle}.}
+\texht{the last section.}{\downlink{``A Famous Triangle''}
+{ugUserTrianglePage} in Section 6.19\ignore{ugUserTriangle}.}
 }{
 \spadpaste{pal? [1,6,15,20,15,6,1] \free{pal palAux}}
 }
@@ -33634,8 +33638,8 @@ The general format for drawing a function defined by a 
formula
 \centerline{{{\tt draw(f(x), x = a..b, {\it options})}}}
 where \axiom{a..b} defines the range of \axiom{x}, and where
 {\it options} prescribes zero or more options as described in
-\downlink{``\ugGraphTwoDOptionsTitle''}{ugGraphTwoDOptionsPage} 
-in Section \ugGraphTwoDOptionsNumber\ignore{ugGraphTwoDOptions}.
+\downlink{``Two-Dimensional Options''}{ugGraphTwoDOptionsPage} 
+in Section 7.1.4\ignore{ugGraphTwoDOptions}.
 An example of an option is \axiom{curveColor == bright red().}
 An alternative format involving functions \axiom{f} and \axiom{g}
 is also available.
@@ -33719,8 +33723,8 @@ parametric formulas \axiom{x = f(t)} and \axiom{y = 
g(t)} is:
 where \axiom{a..b} defines the range of the independent variable \axiom{t},
 and where {\it options} prescribes zero or more options as
 described in 
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage} 
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage} 
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
 An example of an option is \axiom{curveColor == bright red().}
 \endImportant
 
@@ -33824,8 +33828,8 @@ A {\tt range} option is always given to designate a 
bounding
 rectangular region of the plane \texht{$a \leq x \leq b, c \leq y
 \leq d$}{a <= x <= b, c <= y <= d}.
 Zero or more additional options as described in
-\downlink{``\ugGraphTwoDOptionsTitle''}{ugGraphTwoDOptionsPage} 
-in Section \ugGraphTwoDOptionsNumber\ignore{ugGraphTwoDOptions} 
+\downlink{``Two-Dimensional Options''}{ugGraphTwoDOptionsPage} 
+in Section 7.1.4\ignore{ugGraphTwoDOptions} 
 may be given.
 \endImportant
 
@@ -33923,10 +33927,10 @@ clip == [-2*\%pi..2*\%pi,-\%pi..\%pi], unit == 
[1.0,1.0])}
 \psXtc{
 Option {\tt curveColor} sets the color of the graph curves or 
 lines to be the indicated palette color
-(see \downlink{``\ugGraphColorTitle''}{ugGraphColorPage} in Section 
-\ugGraphColorNumber\ignore{ugGraphColor} and 
-\downlink{``\ugGraphColorPaletteTitle''}{ugGraphColorPalettePage} 
-in Section \ugGraphColorPaletteNumber\ignore{ugGraphColorPalette}).
+(see \downlink{``Color''}{ugGraphColorPage} in Section 
+7.1.5\ignore{ugGraphColor} and 
+\downlink{``Palette''}{ugGraphColorPalettePage} 
+in Section 7.1.6\ignore{ugGraphColorPalette}).
 }{
 \graphpaste{draw(sin(x),x=-\%pi..\%pi, curveColor == bright red())}
 }{
@@ -33937,10 +33941,10 @@ in Section 
\ugGraphColorPaletteNumber\ignore{ugGraphColorPalette}).
 Option {\tt pointColor}
 sets the color of the graph points to the indicated
 palette color
-(see \downlink{``\ugGraphColorTitle''}{ugGraphColorPage} 
-in Section \ugGraphColorNumber\ignore{ugGraphColor} and 
-\downlink{``\ugGraphColorPaletteTitle''}{ugGraphColorPalettePage} 
-in Section \ugGraphColorPaletteNumber\ignore{ugGraphColorPalette}).
+(see \downlink{``Color''}{ugGraphColorPage} 
+in Section 7.1.5\ignore{ugGraphColor} and 
+\downlink{``Palette''}{ugGraphColorPalettePage} 
+in Section 7.1.6\ignore{ugGraphColorPalette}).
 }{
 \graphpaste{draw(sin(x),x=-\%pi..\%pi, pointColor == pastel yellow())}
 }{
@@ -33986,8 +33990,8 @@ in which the graph
 is plotted.
 The default is to use the Cartesian coordinate system.
 For more details, see 
-\downlink{``\ugGraphCoordTitle''}{ugGraphCoordPage} in 
-Section \ugGraphCoordNumber\ignore{ugGraphCoord} \texht{.}{or
+\downlink{``Coordinate System Transformations''}{ugGraphCoordPage} in 
+Section 7.2.7\ignore{ugGraphCoord} \texht{.}{or
 \axiomType{CoordinateSystems}.}
 }{
 \graphpaste{draw(curve(sin(5*t),t),t=0..2*\%pi, coordinates == polar)}
@@ -34888,8 +34892,8 @@ The general format for drawing a surface defined by a 
formula
 where \axiom{a..b} and \axiom{c..d} define the range of \axiom{x}
 and \axiom{y}, and where {\it options} prescribes zero or more
 options as described in 
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage} 
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage} 
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
 An example of an option is \axiom{title == "Title of Graph".}
 An alternative format involving a function \axiom{f} is also
 available.
@@ -34955,8 +34959,8 @@ parametric formulas \axiom{x = f(t)}, \axiom{y = g(t)}, 
and
 where \axiom{a..b} defines the range of the independent variable
 \axiom{t}, and where {\it options} prescribes zero or more options
 as described in 
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage} 
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage} 
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
 An example of an option is \axiom{title == "Title of Graph".}
 An alternative format involving functions \axiom{f}, \axiom{g} and
 \axiom{h} is also available.
@@ -35029,8 +35033,8 @@ u = a..b, v = c..d, {\it options})}}}
 where \axiom{a..b} and \axiom{c..d} define the range of the
 independent variables \axiom{u} and \axiom{v}, and where
 {\it options} prescribes zero or more options as described in
-\downlink{``\ugGraphThreeDOptionsTitle''}{ugGraphThreeDOptionsPage} 
-in Section \ugGraphThreeDOptionsNumber\ignore{ugGraphThreeDOptions}.
+\downlink{``Three-Dimensional Options''}{ugGraphThreeDOptionsPage} 
+in Section 7.2.4\ignore{ugGraphThreeDOptions}.
 An example of an option is \axiom{title == "Title of Graph".}
 An alternative format involving functions \axiom{f}, \axiom{g} and
 \axiom{h} is also available.
@@ -35043,8 +35047,8 @@ parabolic cylindrical coordinate system option.
 The values of the functions supplied to \axiomFun{surface} are
 interpreted in coordinates as given by a {\tt coordinates} option,
 here as parabolic cylindrical coordinates (see
-\downlink{``\ugGraphCoordTitle''}{ugGraphCoordPage} 
-in Section \ugGraphCoordNumber\ignore{ugGraphCoord}).
+\downlink{``Coordinate System Transformations''}{ugGraphCoordPage} 
+in Section 7.2.7\ignore{ugGraphCoord}).
 }{
 \graphpaste{draw(surface(u*cos(v), u*sin(v), v*cos(u)), 
 u=-4..4, v=0..\%pi, coordinates== parabolicCylindrical)}
@@ -35186,8 +35190,8 @@ color also depends on the value of the function.
 Normally the Cartesian coordinate system is used.
 To change this, use the {\tt coordinates} option.
 For details, see 
-\downlink{``\ugGraphCoordTitle''}{ugGraphCoordPage} 
-in Section \ugGraphCoordNumber\ignore{ugGraphCoord}.
+\downlink{``Coordinate System Transformations''}{ugGraphCoordPage} 
+in Section 7.2.7\ignore{ugGraphCoord}.
 %
 %
 \xtc{
@@ -36506,19 +36510,20 @@ with Axiom.
 
 @
 \pagehead{ugProblemNumericPage}{ug08.ht}{Numeric Functions}
-\pageto{notitle}{ugIntroPage}
-\pageto{notitle}{FloatXmpPage}
-\pageto{notitle}{DoubleFloatXmpPage}
+\pagepic{ps/v71ugproblemnumericpage.eps}{ugProblemNumericPage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{An Overview of Axiom}{ugIntroPage}
+\pageto{Float}{FloatXmpPage}
+\pageto{DoubleFloat}{DoubleFloatXmpPage}
 <<ug08.ht>>=
 \begin{page}{ugProblemNumericPage}{8.1. Numeric Functions}
 \beginscroll
-%
 Axiom provides two basic floating-point types: \axiomType{Float} and
 \axiomType{DoubleFloat}.  This section describes how to use numerical
 operations defined on these types and the related complex types.
 
-As we mentioned in \downlink{``\ugIntroTitle''}{ugIntroPage} in
-Chapter \ugIntroNumber\ignore{ugIntro}, the \axiomType{Float} type is
+As we mentioned in \downlink{``An Overview of Axiom''}{ugIntroPage} in
+Chapter 1\ignore{ugIntro}, the \axiomType{Float} type is
 a software implementation of floating-point numbers in which the
 exponent and the significand may have any number of digits.  See
 \downlink{`Float'}{FloatXmpPage}\ignore{Float} for detailed
@@ -37160,8 +37165,8 @@ extensions of these fields.
 \xtc{
 Convert this to have coefficients in the finite field with
 \texht{$19^3$}{\axiom{19**3}} elements.  See
-\downlink{``\ugProblemFiniteTitle''}{ugProblemFinitePage} in Section
-\ugProblemFiniteNumber\ignore{ugProblemFinite} for more information
+\downlink{``Finite Fields''}{ugProblemFinitePage} in Section
+8.11\ignore{ugProblemFinite} for more information
 about finite fields.
 }{
 \spadpaste{factor(u :: POLY FFX(PF 19,3)) \free{u}}
@@ -37283,10 +37288,12 @@ In this section we show you how to work with one root 
or all roots
 of a polynomial.
 These roots are represented symbolically (as opposed to being
 numeric approximations).
-See \downlink{``\ugxProblemOnePolTitle''}{ugxProblemOnePolPage} 
-in Section \ugxProblemOnePolNumber\ignore{ugxProblemOnePol} and 
-\downlink{``\ugxProblemPolSysTitle''}{ugxProblemPolSysPage} in 
-Section \ugxProblemPolSysNumber\ignore{ugxProblemPolSys} for
+See \downlink{``Solution of a Single Polynomial Equation''}
+{ugxProblemOnePolPage} 
+in Section 8.5.2\ignore{ugxProblemOnePol} and 
+\downlink{``Solution of Systems of Polynomial Equations''}
+{ugxProblemPolSysPage} in 
+Section 8.5.3\ignore{ugxProblemPolSys} for
 information about solving for the roots of one or more
 polynomials.
 
@@ -37422,8 +37429,9 @@ its trace and norm.
 \xtc{
 Corresponding to the pair of operations
 \axiomFun{rootOf}/\axiomFun{zeroOf} in
-\downlink{``\ugxProblemOnePolTitle''}{ugxProblemOnePolPage} in Section
-\ugxProblemOnePolNumber\ignore{ugxProblemOnePol}, there is an
+\downlink{``Solution of a Single Polynomial Equation''}
+{ugxProblemOnePolPage} in Section
+8.5.2\ignore{ugxProblemOnePol}, there is an
 operation \axiomFun{zerosOf} that, like \axiomFun{rootsOf}, computes
 all the roots of a given polynomial, but which expresses some of them
 in terms of radicals.
@@ -37569,8 +37577,8 @@ In this section we discuss the Axiom facilities for 
solving
 systems of linear equations, finding the roots of polynomials and
 solving systems of polynomial equations.
 For a discussion of the solution of differential equations, see
-\downlink{``\ugProblemDEQTitle''}{ugProblemDEQPage} in 
-Section \ugProblemDEQNumber\ignore{ugProblemDEQ}.
+\downlink{``Solution of Differential Equations''}{ugProblemDEQPage} in 
+Section 8.10\ignore{ugProblemDEQ}.
 
 \beginmenu
     \menudownlink{{8.5.1. Solution of Systems of Linear Equations}}
@@ -37814,8 +37822,8 @@ Instead of a polynomial equation, one has to give a 
list of
 equations and instead of a single variable to solve for, a list of
 variables.
 For solutions of single equations see 
-\downlink{``\ugxProblemOnePolTitle''}{ugxProblemOnePolPage} in 
-Section \ugxProblemOnePolNumber\ignore{ugxProblemOnePol}.
+\downlink{``Solution of a Single Polynomial Equation''}
+{ugxProblemOnePolPage} in Section 8.5.2\ignore{ugxProblemOnePol}.
 
 %
 \xtc{
@@ -38150,8 +38158,8 @@ Sometimes \axiomFun{integrate} can involve symbolic 
algebraic numbers
 such as those returned by \axiomFunFrom{rootOf}{Expression}.
 To see how to work with these strange generated symbols (such as
 \axiom{\%\%a0}), see 
-\downlink{``\ugxProblemSymRootAllTitle''}{ugxProblemSymRootAllPage} 
-in Section \ugxProblemSymRootAllNumber\ignore{ugxProblemSymRootAll}.
+\downlink{``Using All Roots of a Polynomial''}{ugxProblemSymRootAllPage} 
+in Section 8.3.2\ignore{ugxProblemSymRootAll}.
 
 Definite integration is the process of computing the area between the
 \axiom{x}-axis and the curve of a function \axiom{f(x)}.  The
@@ -38243,8 +38251,9 @@ know what kind of exponents are involved.
 
 For information about solving differential equations in terms of
 power series, see 
-\downlink{``\ugxProblemDEQSeriesTitle''}{ugxProblemDEQSeriesPage} in 
-Section \ugxProblemDEQSeriesNumber\ignore{ugxProblemDEQSeries}.
+\downlink{``Power Series Solutions of Differential Equations''}
+{ugxProblemDEQSeriesPage} in 
+Section 8.10.3\ignore{ugxProblemDEQSeries}.
 
 \beginmenu
   \menudownlink{{8.9.1. Creation of Power Series}}
@@ -38321,22 +38330,21 @@ You can also convert an expression into a series 
expansion.
 This expression creates the series expansion of \axiom{1/log(y)}
 about \axiom{y = 1}.
 For details and more examples, see
-\downlink{``\ugxProblemSeriesConversionsTitle''}
+\downlink{``Converting to Power Series''}
 {ugxProblemSeriesConversionsPage} in Section 
-\ugxProblemSeriesConversionsNumber\ignore{ugxProblemSeriesConversions}.
+8.9.5\ignore{ugxProblemSeriesConversions}.
 }{
 \spadpaste{series(1/log(y),y = 1)}
 }
 
 You can create power series with more general coefficients.
 You normally accomplish this via a type declaration (see
-\downlink{``\ugTypesDeclareTitle''}{ugTypesDeclarePage} in Section 
-\ugTypesDeclareNumber\ignore{ugTypesDeclare}).
+\downlink{``Declarations''}{ugTypesDeclarePage} in Section 
+2.3\ignore{ugTypesDeclare}).
 See 
-\downlink{``\ugxProblemSeriesFunctionsTitle''}
+\downlink{``Functions on Power Series''}
 {ugxProblemSeriesFunctionsPage}
-in Section \ugxProblemSeriesFunctionsNumber
-\ignore{ugxProblemSeriesFunctions} 
+in Section 8.9.4\ignore{ugxProblemSeriesFunctions} 
 for some warnings about working with declared series.
 
 \xtc{
@@ -38354,8 +38362,8 @@ Then, by assignment, we obtain the Taylor expansion of
 You can also create a power series by giving an explicit formula
 for its \eth{\axiom{n}} coefficient.
 For details and more examples, see
-\downlink{``\ugxProblemSeriesFormulaTitle''}{ugxProblemSeriesFormulaPage} 
-in Section \ugxProblemSeriesFormulaNumber\ignore{ugxProblemSeriesFormula}.
+\downlink{``Power Series from Formulas''}{ugxProblemSeriesFormulaPage} 
+in Section 8.9.6\ignore{ugxProblemSeriesFormula}.
 
 \xtc{
 To create a series about
@@ -38746,9 +38754,9 @@ certain transcendental functions by giving formulas for 
their
 coefficients.  You can also compute such series expansions directly
 simply by specifying the function and the point about which the series
 is to be expanded.  See
-\downlink{``\ugxProblemSeriesConversionsTitle''}
+\downlink{``Converting to Power Series''}
 {ugxProblemSeriesConversionsPage} in Section
-\ugxProblemSeriesConversionsNumber\ignore{ugxProblemSeriesConversions}
+8.9.5\ignore{ugxProblemSeriesConversions}
 for more information.
 
 Consider the Taylor expansion of \texht{$e^x$}{\axiom{\%e**x}}
@@ -38779,8 +38787,8 @@ powers of \axiom{(x - 0)}, that is, in powers of 
\axiom{x}.  Since we
 did not specify an initial degree, the first term in the series was
 the term of degree 0 (the constant term).  Note that the formula was
 given as an anonymous function.  These are discussed in
-\downlink{``\ugUserAnonTitle''}{ugUserAnonPage} in Section
-\ugUserAnonNumber\ignore{ugUserAnon}.
+\downlink{``Anonymous Functions''}{ugUserAnonPage} in Section
+6.17\ignore{ugUserAnon}.
 
 Consider the Taylor expansion of \axiom{log x} about \axiom{x = 1}:
 \texht{\narrowDisplay{%
@@ -38867,9 +38875,9 @@ When we compute the \axiom{sin} of this series, we get 
\axiom{x}
 }
 
 As we discussed in 
-\downlink{``\ugxProblemSeriesConversionsTitle''}
+\downlink{``Converting to Power Series''}
 {ugxProblemSeriesConversionsPage} in Section 
-\ugxProblemSeriesConversionsNumber\ignore{ugxProblemSeriesConversions},
+8.9.5\ignore{ugxProblemSeriesConversions},
 you can also use the operations \axiomFun{taylor}, \axiomFun{laurent} and
 \axiomFun{puiseux} instead of \axiomFun{series} if you know ahead of time
 what kind of exponents a series has.
@@ -39111,8 +39119,8 @@ when integrating factors can be found just by 
integration.
 
 For a discussion of the solution of systems of linear and polynomial
 equations, see
-\downlink{``\ugProblemLinPolEqnTitle''}{ugProblemLinPolEqnPage} in 
-Section \ugProblemLinPolEqnNumber\ignore{ugProblemLinPolEqn}.
+\downlink{``Solution of Linear and Polynomial Equations''}
+{ugProblemLinPolEqnPage} in Section 8.5\ignore{ugProblemLinPolEqn}.
 
 \beginmenu
     \menudownlink{
@@ -39529,19 +39537,21 @@ the solution.
 
 @
 \pagehead{ugProblemFinitePage}{ug08.ht}{Finite Fields}
-\pageto{notitle}{ugxProblemFinitePrimePage}
-\pageto{notitle}{ugxProblemFinitePrimePage}
-\pageto{notitle}{ugxProblemFiniteExtensionFinitePage}
-\pageto{notitle}{ugxProblemFiniteModulusPage}
-\pageto{notitle}{ugxProblemFiniteCyclicPage}
-\pageto{notitle}{ugxProblemFiniteNormalPage}
-\pageto{notitle}{ugxProblemFiniteConversionPage}
-\pageto{notitle}{ugxProblemFiniteUtilityPage}
+\pagepic{ps/v71ugproblemfinitepage.eps}{ugProblemFinitePage}
+\pagefrom{Axiom Number Types}{NumberPage}
+\pageto{Modular Arithmetic and Prime Fields}{ugxProblemFinitePrimePage}
+\pageto{Extensions of Finite Fields}{ugxProblemFiniteExtensionFinitePage}
+\pageto{Irreducible Modulus Polynomial Representations}
+{ugxProblemFiniteModulusPage}
+\pageto{Cyclic Group Representations}{ugxProblemFiniteCyclicPage}
+\pageto{Normal Basis Representations}{ugxProblemFiniteNormalPage}
+\pageto{Conversion Operations for Finite Fields}
+{ugxProblemFiniteConversionPage}
+\pageto{Utility Operations for Finite Fields}
+{ugxProblemFiniteUtilityPage}
 <<ug08.ht>>=
 \begin{page}{ugProblemFinitePage}{8.11. Finite Fields}
 \beginscroll
-%
-
 A {\it finite field} (also called a {\it Galois field}) is a
 finite algebraic structure where one can add, multiply and divide
 under the same laws (for example, commutativity, associativity or
@@ -39568,8 +39578,9 @@ Press, 1983, ISBN 0 521 30240 4.}
 When \axiom{n = 1,} the field has \smath{p} elements and is
 called a {\it prime field}, discussed in \texht{the next
 section}{
-\downlink{``\ugxProblemFinitePrimeTitle''}{ugxProblemFinitePrimePage} 
-in Section \ugxProblemFinitePrimeNumber\ignore{ugxProblemFinitePrime}}.
+\downlink{``Modular Arithmetic and Prime Fields''}
+{ugxProblemFinitePrimePage} 
+in Section 8.11.1\ignore{ugxProblemFinitePrime}}.
 There are several ways of implementing extensions of finite
 fields, and Axiom provides quite a bit of freedom to allow
 you to choose the one that is best for your application.
@@ -39579,8 +39590,8 @@ field.
 Finally, note that you usually need to package-call operations
 from finite fields if the operations do not take as an argument an
 object of the field.
-See \downlink{``\ugTypesPkgCallTitle''}{ugTypesPkgCallPage} in 
-Section \ugTypesPkgCallNumber\ignore{ugTypesPkgCall} for more 
+See \downlink{``Package Calling and Target Types''}
+{ugTypesPkgCallPage} in Section 2.9\ignore{ugTypesPkgCall} for more 
 information on package-calling.
 
 \beginmenu
@@ -39883,9 +39894,8 @@ This polynomial may be given explicitly by you or 
automatically
 generated.
 The ground field may be the prime field or one you specify.
 See 
-\downlink{``\ugxProblemFiniteExtensionFiniteTitle''}
-{ugxProblemFiniteExtensionFinitePage} in Section 
-\ugxProblemFiniteExtensionFiniteNumber
+\downlink{``Extensions of Finite Fields''}
+{ugxProblemFiniteExtensionFinitePage} in Section 8.11.2
 \ignore{ugxProblemFiniteExtensionFinite}
 for general information about finite field extensions.
 
@@ -40042,9 +40052,9 @@ multiplicative group).  Multiplication (and hence 
exponentiation)
 using this representation is easy.  To do addition, we consider our
 primitive element as the root of a primitive polynomial (an
 irreducible polynomial whose roots are all primitive).  See
-\downlink{``\ugxProblemFiniteUtilityTitle''}
+\downlink{``Utility Operations for Finite Fields''}
 {ugxProblemFiniteUtilityPage} in Section
-\ugxProblemFiniteUtilityNumber\ignore{ugxProblemFiniteUtility} for
+8.11.7\ignore{ugxProblemFiniteUtility} for
 examples of how to compute such a polynomial.
 
 %
@@ -40125,8 +40135,9 @@ polynomial.
 \xtc{
 We use a utility operation to generate an irreducible primitive
 polynomial (see 
-\downlink{``\ugxProblemFiniteUtilityTitle''}{ugxProblemFiniteUtilityPage} 
-in Section \ugxProblemFiniteUtilityNumber\ignore{ugxProblemFiniteUtility}).
+\downlink{``Utility Operations for Finite Fields''}
+{ugxProblemFiniteUtilityPage} 
+in Section 8.11.7\ignore{ugxProblemFiniteUtility}).
 The polynomial has one variable that is ``anonymous'': it displays
 as a question mark.
 }{
@@ -40257,8 +40268,9 @@ The degree of the extension is the degree of the 
polynomial.
 \xtc{
 We use a utility operation to generate an irreducible normal
 polynomial (see 
-\downlink{``\ugxProblemFiniteUtilityTitle''}{ugxProblemFiniteUtilityPage} 
-in Section \ugxProblemFiniteUtilityNumber\ignore{ugxProblemFiniteUtility}).
+\downlink{``Utility Operations for Finite Fields''}
+{ugxProblemFiniteUtilityPage} 
+in Section 8.11.7\ignore{ugxProblemFiniteUtility}).
 The polynomial has one variable that is ``anonymous'': it displays
 as a question mark.
 }{
@@ -40380,9 +40392,8 @@ To check this, let's do some arithmetic.
 There are also conversions available for the
 situation, when \texht{$K_m$}{\axiom{Km}} and \texht{$K_n$}{\axiom{Kn}}
 are represented in different ways (see
-\downlink{``\ugxProblemFiniteExtensionFiniteTitle''}
-{ugxProblemFiniteExtensionFinitePage} in Section 
-\ugxProblemFiniteExtensionFiniteNumber
+\downlink{``Extensions of Finite Fields''}
+{ugxProblemFiniteExtensionFinitePage} in Section 8.11.2
 \ignore{ugxProblemFiniteExtensionFinite}).
 For example let's choose \texht{$K_m$}{\axiom{Km}} where the
 representation is 0 plus the cyclic multiplicative group and
@@ -41155,8 +41166,8 @@ following five commands as necessary).
 
 Proceeding in this fashion, you can find the values of
 \axiom{aa2,...aa5}.\footnote{Here you should use the \Clef{} line
-editor.  See \downlink{``\ugAvailCLEFTitle''}{ugAvailCLEFPage} in
-Section \ugAvailCLEFNumber\ignore{ugAvailCLEF} for more information
+editor.  See \downlink{``Clef''}{ugAvailCLEFPage} in
+Section 1.1.1\ignore{ugAvailCLEF} for more information
 about \Clef{}.}  You have represented the automorphism \axiom{beta ->
 bb} as a permutation of the roots \axiom{a1,...,a5}.  If you wish, you
 can repeat this computation for all the roots of \smath{r(x)} and
@@ -41439,8 +41450,8 @@ By the end of this chapter you will know enough about 
graphics and
 programming in the interpreter to not only understand all these
 examples, but to tackle interesting and difficult problems on your
 own.
-\downlink{``\ugAppGraphicsTitle''}{ugAppGraphicsPage} in 
-Appendix \ugAppGraphicsNumber\ignore{ugAppGraphics} lists 
+\downlink{``Programs for Axiom Images''}{ugAppGraphicsPage} in 
+Appendix G\ignore{ugAppGraphics} lists 
 all the remaining commands and
 programs used to create these images.
 
@@ -41558,8 +41569,8 @@ There are many other things you can do.
 In fact, most everything you can do interactively using the
 \threedim{} control panel (such as translating, zooming, resizing,
 coloring, perspective and lighting selections) can also be done
-directly by operations (see \downlink{``\ugGraphTitle''}{ugGraphPage} 
-in Chapter \ugGraphNumber\ignore{ugGraph} for more details).
+directly by operations (see \downlink{``Graphics''}{ugGraphPage} 
+in Chapter 7\ignore{ugGraph} for more details).
 
 When you are done experimenting, say \spad{reset(vp)} to restore the
 picture to its original position and settings.
@@ -41687,16 +41698,17 @@ containing the following program.
 \endImportant
 
 Here are some remarks on the syntax used in the \pspadfun{drawRibbons}
-function (consult \downlink{``\ugUserTitle''}{ugUserPage} in Chapter
-\ugUserNumber\ignore{ugUser} for more details).  Unlike most other
+function (consult 
+\downlink{``User-Defined Functions, Macros and Rules''}{ugUserPage} 
+in Chapter 6\ignore{ugUser} for more details).  Unlike most other
 programming languages which use semicolons, parentheses, or {\it
 begin}--{\it end} brackets to delineate the structure of programs, the
 structure of an Axiom program is determined by indentation.  The first
 line of the function definition always begins in column 1.  All other
 lines of the function are indented with respect to the first line and
 form a \spadgloss{pile} (see
-\downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} in Section
-\ugLangBlocksNumber\ignore{ugLangBlocks}).
+\downlink{``Blocks''}{ugLangBlocksPage} in Section
+5.2\ignore{ugLangBlocks}).
 
 The definition of \userfun{drawRibbons} consists of a pile of
 expressions to be executed one after another.  Each expression of the
@@ -42165,8 +42177,8 @@ draw the complex valued function, again considering the
 \smath{(x,y)}-plane as the complex plane, using \smath{r} as the
 height (or \smath{z}-coordinate) and \smath{\theta} as the color.
 This is a standard plot---we learned how to do this in
-\downlink{``\ugGraphTitle''}{ugGraphPage} in Chapter
-\ugGraphNumber\ignore{ugGraph}---but here we write a new program to
+\downlink{``Graphics''}{ugGraphPage} in Chapter
+7\ignore{ugGraph}---but here we write a new program to
 illustrate the creation of polygon meshes, or grids.
 
 Call this function \userfun{drawComplex}.
@@ -42262,8 +42274,8 @@ Draw it with an odd number of steps to avoid the pole.
 \begin{page}{ugIntProgFunctionsPage}{10.8. Functions Producing Functions}
 \beginscroll
 
-In \downlink{``\ugUserMakeTitle''}{ugUserMakePage} in Section
-\ugUserMakeNumber\ignore{ugUserMake}, you learned how to use the
+In \downlink{``Making Functions from Objects''}{ugUserMakePage} in Section
+6.14\ignore{ugUserMake}, you learned how to use the
 operation \spadfun{function} to create a function from symbolic
 formulas.  Here we introduce a similar operation which not only
 creates functions, but functions from functions.
@@ -42490,15 +42502,15 @@ Axiom's algorithmic library, from numeric packages 
for computing
 special functions to symbolic facilities for
 differential equations, symbolic integration, and limits.
 
-In \downlink{``\ugIntProgTitle''}{ugIntProgPage} in Chapter
-\ugIntProgNumber\ignore{ugIntProg}, we developed several useful
+In \downlink{``Interactive Programming''}{ugIntProgPage} in Chapter
+10\ignore{ugIntProg}, we developed several useful
 functions for drawing vector fields and complex functions.  We now
 show you how you can add these functions to the Axiom library to make
 them available for general use.
 
 The way we created the functions in
-\downlink{``\ugIntProgTitle''}{ugIntProgPage} in Chapter
-\ugIntProgNumber\ignore{ugIntProg} is typical of how you, as an
+\downlink{``Interactive Programming''}{ugIntProgPage} in Chapter
+10\ignore{ugIntProg} is typical of how you, as an
 advanced Axiom user, may interact with Axiom.  You have an
 application.  You go to your editor and create an input file defining
 some functions for the application.  Then you run the file and try the
@@ -42597,14 +42609,14 @@ drawComplex(f,\ realRange,\ imagRange,\ arrows?)\ ==\ 
...}\newline
 
 Each package has a name and an abbreviation.  For a package of the
 complex draw functions from
-\downlink{``\ugIntProgTitle''}{ugIntProgPage} in Chapter
-\ugIntProgNumber\ignore{ugIntProg}, we choose the name
+\downlink{``Interactive Programming''}{ugIntProgPage} in Chapter
+10\ignore{ugIntProg}, we choose the name
 \nonLibAxiomType{DrawComplex} and abbreviation
 \nonLibAxiomType{DRAWCX}.\footnote{An abbreviation can be any string
 of between two and seven capital letters and digits, beginning with a
 letter.  See
-\downlink{``\ugTypesWritingAbbrTitle''}{ugTypesWritingAbbrPage} in
-Section \ugTypesWritingAbbrNumber\ignore{ugTypesWritingAbbr} for more
+\downlink{``Abbreviations''}{ugTypesWritingAbbrPage} in
+Section 2.5.5\ignore{ugTypesWritingAbbr} for more
 information.}  To be sure that you have not chosen a name or
 abbreviation already used by the system, issue the system command
 \spadcmd{)show} for both the name and the abbreviation.
@@ -42710,8 +42722,8 @@ to users.  As an author of a package, you must ensure 
that the {\tt
 Implementation} part provides a function for each operation in the
 {\tt Exports} part.\footnote{The \spadtype{DrawComplex} package
 enhances the facility described in
-\downlink{``\ugIntProgCompFunsTitle''}{ugIntProgCompFunsPage} in
-Chapter \ugIntProgCompFunsNumber\ignore{ugIntProgCompFuns} by allowing
+\downlink{``Drawing Complex Functions''}{ugIntProgCompFunsPage} in
+Chapter 10.7\ignore{ugIntProgCompFuns} by allowing
 a complex function to have arrows emanating from the surface to
 indicate the direction of the complex argument.}
 
@@ -42921,13 +42933,13 @@ The power of packages becomes evident when packages 
have parameters.
 Usually these parameters are domains and the exported operations have
 types involving these parameters.
 
-In \downlink{``\ugTypesTitle''}{ugTypesPage} in Chapter
-\ugTypesNumber\ignore{ugTypes}, you learned that categories denote
+In \downlink{``Using Types and Modes''}{ugTypesPage} in Chapter
+2\ignore{ugTypes}, you learned that categories denote
 classes of domains.  Although we cover this notion in detail in the
 next chapter, we now give you a sneak preview of its usefulness.
 
-In \downlink{``\ugUserBlocksTitle''}{ugUserBlocksPage} in Section
-\ugUserBlocksNumber\ignore{ugUserBlocks}, we defined functions
+In \downlink{``Functions Defined with Blocks''}{ugUserBlocksPage} in
+Section 6.15\ignore{ugUserBlocks}, we defined functions
 \axiom{bubbleSort(m)} and \axiom{insertionSort(m)} to sort a list of
 integers.  If you look at the code for these functions, you see that
 they may be used to sort {\it any} structure \axiom{m} with the right
@@ -42951,9 +42963,8 @@ maximum index of the list.  The first obvious property 
is that
 done by your telling Axiom that \axiom{m} has the ``attribute''
 \spadatt{finiteAggregate}.  An \spadgloss{attribute} is a property
 that a domain either has or does not have.  As we show later in
-\downlink{``\ugCategoriesAttributesTitle''}{ugCategoriesAttributesPage}
-in Section
-\ugCategoriesAttributesNumber\ignore{ugCategoriesAttributes}, programs
+\downlink{``Attributes''}{ugCategoriesAttributesPage}
+in Section 12.9\ignore{ugCategoriesAttributes}, programs
 can query domains as to the presence or absence of an attribute.
 
 The operation \spadfunX{swap} swaps elements of \axiom{m}.
@@ -43095,8 +43106,8 @@ bubbleSort!(m)\ ==\ bubbleSort!(m,<\$S)}\newline
 insertionSort!(m)\ ==\ insertionSort!(m,<\$S)}\newline
 \endImportant
 
-In \downlink{``\ugUserBlocksTitle''}{ugUserBlocksPage} in Section
-\ugUserBlocksNumber\ignore{ugUserBlocks}, we give an alternative
+In \downlink{``Functions Defined with Blocks''}{ugUserBlocksPage} in 
+Section 6.15\ignore{ugUserBlocks}, we give an alternative
 definition of \fakeAxiomFun{bubbleSort} using
 \spadfunFrom{first}{List} and \spadfunFrom{rest}{List} that is more
 efficient for a list (for which access to any element requires
@@ -43315,8 +43326,8 @@ IndexedAggregate(Integer, D2) with} two attributes.
 So the interpreter searches for an \axiomType{IndexedAggregate}
 among the ancestors of \axiomType{List (Integer)} (see
 
-\downlink{``\ugCategoriesHierTitle''}{ugCategoriesHierPage} in Section
-\ugCategoriesHierNumber\ignore{ugCategoriesHier}).  It finds one:
+\downlink{``Hierarchies''}{ugCategoriesHierPage} in Section
+12.4\ignore{ugCategoriesHier}).  It finds one:
 \axiomType{IndexedAggregate(Integer, Integer)}.  The interpreter tries
 defining \axiom{D2} as \axiomType{Integer}.  After substituting for
 \axiom{D1} and \axiom{D2}, the predicate evaluates to \axiom{true}.
@@ -43363,9 +43374,8 @@ system to include new categories of your own.
 
 We assume that you have read the introductory material on domains and
 categories in
-\downlink{``\ugTypesBasicDomainConsTitle''}{ugTypesBasicDomainConsPage}
-in Section
-\ugTypesBasicDomainConsNumber\ignore{ugTypesBasicDomainCons}.  There
+\downlink{``Domain Constructors''}{ugTypesBasicDomainConsPage}
+in Section 2.1.1\ignore{ugTypesBasicDomainCons}.  There
 you learned that the notion of packages covered in the previous
 chapter are special cases of domains.  While this is in fact the case,
 it is useful here to regard domains as distinct from packages.
@@ -43458,8 +43468,8 @@ always in column one in the source file.
 All parts of a category definition are then indented with respect to this
 first line.
 
-In \downlink{``\ugTypesTitle''}{ugTypesPage} in Chapter
-\ugTypesNumber\ignore{ugTypes}, we talked about \spadtype{Ring} as
+In \downlink{``Using Types and Modes''}{ugTypesPage} in Chapter
+2\ignore{ugTypes}, we talked about \spadtype{Ring} as
 denoting the class of all domains that are rings, in short, the class
 of all rings.  While this is the usual naming convention in Axiom, it
 is also common to use the word ``Category'' at the end of a category
@@ -43748,8 +43758,8 @@ operations \spadop{*} and \spadop{**}.
 We actually omitted the last
 part of the definition of
 \spadtype{SemiGroup} in
-\downlink{``\ugCategoriesHierTitle''}{ugCategoriesHierPage} 
-in Section \ugCategoriesHierNumber\ignore{ugCategoriesHier}.
+\downlink{``Hierarchies''}{ugCategoriesHierPage} 
+in Section 12.4\ignore{ugCategoriesHier}.
 Here now is its complete Axiom definition.
 
 \beginImportant
@@ -43784,8 +43794,8 @@ sense of the hierarchy) to the domain is chosen.
 The part of the category definition following an \spadop{add} operation
 is a \spadgloss{capsule}, as discussed in
 \texht{the previous chapter.}
-{\downlink{``\ugPackagesTitle''}{ugPackagesPage} 
-in Chapter \ugPackagesNumber\ignore{ugPackages}.}
+{\downlink{``Packages''}{ugPackagesPage} 
+in Chapter 11\ignore{ugPackages}.}
 The line
 \begin{verbatim}
 import RepeatedSquaring($)
@@ -43834,8 +43844,8 @@ as automatically generated by Axiom from the above 
definition of
 \beginscroll
 
 In \texht{the previous section}
-{\downlink{``\ugCategoriesDefaultsTitle''}{ugCategoriesDefaultsPage}
-in Section \ugCategoriesDefaultsNumber\ignore{ugCategoriesDefaults}}
+{\downlink{``Defaults''}{ugCategoriesDefaultsPage}
+in Section 12.6\ignore{ugCategoriesDefaults}}
 you saw the complete Axiom program defining \index{axiom}
 \spadtype{SemiGroup}.  According to this definition, semigroups (that
 is, are sets with the operations \spadopFrom{*}{SemiGroup} and
@@ -43973,8 +43983,8 @@ have commutative multiplication?
 
 Attributes are used to conditionally export and define
 operations for a domain (see 
-\downlink{``\ugDomainsAssertionsTitle''}{ugDomainsAssertionsPage} in 
-Section \ugDomainsAssertionsNumber\ignore{ugDomainsAssertions}).
+\downlink{``Category Assertions''}{ugDomainsAssertionsPage} in 
+Section 13.3\ignore{ugDomainsAssertions}).
 Attributes can also be asserted in a category definition.
 
 After mentioning category \spadtype{Ring} many times in this book,
@@ -44138,8 +44148,8 @@ if R has IntegerNumberSystem then
 
 Here the predicate used is identical to the predicate in the {\tt
 Exports} part.  This need not be the case.  See
-\downlink{``\ugPackagesCondsTitle''}{ugPackagesCondsPage} in Section
-\ugPackagesCondsNumber\ignore{ugPackagesConds} for a more complicated
+\downlink{``Conditionals''}{ugPackagesCondsPage} in Section
+11.8\ignore{ugPackagesConds} for a more complicated
 example.
 
 \endscroll
@@ -44157,8 +44167,8 @@ The part of a category to the right of a {\tt with} is 
also regarded
 as a category---an ``anonymous category.''  Thus you have already seen
 a category definition The {\tt Exports} part of the package
 \pspadtype{DrawComplex}
-(\downlink{``\ugPackagesAbstractTitle''}{ugPackagesAbstractPage} in
-Section \ugPackagesAbstractNumber\ignore{ugPackagesAbstract}) is an
+(\downlink{``Abstract Datatypes''}{ugPackagesAbstractPage} in
+Section 11.3\ignore{ugPackagesAbstract}) is an
 anonymous category.  This is not necessary.  We could, instead, give
 this category a name:
 
@@ -44267,8 +44277,8 @@ operation returns an element of the domain.
 If no exported operations mention \axiomSyntax{\$}, then evidently
 there is nothing of interest to do with the objects of the domain.
 You might then say that a package is a ``boring'' domain!  But, as you
-saw in \downlink{``\ugPackagesTitle''}{ugPackagesPage} in Chapter
-\ugPackagesNumber\ignore{ugPackages}, packages are a very useful
+saw in \downlink{``Packages''}{ugPackagesPage} in Chapter
+11\ignore{ugPackages}, packages are a very useful
 notion indeed.  The exported operations of a package depend solely on
 the parameters to the package constructor and other explicit domains.
 
@@ -44416,9 +44426,8 @@ means that membership in a category does not depend on 
the values of
 the parameters to the domain constructor.  This part thus defines the
 link between the domains and the category hierarchies given on the
 inside covers of this book.  As described in
-\downlink{``\ugCategoriesCorrectnessTitle''}{ugCategoriesCorrectnessPage}
-in Section
-\ugCategoriesCorrectnessNumber\ignore{ugCategoriesCorrectness}, it is
+\downlink{``Correctness''}{ugCategoriesCorrectnessPage}
+in Section 12.8\ignore{ugCategoriesCorrectness}, it is
 this link that makes it possible for you to pass objects of the
 domains as arguments to other operations in Axiom.
 
@@ -44434,9 +44443,8 @@ possible to pass quadratic forms to algorithms that 
only assume
 arguments to have these abelian group properties.
 
 In
-\downlink{``\ugCategoriesConditionalsTitle''}{ugCategoriesConditionalsPage}
-in Section
-\ugCategoriesConditionalsNumber\ignore{ugCategoriesConditionals}, you
+\downlink{``Conditionals''}{ugCategoriesConditionalsPage}
+in Section 12.11\ignore{ugCategoriesConditionals}, you
 saw that \axiomType{Fraction(R)}, a member of
 \axiomType{QuotientFieldCategory(R)}, is a member of
 \axiomType{OrderedSet} if \axiom{R} is a member of
@@ -44594,13 +44602,13 @@ required by the compiler.  Aside from checking that 
the matrix is
 symmetric, the code for this function essentially does nothing.  The
 {\frenchspacing\tt m :: \$} on line 28 coerces \axiom{m} to a
 quadratic form.  In fact, the quadratic form you created in step (3)
-of \downlink{``\ugDomainsDemoTitle''}{ugDomainsDemoPage} in Section
-\ugDomainsDemoNumber\ignore{ugDomainsDemo} is just the matrix you
+of \downlink{``A Demo''}{ugDomainsDemoPage} in Section
+13.4\ignore{ugDomainsDemo} is just the matrix you
 passed it in disguise!  Without seeing this definition, you would not
 know that.  Nor can you take advantage of this fact now that you do
 know!  When we try in the next step of
-\downlink{``\ugDomainsDemoTitle''}{ugDomainsDemoPage} in Section
-\ugDomainsDemoNumber\ignore{ugDomainsDemo} to regard \axiom{q} as a
+\downlink{``A Demo''}{ugDomainsDemoPage} in Section
+13.4\ignore{ugDomainsDemo} to regard \axiom{q} as a
 matrix by asking for \axiomFun{nrows}, the number of its rows, Axiom
 gives you an error message saying, in effect, ``Good try, but this
 won't work!''
@@ -44686,8 +44694,8 @@ of polynomial implementation is used.
 Within a given domain, however, you define (at most) one
 representation.\footnote{You can make that representation a
 \pspadtype{Union} type, however.  See
-\downlink{``\ugTypesUnionsTitle''}{ugTypesUnionsPage} in Section
-\ugTypesUnionsNumber\ignore{ugTypesUnions} for examples of unions.}
+\downlink{``Unions''}{ugTypesUnionsPage} in Section
+2.5\ignore{ugTypesUnions} for examples of unions.}
 If you want to have multiple representations (that is, several
 domains, each with its own representation), use a category to describe
 the {\tt Exports}, then define separate domains for each
@@ -44708,8 +44716,8 @@ representation.
 The capsule part of {\tt Implementation} defines functions that
 implement the operations exported by the domain---usually only some of
 the operations.  In our demo in
-\downlink{``\ugDomainsDemoTitle''}{ugDomainsDemoPage} in Section
-\ugDomainsDemoNumber\ignore{ugDomainsDemo}, we asked for the value of
+\downlink{``A Demo''}{ugDomainsDemoPage} in Section
+13.4\ignore{ugDomainsDemo}, we asked for the value of
 \axiom{3*q-q+q}.  Where do the operations \axiomOp{*}, \axiomOp{+},
 and \axiomOp{-} come from?  There is no definition for them in the
 capsule!
@@ -44736,8 +44744,8 @@ and \axiomOpFrom{-}{QuadraticForm} come from
 \begin{page}{ugDomainsDefaultsPage}{13.9. Defaults}
 \beginscroll
 %
-In \downlink{``\ugPackagesTitle''}{ugPackagesPage} in 
-Chapter \ugPackagesNumber\ignore{ugPackages}, we saw that 
+In \downlink{``Packages''}{ugPackagesPage} in 
+Chapter 11\ignore{ugPackages}, we saw that 
 categories can provide
 default implementations for their operations.
 How and when are they used?
@@ -44767,8 +44775,8 @@ for \axiomType{QuadraticForm}, consult \Browse{}: from 
the
 Let's apply this search strategy for our example \axiom{3*q-q+q}.  The
 scalar multiplication comes first.  Axiom finds a default
 implementation in \axiomType{AbelianGroup\&}.  Remember from
-\downlink{``\ugCategoriesDefaultsTitle''}{ugCategoriesDefaultsPage} in
-Section \ugCategoriesDefaultsNumber\ignore{ugCategoriesDefaults} that
+\downlink{``Defaults''}{ugCategoriesDefaultsPage} in
+Section 12.6\ignore{ugCategoriesDefaults} that
 \axiomType{SemiGroup} provides a default definition for
 \texht{$x^n$}{x**n} by repeated squaring?  \axiomType{AbelianGroup}
 similarly provides a definition for \texht{$n x$}{n*x} by repeated
@@ -45684,18 +45692,16 @@ We show the use of each of the buttons by example.
 First enter the search string {\tt Matrix} into the input area and
 click on {\bf Constructors}.  What you get is the {\it constructor
 page} for \axiomType{Matrix}.  We show and describe this page in
-detail in \downlink{``\ugBrowseDomainTitle''}{ugBrowseDomainPage} in
-Section \ugBrowseDomainNumber\ignore{ugBrowseDomain}.  By convention,
+detail in \downlink{``The Constructor Page''}{ugBrowseDomainPage} in
+Section 14.2\ignore{ugBrowseDomain}.  By convention,
 Axiom does a case-insensitive search for a match.  Thus {\tt matrix}
 is just as good as {\tt Matrix}, has the same effect as {\tt MaTrix},
 and so on.  We recommend that you generally use small letters for
 names however.  A search string with only capital letters has a
 special meaning (see
-\downlink{``\ugBrowseCapitalizationConventionTitle''}
+\downlink{``Capitalization Convention''}
 {ugBrowseCapitalizationConventionPage}
-in Section
-\ugBrowseCapitalizationConventionNumber
-\ignore{ugBrowseCapitalizationConvention}).
+in Section 14.3.3\ignore{ugBrowseCapitalizationConvention}).
 
 
 Click on \UpBitmap{} to return to the \Browse{} front page.
@@ -45727,10 +45733,8 @@ Again click on the \UpBitmap{} to return to the table 
of constructors
 whose names contain {\tt matrix}.  Below the table is a {\it Views}
 panel.  This panel contains buttons that let you view constructors in
 different ways.  To learn about views of constructors, skip to
-\downlink{``\ugBrowseViewsOfConstructorsTitle''}
-{ugBrowseViewsOfConstructorsPage}
-in Section
-\ugBrowseViewsOfConstructorsNumber\ignore{ugBrowseViewsOfConstructors}.
+\downlink{``Views Of Constructors''}{ugBrowseViewsOfConstructorsPage}
+in Section 14.2.3\ignore{ugBrowseViewsOfConstructors}.
 
 Click on \UpBitmap{} to return to the \Browse{} front page.
 
@@ -45745,10 +45749,8 @@ If you select an operation name, you go to a page 
describing all the
 operations in Axiom of that name.  At the bottom of an operation page
 is another kind of {\it Views} panel, one for operation pages.  To
 learn more about these views, skip to
-\downlink{``\ugBrowseViewsOfOperationsTitle''}
-{ugBrowseViewsOfOperationsPage}
-in Section
-\ugBrowseViewsOfOperationsNumber\ignore{ugBrowseViewsOfOperations}.
+\downlink{``Views of Operations''}{ugBrowseViewsOfOperationsPage}
+in Section 14.3.2\ignore{ugBrowseViewsOfOperations}.
 
 Click on \UpBitmap{} to return to the \Browse{} front page.
 
@@ -45878,10 +45880,8 @@ below.
 
 If you click on an operation name, you bring up a description page for
 the operations.  For a detailed description of these pages, skip to
-\downlink{``\ugBrowseViewsOfOperationsTitle''}
-{ugBrowseViewsOfOperationsPage}
-in Section
-\ugBrowseViewsOfOperationsNumber\ignore{ugBrowseViewsOfOperations}.
+\downlink{``Views of Operations''}{ugBrowseViewsOfOperationsPage}
+in Section 14.3.2\ignore{ugBrowseViewsOfOperations}.
 
 \subsubsection{Attributes}
 
@@ -46747,8 +46747,9 @@ general, the correspondence to Axiom types is as 
follows.
 (Exceptionally, for NAG EXTERNAL parameters -- ASPs in link parlance
 -- REAL and COMPLEX correspond to \axiomType{MachineFloat} and 
 \axiomType{MachineComplex},
-respectively; see \downlink{``\aspSectionTitle''}{aspSectionPage} 
-in Section \aspSectionNumber\ignore{aspSection}.)
+respectively; see 
+\downlink{``Providing values for Argument Subprograms''}
+{aspSectionPage} in Section 15.3.3\ignore{aspSection}.)
 
 The correspondence for aggregates is as follows.
 \indent{4}
@@ -46768,8 +46769,8 @@ Higher-dimensional arrays are not currently needed for 
the \naglib{}.
 
 Arguments which are Fortran FUNCTIONs or SUBROUTINEs correspond to
 special ASP domains in Axiom. See
-\downlink{``\aspSectionTitle''}{aspSectionPage} in Section
-\aspSectionNumber\ignore{aspSection}.
+\downlink{``Providing values for Argument Subprograms''}
+{aspSectionPage} in Section 15.3.3\ignore{aspSection}.
 
 \subsubsection{Classification of NAG parameters}
 
@@ -46966,8 +46967,8 @@ from appropriate instantiations of 
\axiomType{Expression},
 \texht{\exptypeindex{FortranCode}}{} \axiomType{FortranCode} allows us
 to build arbitrarily complex ASPs via a kind of pseudo-code.  It is
 described fully in
-\downlink{``\generalFortranTitle''}{generalFortranPage} in Section
-\generalFortranNumber\ignore{generalFortran}.
+\downlink{``General Fortran-generation utilities in Axiom''}
+{generalFortranPage} in Section 15.3.4\ignore{generalFortran}.
 
 Every ASP exports two \axiomFun{coerce} functions: one from
 \axiomType{FortranCode} and one from \axiomType{List FortranCode}.
@@ -47647,8 +47648,8 @@ the resulting program on the numeric part of the RPC 
stream.
 
 The \axiom{leave} keyword has been replaced by the \axiom{break}
 keyword for compatibility with the new Axiom extension language.  See
-section \downlink{``\ugLangLoopsBreakTitle''}{ugLangLoopsBreakPage} in
-Section \ugLangLoopsBreakNumber\ignore{ugLangLoopsBreak} for more
+section \downlink{``break in Loops''}{ugLangLoopsBreakPage} in
+Section 5.4.3\ignore{ugLangLoopsBreak} for more
 information.
 
 Curly braces are no longer used to create sets. Instead, use
@@ -47659,8 +47660,8 @@ Curly braces are no longer used to create sets. 
Instead, use
 }
 
 Curly braces are now used to enclose a block (see section
-\downlink{``\ugLangBlocksTitle''}{ugLangBlocksPage} in Section
-\ugLangBlocksNumber\ignore{ugLangBlocks} for more information). For
+\downlink{``Blocks''}{ugLangBlocksPage} in Section
+5.2\ignore{ugLangBlocks} for more information). For
 compatibility, a block can still be enclosed by parentheses as well.
 
 ``Free functions'' created by the Aldor compiler can now be
@@ -47836,14 +47837,16 @@ HyperDoc.
 A section has been added to the graphics chapter, describing how to
 build \twodim{} graphs from lists of points. An example is given
 showing how to read the points from a file.  See section
-\downlink{``\ugGraphTwoDbuildTitle''}{ugGraphTwoDbuildPage} in Section
-\ugGraphTwoDbuildNumber\ignore{ugGraphTwoDbuild} for details.
+\downlink{``Building Two-Dimensional Graphs''}
+{ugGraphTwoDbuildPage} in Section
+7.1.9\ignore{ugGraphTwoDbuild} for details.
 
 A further section has been added to that same chapter, describing how
 to add a \twodim{} graph to a viewport which already contains other
 graphs.  See section
-\downlink{``\ugGraphTwoDappendTitle''}{ugGraphTwoDappendPage} in
-Section \ugGraphTwoDappendNumber\ignore{ugGraphTwoDappend} for
+\downlink{``Appending a Graph to a Viewport 
+Window Containing a Graph''}{ugGraphTwoDappendPage} in
+Section 7.1.10\ignore{ugGraphTwoDappend} for
 details.
 
 Chapter 3 
@@ -47851,14 +47854,14 @@ and the on-line Hyperdoc help have been unified.
 
 An explanation of operation names ending in ``?'' and ``!'' has been
 added to the first chapter.  See the end of the section
-\downlink{``\ugIntroCallFunTitle''}{ugIntroCallFunPage} in Section
-\ugIntroCallFunNumber\ignore{ugIntroCallFun} for details.
+\downlink{``Calling Functions''}{ugIntroCallFunPage} in Section
+1.3.6\ignore{ugIntroCallFun} for details.
 
 An expanded explanation of using predicates has been added to the
 sixth chapter. See the example involving \userfun{evenRule} in the
 middle of the section
-\downlink{``\ugUserRulesTitle''}{ugUserRulesPage} in Section
-\ugUserRulesNumber\ignore{ugUserRules} for details.
+\downlink{``Rules and Pattern Matching''}{ugUserRulesPage} in Section
+6.21\ignore{ugUserRules} for details.
 
 Documentation for the \spadcmd{)compile}, \spadcmd{)library} and
 \spadcmd{)load} commands has been greatly changed. This reflects
@@ -47982,8 +47985,8 @@ set the user-access level to the three possible 
choices.  All commands
 are available at {\tt development} level and the fewest are available
 at {\tt interpreter} level.  The default user-level is {\tt
 interpreter}.  In addition to the \spadcmd{)set} command (discussed in
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} in Section
-\ugSysCmdsetNumber\ignore{ugSysCmdset}) you can use the Hyperdoc
+\downlink{``)set''}{ugSysCmdsetPage} in Section
+B.21\ignore{ugSysCmdset}) you can use the Hyperdoc
 settings facility to change the {\it user-level.}  \texht{}{Click on
 \lispmemolink{Settings}{(|htSystemVariables|)} here to immediately go
 to the settings facility.}
@@ -48145,9 +48148,7 @@ constructor name \spadtype{VectorFunctions2} from the 
system:
 \end{verbatim}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} 
-in section \ugSysCmdcompileNumber
-
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
 
 \endscroll
 \autobuttons
@@ -48183,14 +48184,10 @@ creates and compiles the \Lisp{} function ``times3''
 obtained by translating the BOOT code.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage} in 
-section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage} in 
-section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} in 
-section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage} in 
-section \ugSysCmdsystemNumber
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
 
 \endscroll
 \autobuttons
@@ -48238,18 +48235,12 @@ Except for the ``{\tt )}'' at the beginning of the 
command,
 this has the same syntax as the operating system {\tt cd} command.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} in 
-section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdeditTitle''}{ugSysCmdeditPage} in 
-section \ugSysCmdeditNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} in 
-section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdlibraryTitle''}{ugSysCmdlibraryPage} in 
-section \ugSysCmdlibraryNumber
-\downlink{``\ugSysCmdreadTitle''}{ugSysCmdreadPage} in 
-section \ugSysCmdreadNumber
-\downlink{``\ugSysCmdspoolTitle''}{ugSysCmdspoolPage} in 
-section \ugSysCmdspoolNumber
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)edit''}{ugSysCmdeditPage} in section B.9
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)library''}{ugSysCmdlibraryPage} in section B.14
+\downlink{``)read''}{ugSysCmdreadPage} in section B.20
+\downlink{``)spool''}{ugSysCmdspoolPage} in section B.32
 
 \endscroll
 \autobuttons
@@ -48296,10 +48287,7 @@ close down the interpreter client process without 
closing down
 the entire Axiom session.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage} in 
-section \ugSysCmdquitNumber
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage} in 
-section \ugSysCmdpquitNumber
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
 
 \endscroll
 \autobuttons
@@ -48395,12 +48383,9 @@ does everything that {\tt )clear all} does, and also 
clears the internal
 system function and constructor caches.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmddisplayTitle''}{ugSysCmddisplayPage} 
-in section \ugSysCmddisplayNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdundoTitle''}{ugSysCmdundoPage} 
-in section \ugSysCmdundoNumber
+\downlink{``)display''}{ugSysCmddisplayPage} in section B.8
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)undo''}{ugSysCmdundoPage} in section B.27
 
 \endscroll
 \autobuttons
@@ -48672,8 +48657,8 @@ The sequence of commands
 will call the compiler, edit, and then call the compiler again on the
 file {\bf matrix.spad.}  If you do not specify a {\it directory,} the
 working current directory (see
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in Section
-\ugSysCmdcdNumber\ignore{ugSysCmdcd}) is searched for the file.  If
+\downlink{``)cd''}{ugSysCmdcdPage} in Section
+B.4\ignore{ugSysCmdcd}) is searched for the file.  If
 the file is not found, the standard system directories are searched.
 
 If you do not give any options, all constructors within a file are
@@ -48697,8 +48682,8 @@ compiler are completely different.
 The {\tt )vartrace} option causes the compiler to generate extra code
 for the constructor to support conditional tracing of variable
 assignments. (see
-\downlink{``\ugSysCmdtraceTitle''}{ugSysCmdtracePage} in Section
-\ugSysCmdtraceNumber\ignore{ugSysCmdtrace}). Without this option, this
+\downlink{``)trace''}{ugSysCmdtracePage} in Section
+B.26\ignore{ugSysCmdtrace}). Without this option, this
 code is suppressed and one cannot use the {\tt )vars} option for the
 trace command.
 
@@ -48724,12 +48709,9 @@ error.  The value of the {\tt )set break} variable 
then controls what
 happens.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdabbreviationTitle''}{ugSysCmdabbreviationPage} 
-in section \ugSysCmdabbreviationNumber
-\downlink{``\ugSysCmdeditTitle''}{ugSysCmdeditPage} 
-in section \ugSysCmdeditNumber
-\downlink{``\ugSysCmdlibraryTitle''}{ugSysCmdlibraryPage} 
-in section \ugSysCmdlibraryNumber
+\downlink{``)abbreviation''}{ugSysCmdabbreviationPage} in section B.2
+\downlink{``)edit''}{ugSysCmdeditPage} in section B.9
+\downlink{``)library''}{ugSysCmdlibraryPage} in section B.14
 
 \endscroll
 \autobuttons
@@ -48814,16 +48796,11 @@ operation \spadfunFrom{complex}{ComplexCategory}:
 \end{verbatim}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdclearTitle''}{ugSysCmdclearPage} 
-in section \ugSysCmdclearNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdshowTitle''}{ugSysCmdshowPage} 
-in section \ugSysCmdshowNumber
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage} 
-in section \ugSysCmdwhatNumber
+\downlink{``)clear''}{ugSysCmdclearPage} in section B.6
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)show''}{ugSysCmdshowPage} in section B.22
+\downlink{``)what''}{ugSysCmdwhatPage} in section B.28
 
 \endscroll
 \autobuttons
@@ -48884,12 +48861,9 @@ For example,
 calls {\tt emacs} to edit the file.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage} 
-in section \ugSysCmdsystemNumber
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} 
-in section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdreadTitle''}{ugSysCmdreadPage} 
-in section \ugSysCmdreadNumber
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)read''}{ugSysCmdreadPage} in section B.20
 
 \endscroll
 \autobuttons
@@ -48919,8 +48893,7 @@ To return to Axiom, issue the
 function call to \Lisp{}.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage} 
-in section \ugSysCmdpquitNumber
+\downlink{``)pquit''}{ugSysCmdpquitPage} in section B.18
 
 \endscroll
 \autobuttons
@@ -49038,10 +49011,8 @@ when you start up. In this case, the frame name and 
step make up the
 prompt.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
 
 \endscroll
 \autobuttons
@@ -49157,15 +49128,15 @@ number is given, Axiom will signal an error.
 
 The {\it environment} information can either be saved in a file or
 entirely in memory (the default).  Each frame
-(\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage} in Section
-\ugSysCmdframeNumber\ignore{ugSysCmdframe}) has its own history
+(\downlink{``)frame''}{ugSysCmdframePage} in Section
+B.11\ignore{ugSysCmdframe}) has its own history
 database.  When it is kept in a file, some of it may also be kept in
 memory for efficiency.  When the information is saved in a file, the
 name of the file is of the form {\bf FRAME.axh} where ``{\bf FRAME}''
 is the name of the current frame.  The history file is placed in the
 current working directory (see
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in Section
-\ugSysCmdcdNumber\ignore{ugSysCmdcd}).  Note that these history
+\downlink{``)cd''}{ugSysCmdcdPage} in Section
+B.4\ignore{ugSysCmdcd}).  Note that these history
 database files are not text files (in fact, they are directories
 themselves), and so are not in human-readable format.
 
@@ -49227,8 +49198,8 @@ for a file called {\bf last.axh}.
 \item[{\tt )save} {\it savedHistoryName}]
 is used to save  a snapshot of the environment in a file.
 This file is placed in the current working directory
-(see \downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} 
-in Section \ugSysCmdcdNumber\ignore{ugSysCmdcd}).
+(see \downlink{``)cd''}{ugSysCmdcdPage} 
+in Section B.4\ignore{ugSysCmdcd}).
 Use {\tt )history )restore} to restore the environment to the state
 preserved in the file.
 This option also creates an input file containing all the lines of input
@@ -49269,14 +49240,10 @@ the contents.
 \indent{0}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage} 
-in section \ugSysCmdframeNumber
-\downlink{``\ugSysCmdreadTitle''}{ugSysCmdreadPage} 
-in section \ugSysCmdreadNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdundoTitle''}{ugSysCmdundoPage} 
-in section \ugSysCmdundoNumber
+\downlink{``)frame''}{ugSysCmdframePage} in section B.11
+\downlink{``)read''}{ugSysCmdreadPage} in section B.20
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)undo''}{ugSysCmdundoPage} in section B.27
 
 \endscroll
 \autobuttons
@@ -49350,14 +49317,10 @@ command was called {\tt )local} and {\tt )with} 
before the name
 {\tt )library} became the official name.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in section 
-\ugSysCmdcdNumber
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} 
-in section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdframeTitle''}{ugSysCmdframePage} 
-in section \ugSysCmdframeNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
+\downlink{``)cd''}{ugSysCmdcdPage} in section B.4
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)frame''}{ugSysCmdframePage} in section B.11
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
 
 \endscroll
 \autobuttons
@@ -49392,12 +49355,9 @@ Since this command is only useful for evaluating 
single expressions,
 the {\tt )fin} command may be used to drop out of Axiom into \Lisp{}.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage} 
-in section \ugSysCmdsystemNumber
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage} 
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage} 
-in section \ugSysCmdfinNumber
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
 
 \endscroll
 \autobuttons
@@ -49445,12 +49405,9 @@ BOOT functions.
 It is not supported for general use.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage} 
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage} 
-in section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdtraceTitle''}{ugSysCmdtracePage} 
-in section \ugSysCmdtraceNumber
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)trace''}{ugSysCmdtracePage} in section B.26
 
 \endscroll
 \autobuttons
@@ -49510,16 +49467,11 @@ Axiom interactive environment.}}
 will be displayed and, indeed, Axiom would still be running.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage} 
-in section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdcloseTitle''}{ugSysCmdclosePage} 
-in section \ugSysCmdcloseNumber
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage} 
-in section \ugSysCmdquitNumber
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage} 
-in section \ugSysCmdsystemNumber
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)close''}{ugSysCmdclosePage} in section B.5
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
 
 \endscroll
 \autobuttons
@@ -49575,16 +49527,11 @@ suggest that you do not (somehow) assign {\tt )quit} 
to be
 executed when you press, say, a function key.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage} 
-in section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
-\downlink{``\ugSysCmdcloseTitle''}{ugSysCmdclosePage} 
-in section \ugSysCmdcloseNumber
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage} 
-in section \ugSysCmdpquitNumber
-\downlink{``\ugSysCmdsystemTitle''}{ugSysCmdsystemPage} 
-in section \ugSysCmdsystemNumber
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
+\downlink{``)close''}{ugSysCmdclosePage} in section B.5
+\downlink{``)quit''}{ugSysCmdpquitPage} in section B.19
+\downlink{``)system''}{ugSysCmdsystemPage} in section B.25
 
 \endscroll
 \autobuttons
@@ -49618,8 +49565,8 @@ The command
 \end{verbatim}
 will read the contents of the file {\bf matrix.input} into Axiom.  The
 ``.input'' file extension is optional.  See
-\downlink{``\ugInOutInTitle''}{ugInOutInPage} in Section
-\ugInOutInNumber\ignore{ugInOutIn} for more information about {\bf
+\downlink{``Input Files and Output Styles''}{ugInOutInPage} in Section 4
+\ignore{ugInOutIn} for more information about {\bf
 .input} files.
 
 This command remembers the previous file you edited, read or compiled.
@@ -49633,12 +49580,9 @@ give the name of an existing {\bf .input} file.
 The {\tt )quiet} option suppresses output while the file is being read.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} 
-in section \ugSysCmdcompileNumber
-\downlink{``\ugSysCmdeditTitle''}{ugSysCmdeditPage} 
-in section \ugSysCmdeditNumber
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
+\downlink{``)compile''}{ugSysCmdcompilePage} in section B.7
+\downlink{``)edit''}{ugSysCmdeditPage} in section B.9
+\downlink{``)history''}{ugSysCmdhistoryPage}  section B.13
 
 \endscroll
 \autobuttons
@@ -49709,8 +49653,7 @@ For example, to change the {\tt )quit} command to being 
unprotected
 \end{verbatim}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage} 
-in section \ugSysCmdquitNumber
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
 
 \endscroll
 \autobuttons
@@ -49776,12 +49719,9 @@ domain \spadtype{Polynomial(Integer)} (as opposed to 
the general
 Attributes may be listed by using the {\tt )attributes} option.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmddisplayTitle''}{ugSysCmddisplayPage} 
-in section \ugSysCmddisplayNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage} 
-in section \ugSysCmdwhatNumber
+\downlink{``)display''}{ugSysCmddisplayPage} in section B.8
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)what''}{ugSysCmdwhatPage} in section B.28
 
 \endscroll
 \autobuttons
@@ -49821,7 +49761,7 @@ directory is the directory from which you started Axiom 
or is the
 directory you specified using the {\tt )cd} command.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdcdTitle''}{ugSysCmdcdPage} in section 
+\downlink{``)cd''}{ugSysCmdcdPage} in section B.4
 \ugSysCmdcdNumber
 
 \endscroll
@@ -49880,10 +49820,8 @@ To list, say, all synonyms that contain the substring
 \end{verbatim}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdwhatTitle''}{ugSysCmdwhatPage} 
-in section \ugSysCmdwhatNumber
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)what''}{ugSysCmdwhatPage} in section B.28
 
 \endscroll
 \autobuttons
@@ -49931,16 +49869,11 @@ restart Axiom and restore the environment via {\tt 
)history )restore},
 if possible.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage} 
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdfinTitle''}{ugSysCmdfinPage} 
-in section \ugSysCmdfinNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage} 
-in section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdpquitTitle''}{ugSysCmdpquitPage} 
-in section \ugSysCmdpquitNumber
-\downlink{``\ugSysCmdquitTitle''}{ugSysCmdquitPage} 
-in section \ugSysCmdquitNumber
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)fin''}{ugSysCmdfinPage} in section B.10
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)quit''}{ugSysCmdpquitPage} in section B.18
+\downlink{``)quit''}{ugSysCmdquitPage} in section B.19
 
 \endscroll
 \autobuttons
@@ -50193,16 +50126,16 @@ function.
 causes the display of the value of any variable after it is assigned
 in the traced function.  Note that library code must have been
 compiled (see
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} in Section
-\ugSysCmdcompileNumber\ignore{ugSysCmdcompile}) using the {\tt
+\downlink{``)compile''}{ugSysCmdcompilePage} in Section
+B.7\ignore{ugSysCmdcompile}) using the {\tt
 )vartrace} option in order to support this option.
 
 \item[{\tt )vars} {\it var1 \lanb{}... varN\ranb{}}]
 causes the display of the value of any of the specified variables
 after they are assigned in the traced function.  Note that library
 code must have been compiled (see
-\downlink{``\ugSysCmdcompileTitle''}{ugSysCmdcompilePage} in Section
-\ugSysCmdcompileNumber\ignore{ugSysCmdcompile}) using the {\tt
+\downlink{``)compile''}{ugSysCmdcompilePage} in Section
+B.7\ignore{ugSysCmdcompile}) using the {\tt
 )vartrace} option in order to support this option.
 
 \item[{\tt )within} {\it executingFunction}]
@@ -50244,12 +50177,9 @@ to escape them with an underscore.
 \indent{0}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdbootTitle''}{ugSysCmdbootPage} 
-in section \ugSysCmdbootNumber
-\downlink{``\ugSysCmdlispTitle''}{ugSysCmdlispPage} 
-in section \ugSysCmdlispNumber
-\downlink{``\ugSysCmdltraceTitle''}{ugSysCmdltracePage} 
-in section \ugSysCmdltraceNumber
+\downlink{``)boot''}{ugSysCmdbootPage} in section B.3
+\downlink{``)lisp''}{ugSysCmdlispPage} in section B.15
+\downlink{``)trace''}{ugSysCmdltracePage} in section B.26
 
 \endscroll
 \autobuttons
@@ -50329,8 +50259,7 @@ This file consists of all user input lines, excluding 
those
 backtracked over due to a previous {\tt )undo}.
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmdhistoryTitle''}{ugSysCmdhistoryPage} 
-in section \ugSysCmdhistoryNumber
+\downlink{``)history''}{ugSysCmdhistoryPage} in section B.13
 The command {\tt )history )write} will eliminate the ``undone'' command
 lines of your program.
 
@@ -50434,12 +50363,9 @@ The command synonym  {\tt )apropos} is equivalent to
 \indent{0}
 
 \par\noindent{\bf Also See:}
-\downlink{``\ugSysCmddisplayTitle''}{ugSysCmddisplayPage} 
-in section \ugSysCmddisplayNumber
-\downlink{``\ugSysCmdsetTitle''}{ugSysCmdsetPage} 
-in section \ugSysCmdsetNumber
-\downlink{``\ugSysCmdshowTitle''}{ugSysCmdshowPage} 
-in section \ugSysCmdshowNumber
+\downlink{``)display''}{ugSysCmddisplayPage} in section B.8
+\downlink{``)set''}{ugSysCmdsetPage} in section B.21
+\downlink{``)show''}{ugSysCmdshowPage} in section B.22
 
 \texht{\egroup}{}
 \endscroll
diff --git a/changelog b/changelog
index c5aab40..c7f6eb7 100644
--- a/changelog
+++ b/changelog
@@ -1,4 +1,23 @@
-20080727 tpd books/bookvol7.1.pamphlet update What's New branch
+20080728 tpd books/bookvol7.1 update Topics->Numbers branch
+20080728 tpd books/ps/v71binaryexpansionxmppage.eps added
+20080728 tpd books/ps/v71cardinalnumberxmppage.eps added
+20080728 tpd books/ps/v71complexxmppage.eps added
+20080728 tpd books/ps/v71continuedfractionxmppage.eps added
+20080728 tpd books/ps/v71decimalexpansionxmppage.eps added
+20080728 tpd books/ps/v71doublefloatxmppage.eps added
+20080728 tpd books/ps/v71floatxmppage.eps added
+20080728 tpd books/ps/v71fractionpage.eps added
+20080728 tpd books/ps/v71hexexpansionxmppage.eps added
+20080728 tpd books/ps/v71integerpage.eps added
+20080728 tpd books/ps/v71octonionxmppage.eps added
+20080728 tpd books/ps/v71partialfractionxmppage.eps added
+20080728 tpd books/ps/v71quaternionxmppage.eps added
+20080728 tpd books/ps/v71radixexpansionxmppage.eps added
+20080728 tpd books/ps/v71romannumeralxmppage.eps added
+20080728 tpd books/ps/v71singleintegerxmppage.eps added
+20080728 tpd books/ps/v71ugproblemfinitepage.eps added
+20080728 tpd books/ps/v71ugproblemnumericpage.eps added
+20080727 tpd books/bookvol7.1 update What's New branch
 20080727 tpd books/ps/v71feb2005.eps added
 20080727 tpd books/ps/v71january2008.eps added
 20080727 tpd books/ps/v71july2008.eps added




reply via email to

[Prev in Thread] Current Thread [Next in Thread]