diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index 9454583..e496cbf 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -17368,6 +17368,134 @@ CartesianTensor(minix, dim, R): Exports == Implementation where
\end{chunk}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain CELL Cell}
+
+\begin{chunk}{Cell.input}
+)set break resume
+)sys rm -f Cell.output
+)spool Cell.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show Cell
+--E 1
+
+)spool
+)lisp (bye)
+\end{chunk}
+\begin{chunk}{Cell.help}
+====================================================================
+Cell examples
+====================================================================
+
+See Also:
+o )show Cell
+
+\end{chunk}
+
+\pagehead{Cell}{CELL}
+\pagepic{ps/v103cell.eps}{CELL}{1.00}
+{\bf See}\\
+
+{\bf Exports:}\\
+\begin{tabular}{lll}
+\cross{CELL}{coerce} &
+\cross{CELL}{mainVariableOf} &
+\cross{CELL}{samplePoint}\\
+\cross{CELL}{variablesOf} &
+\cross{CELL}{dimension} &
+\cross{CELL}{hasDimension?} \\
+\cross{CELL}{makeCell} &
+\cross{CELL}{makeCell} &
+\cross{CELL}{projection}
+\end{tabular}
+
+\begin{chunk}{domain CELL Cell}
+)abbrev domain CELL Cell
+Cell(TheField) : PUB == PRIV where
+ TheField : RealClosedField
+
+ ThePols ==> Polynomial(TheField)
+
+ O ==> OutputForm
+ B ==> Boolean
+ Z ==> Integer
+ N ==> NonNegativeInteger
+ BUP ==> SparseUnivariatePolynomial(TheField)
+ SCELL ==> SimpleCell(TheField,BUP)
+
+ PUB == CoercibleTo(O) with
+
+ samplePoint : % -> List(TheField)
+
+ dimension : % -> N
+
+ hasDimension? : (%,Symbol) -> B
+
+ makeCell : List(SCELL) -> %
+
+ makeCell : (SCELL,%) -> %
+
+ mainVariableOf : % -> Symbol
+
+ variablesOf : % -> List Symbol
+
+ projection : % -> Union(%,"failed")
+
+ PRIV == add
+
+ Rep := List(SCELL)
+
+ coerce(c:%):O ==
+ paren [sc::O for sc in c]
+
+ projection(cell) ==
+ null cell => error "projection: should not appear"
+ r := rest(cell)
+ null r => "failed"
+ r
+
+ makeCell(l:List(SCELL)) == l
+
+ makeCell(scell,toAdd) == cons(scell,toAdd)
+
+ mainVariableOf(cell) ==
+ null(cell) =>
+ error "Should not appear"
+ variableOf(first(cell))
+
+ variablesOf(cell) ==
+ null(cell) => []
+ cons(mainVariableOf(cell),variablesOf(rest(cell)::%))
+
+ dimension(cell) ==
+ null(cell) => 0
+ hasDimension?(first(cell)) => 1+dimension(rest(cell))
+ dimension(rest(cell))
+
+ hasDimension?(cell,var) ==
+ null(cell) =>
+ error "Should not appear"
+ sc : SCELL := first(cell)
+ v := variableOf(sc)
+ v = var => hasDimension?(sc)
+ v < var => false
+ v > var => true
+ error "Caca Prout"
+
+ samplePoint(cell) ==
+ null(cell) => []
+ cons(samplePoint(first(cell)),samplePoint(rest(cell)))
+
+\end{chunk}
+\begin{chunk}{CELL.dotabb}
+"CELL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=CELL"]
+"SCELL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=SCELL"]
+"CELL" -> "SCELL"
+\end{chunk}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{domain CHAR Character}
\begin{chunk}{Character.input}
@@ -118072,6 +118200,167 @@ SimpleAlgebraicExtension(R:CommutativeRing,
\end{chunk}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain SCELL SimpleCell}
+This domain is made to work with one-dimensional semi-algebraic cells
+ie either an algebraic point, either an interval. The point is specified as
+specification of an algebraic value.
+
+\begin{chunk}{SimpleCell.input}
+)set break resume
+)sys rm -f SimpleCell.output
+)spool SimpleCell.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show SimpleCell
+--E 1
+
+)spool
+)lisp (bye)
+\end{chunk}
+\begin{chunk}{SimpleCell.help}
+====================================================================
+SimpleCell examples
+====================================================================
+
+This domain is made to work with one-dimensional semi-algebraic cells
+ie either an algebraic point, either an interval. The point is
+specified as specification of an algebraic value.
+
+See Also:
+o )show SimpleCell
+
+\end{chunk}
+
+\pagehead{SimpleCell}{SCELL}
+\pagepic{ps/v103simplecell.eps}{SCELL}{1.00}
+{\bf See}\\
+
+{\bf Exports:}\\
+\begin{tabular}{lll}
+\cross{SCELL}{coerce} &
+\cross{SCELL}{hasDimension?} &
+\cross{SCELL}{samplePoint} \\
+\cross{SCELL}{stablePol} &
+\cross{SCELL}{variableOf} &
+\cross{SCELL}{allSimpleCells} \\
+\cross{SCELL}{allSimpleCells} &
+\cross{SCELL}{pointToCell} &
+\cross{SCELL}{separe}
+\end{tabular}
+
+\begin{chunk}{domain SCELL SimpleCell}
+)abbrev domain SCELL SimpleCell
+SimpleCell(TheField,ThePols) : PUB == PRIV where
+ TheField : RealClosedField
+ ThePols : UnivariatePolynomialCategory(TheField)
+ O ==> OutputForm
+ B ==> Boolean
+ Z ==> Integer
+ N ==> NonNegativeInteger
+ VARS ==> RealPolynomialUtilitiesPackage(TheField,ThePols)
+ LF ==> List(TheField)
+
+ PUB == CoercibleTo(O) with
+ allSimpleCells : (ThePols,Symbol) -> List %
+
+ allSimpleCells : (List(ThePols),Symbol) -> List %
+
+ hasDimension? : % -> B
+
+ samplePoint : % -> TheField
+
+ stablePol : % -> ThePols
+
+ variableOf : % -> Symbol
+
+ separe : (LF,TheField,TheField) -> LF
+
+ pointToCell : (TheField,B,Symbol) -> %
+
+ PRIV == add
+
+ Rep := Record(samplePoint:TheField,
+ hasDim:B,
+ varOf:Symbol)
+
+ samplePoint(c) == c.samplePoint
+
+ stablePol(c) == error "Prout"
+
+ hasDimension?(c) == c.hasDim
+
+ variableOf(c) == c.varOf
+
+ coerce(c:%):O ==
+ o : O := ((c.varOf)::O) = ((c.samplePoint)::O)
+ brace [o,(c.hasDim)::O]
+
+ separe(liste,gauche,droite) ==
+ milieu : TheField := (gauche + droite) / (2::TheField)
+ liste = [] => [milieu]
+ #liste = 1 => [gauche,first(liste),droite]
+ nbe := first(liste)
+ lg :List(TheField) := []
+ ld :List(TheField) := rest(liste)
+ sg := sign(milieu-nbe)
+ while sg > 0 repeat
+ lg := cons(nbe,lg)
+ ld = [] => return(separe(reverse(lg),gauche,milieu))
+ nbe := first(ld)
+ sg := sign(milieu-nbe)
+ ld := rest(ld)
+ sg < 0 =>
+ append(separe(reverse(lg),gauche,milieu),
+ rest(separe(cons(nbe,ld),milieu,droite)))
+ newDroite := (gauche+milieu)/(2::TheField)
+ null lg =>
+ newGauche := (milieu+droite)/(2::TheField)
+ while newGauche >= first(ld) repeat
+ newGauche := (milieu+newGauche)/(2::TheField)
+ append([gauche,milieu],separe(ld,newGauche,droite))
+ while newDroite <= first(lg) repeat
+ newDroite := (newDroite+milieu)/(2::TheField)
+ newGauche := (milieu+droite)/(2::TheField)
+ null ld => append(separe(reverse(lg),gauche,newDroite),[milieu,droite])
+ while newGauche >= first(ld) repeat
+ newGauche := (milieu+newGauche)/(2::TheField)
+ append(separe(reverse(lg),gauche,newDroite),
+ cons(milieu,separe(ld,newGauche,droite)))
+
+ pointToCell(sp,hasDim?,varName) ==
+ [sp,hasDim?,varName]$Rep
+
+ allSimpleCells(p:ThePols,var:Symbol) ==
+ allSimpleCells([p],var)
+
+ PACK ==> CylindricalAlgebraicDecompositionUtilities(TheField,ThePols)
+ allSimpleCells(lp:List(ThePols),var:Symbol) ==
+ lp1 := gcdBasis(lp)$PACK
+ null(lp1) => [pointToCell(0,true,var)]
+ b := ("max" / [ boundOfCauchy(p)$VARS for p in lp1 ])::TheField
+ l := "append" / [allRootsOf(makeSUP(unitCanonical(p))) for p in lp1]
+ l := sort(l)
+ l1 := separe(l,-b,b)
+ res : List(%) := [pointToCell(first(l1),true,var)]
+ l1 := rest(l1)
+ while not(null(l1)) repeat
+ res := cons(pointToCell(first(l1),false,var),res)
+ l1 := rest(l1)
+ l1 = [] => return(error "Liste vide")
+ res := cons(pointToCell(first(l1),true,var),res)
+ l1 := rest(l1)
+ reverse! res
+
+\end{chunk}
+\begin{chunk}{SCELL.dotabb}
+"SCELL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=SCELL"]
+"ALIST" [color="#88FF44",href="bookvol10.3.pdf#nameddest=ALIST"]
+"SCELL" -> "ALIST"
+\end{chunk}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{domain SFORT SimpleFortranProgram}
\begin{chunk}{SimpleFortranProgram.input}
@@ -155341,6 +155630,7 @@ Note that this code is not included in the generated catdef.spad file.
\getchunk{domain CARD CardinalNumber}
\getchunk{domain CARTEN CartesianTensor}
+\getchunk{domain CELL Cell}
\getchunk{domain CHAR Character}
\getchunk{domain CCLASS CharacterClass}
\getchunk{domain CLIF CliffordAlgebra}
@@ -155630,6 +155920,7 @@ Note that this code is not included in the generated catdef.spad file.
\getchunk{domain SEX SExpression}
\getchunk{domain SEXOF SExpressionOf}
\getchunk{domain SAE SimpleAlgebraicExtension}
+\getchunk{domain SCELL SimpleCell}
\getchunk{domain SFORT SimpleFortranProgram}
\getchunk{domain SINT SingleInteger}
\getchunk{domain SAOS SingletonAsOrderedSet}
diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 057850e..1b5716f 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -12701,6 +12701,290 @@ CyclotomicPolynomialPackage: public == private where
\end{chunk}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{package CAD CylindricalAlgebraicDecompositionPackage}
+\begin{chunk}{CylindricalAlgebraicDecompositionPackage.input}
+)set break resume
+)sys rm -f CylindricalAlgebraicDecompositionPackage.output
+)spool CylindricalAlgebraicDecompositionPackage.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show CylindricalAlgebraicDecompositionPackage
+--E 1
+
+)spool
+)lisp (bye)
+\end{chunk}
+\begin{chunk}{CylindricalAlgebraicDecompositionPackage.help}
+====================================================================
+CylindricalAlgebraicDecompositionPackage examples
+====================================================================
+
+See Also:
+o )show CylindricalAlgebraicDecompositionPackage
+
+\end{chunk}
+\pagehead{CylindricalAlgebraicDecompositionPackage}{CAD}
+\pagepic{ps/v104cylindricalalgebraicdecompositionpackage.eps}{CAD}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lll}
+\cross{CAD}{coefficientSet} &
+\cross{CAD}{cylindricalDecomposition} &
+\cross{CAD}{cylindricalDecomposition} \\
+\cross{CAD}{discriminantSet} &
+\cross{CAD}{principalSubResultantSet} &
+\cross{CAD}{projectionSet} \\
+\cross{CAD}{resultantSet} &
+\cross{CAD}{specialise}
+\end{tabular}
+
+\begin{chunk}{package CAD CylindricalAlgebraicDecompositionPackage}
+)abbrev package CAD CylindricalAlgebraicDecompositionPackage
+
+CylindricalAlgebraicDecompositionPackage(TheField) : PUB == PRIV where
+
+ TheField : RealClosedField
+
+ ThePols ==> Polynomial(TheField)
+ P ==> ThePols
+ BUP ==> SparseUnivariatePolynomial(TheField)
+ RUP ==> SparseUnivariatePolynomial(ThePols)
+
+ Z ==> Integer
+ N ==> NonNegativeInteger
+
+ CELL ==> Cell(TheField)
+ SCELL ==> SimpleCell(TheField,BUP)
+
+ PUB == with
+
+ cylindricalDecomposition: List P -> List CELL
+
+ cylindricalDecomposition: (List(P),List(Symbol)) -> List CELL
+
+ projectionSet: (List RUP) -> List P
+
+ coefficientSet: RUP -> List P
+
+ discriminantSet : List RUP -> List(P)
+
+ resultantSet : List RUP -> List P
+
+ principalSubResultantSet : (RUP,RUP) -> List P
+
+ specialise : (List(ThePols),CELL) -> List(BUP)
+
+ PRIV == add
+
+ cylindricalDecomposition(lpols) ==
+ lv : List(Symbol) := []
+ for pol in lpols repeat
+ ground?(pol) => "next pol"
+ lv := removeDuplicates(append(variables(pol),lv))
+ lv := reverse(sort(lv))
+ cylindricalDecomposition(lpols,lv)
+
+ cylindricalDecomposition(lpols,lvars) ==
+ lvars = [] => error("CAD: cylindricalDecomposition: empty list of vars")
+ mv := first(lvars)
+ lv := rest(lvars)
+ lv = [] =>
+ lp1 := [ univariate(pol) for pol in lpols ]
+ scells := allSimpleCells(lp1,mv)$SCELL
+ [ makeCell([scell]) for scell in scells ]
+ lpols1 := projectionSet [univariate(pol,mv) for pol in lpols]
+ previousCad := cylindricalDecomposition(lpols1,lv)
+ res : List(CELL) := []
+ for cell in previousCad repeat
+ lspec := specialise(lpols,cell)
+ scells := allSimpleCells(lspec,mv)
+ res := append(res,[makeCell(scell,cell) for scell in scells])
+ res
+
+ PACK1 ==> CylindricalAlgebraicDecompositionUtilities(ThePols,RUP)
+ PACK2 ==> CylindricalAlgebraicDecompositionUtilities(TheField,BUP)
+
+ specialise(lpols,cell) ==
+ lpols = [] => error("CAD: specialise: empty list of pols")
+ sp := samplePoint(cell)
+ vl := variablesOf(cell)
+ res : List(BUP) := []
+ for pol in lpols repeat
+ p1 := univariate(eval(pol,vl,sp))
+ degree(p1) = 0 => "next pol"
+ res := cons(p1,res)
+ res
+
+ coefficientSet(pol) ==
+ res : List(ThePols) := []
+ for c in coefficients(pol) repeat
+ ground?(c) => return(res)
+ res := cons(c,res)
+ res
+
+ SUBRES ==> SubResultantPackage(ThePols,RUP)
+ discriminantSet(lpols) ==
+ res : List(ThePols) := []
+ for p in lpols repeat
+ v := subresultantVector(p,differentiate(p))$SUBRES
+ not(zero?(degree(v.0))) => return(error "Bad discriminant")
+ d : ThePols := leadingCoefficient(v.0)
+ zero?(d) => return(error "Non Square Free polynomial")
+ if not(ground? d) then res := cons(d,res)
+ res
+
+ principalSubResultantSet(p,q) ==
+ if degree(p) < degree(q)
+ then (p,q) := (q,p)
+ if degree(p) = degree(q)
+ then (p,q) := (q,pseudoRemainder(p, q))
+ v := subresultantVector(p,q)$SUBRES
+ [coefficient(v.i,i) for i in 0..(((#v)-2)::N)]
+
+ resultantSet(lpols) ==
+ res : List(ThePols) := []
+ laux := lpols
+ for p in lpols repeat
+ laux := rest(laux)
+ for q in laux repeat
+ r : ThePols := first(principalSubResultantSet(p,q))
+ zero?(r) => return(error "Non relatively prime polynomials")
+ if not(ground? r) then res := cons(r,res)
+ res
+
+ projectionSet(lpols) ==
+ res : List(ThePols) := []
+ for p in lpols repeat
+ c := content(p)
+ ground?(c) => "next p"
+ res := cons(c,res)
+ lp1 := [primitivePart p for p in lpols]
+ f : ((RUP,RUP) -> Boolean) := (degree(#1) <= degree(#2))
+ lp1 := sort(f,lp1)
+ lsqfrb := squareFreeBasis(lp1)$PACK1
+ lsqfrb := sort(f,lsqfrb)
+ for p in lp1 repeat
+ res := append(res,coefficientSet(p))
+ res := append(res,discriminantSet(lsqfrb))
+ append(res,resultantSet(lsqfrb))
+
+\end{chunk}
+\begin{chunk}{CAD.dotabb}
+"CAD" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CAD"]
+"CELL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=CELL"]
+"CAD" -> "CELL"
+\end{chunk}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{package CADU CylindricalAlgebraicDecompositionUtilities}
+Test are some standard tools which are needed to compute with univariate
+polynomials.
+
+A gcd basis for a set of polynomials is a set of pairwise relatively prime
+polynomials which all divide the original set and whose product is the
+same than the product of the original set.
+
+A square free basis for a list of polynomials is just a list
+of square free polynomials which are pairwise relatively primes and have
+the same roots than the original polynomials.
+
+\begin{chunk}{CylindricalAlgebraicDecompositionUtilities.input}
+)set break resume
+)sys rm -f CylindricalAlgebraicDecompositionUtilities.output
+)spool CylindricalAlgebraicDecompositionUtilities.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show CylindricalAlgebraicDecompositionUtilities
+--E 1
+
+)spool
+)lisp (bye)
+\end{chunk}
+\begin{chunk}{CylindricalAlgebraicDecompositionUtilities.help}
+====================================================================
+CylindricalAlgebraicDecompositionUtilities examples
+====================================================================
+
+Test are some standard tools which are needed to compute with univariate
+polynomials.
+
+A gcd basis for a set of polynomials is a set of pairwise relatively prime
+polynomials which all divide the original set and whose product is the
+same than the product of the original set.
+
+A square free basis for a list of polynomials is just a list
+of square free polynomials which are pairwise relatively primes and have
+the same roots than the original polynomials.
+
+See Also:
+o )show CylindricalAlgebraicDecompositionUtilities
+
+\end{chunk}
+\pagehead{CylindricalAlgebraicDecompositionUtilities}{CADU}
+\pagepic{ps/v104cylindricalalgebraicdecompositionutilities.eps}{CADU}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lll}
+\cross{CADU}{gcdBasis} &
+\cross{CADU}{gcdBasisAdd} &
+\cross{CADU}{squareFreeBasis}
+\end{tabular}
+
+\begin{chunk}{package CADU CylindricalAlgebraicDecompositionUtilities}
+)abbrev package CADU CylindricalAlgebraicDecompositionUtilities
+CylindricalAlgebraicDecompositionUtilities(R,P) : PUB == PRIV where
+
+ R : GcdDomain
+ P : UnivariatePolynomialCategory(R)
+
+ PUB == with
+ squareFreeBasis : List(P) -> List(P)
+ ++
+ gcdBasis : List(P) -> List(P)
+ ++ decompose a list of polynomials into pairwise relatively
+ ++ prime polynomials
+ gcdBasisAdd : (P,List(P)) -> List(P)
+ ++ add one polynomial to list of pairwise relatively prime polynomials
+
+ PRIV == add
+
+ squareFreeBasis(lpols) ==
+ lpols = [] => []
+ pol := first(lpols)
+ sqpol := unitCanonical(squareFreePart(pol))
+ gcdBasis(cons(sqpol,squareFreeBasis(rest(lpols))))
+
+ gcdBasisAdd(p,lpols) ==
+ (degree(p) = 0) => lpols
+ null lpols => [unitCanonical p]
+ p1 := first(lpols)
+ g := gcd(p,p1)
+ (degree(g) = 0) => cons(p1,gcdBasisAdd(p,rest lpols))
+ p := (p exquo g)::P
+ p1 := (p1 exquo g)::P
+ basis := gcdBasisAdd(p,rest(lpols))
+ if degree(p1) > 0 then basis := cons(p1,basis)
+ gcdBasisAdd(g,basis)
+
+
+ gcdBasis(lpols) ==
+ (#lpols <= 1) => lpols
+ basis := gcdBasis(rest lpols)
+ gcdBasisAdd(first(lpols),basis)
+
+\end{chunk}
+\begin{chunk}{CADU.dotabb}
+"CADU" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CADU"]
+"PFECAT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PFECAT"]
+"CADU" -> "PFECAT"
+
+\end{chunk}
\chapter{Chapter D}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{package DFINTTLS DefiniteIntegrationTools}
@@ -12732,7 +13016,7 @@ o )show DefiniteIntegrationTools
\end{chunk}
\pagehead{DefiniteIntegrationTools}{DFINTTLS}
-\pagepic{ps/v104definiteintegrationtools.ps}{DFINTTLS}{1.00}
+\pagepic{ps/v104definiteintegrationtools.eps}{DFINTTLS}{1.00}
{\bf Exports:}\\
\begin{tabular}{lll}
@@ -174434,6 +174718,8 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where
\getchunk{package CYCLES CycleIndicators}
\getchunk{package CSTTOOLS CyclicStreamTools}
\getchunk{package CYCLOTOM CyclotomicPolynomialPackage}
+\getchunk{package CAD CylindricalAlgebraicDecompositionPackage}
+\getchunk{package CADU CylindricalAlgebraicDecompositionUtilities}
\getchunk{package DFINTTLS DefiniteIntegrationTools}
\getchunk{package DEGRED DegreeReductionPackage}
diff --git a/books/bookvol10.pamphlet b/books/bookvol10.pamphlet
index 96aa078..587f03a 100644
--- a/books/bookvol10.pamphlet
+++ b/books/bookvol10.pamphlet
@@ -5932,7 +5932,8 @@ LAYER11=\
${OUT}/ASP1.o ${OUT}/ASP10.o ${OUT}/ASP24.o ${OUT}/ASP4.o \
${OUT}/ASP50.o ${OUT}/ASP6.o ${OUT}/ASP73.o ${OUT}/AXSERV.o \
${OUT}/BALFACT.o ${OUT}/BEZOUT.o ${OUT}/BINARY.o ${OUT}/BINFILE.o \
- ${OUT}/BOUNDZRO.o ${OUT}/BPADICRT.o ${OUT}/BRILL.o ${OUT}/CDEN.o \
+ ${OUT}/BOUNDZRO.o ${OUT}/BPADICRT.o ${OUT}/BRILL.o ${OUT}/CADU.o \
+ ${OUT}/CDEN.o \
${OUT}/CHVAR.o ${OUT}/COMMUPC.o ${OUT}/CONTFRAC.o ${OUT}/CVMP.o \
${OUT}/CYCLOTOM.o ${OUT}/CYCLES.o ${OUT}/DDFACT.o ${OUT}/DECIMAL.o \
${OUT}/DIOPS.o ${OUT}/DIOPS-.o ${OUT}/DIRPROD.o ${OUT}/DISPLAY.o \
@@ -6214,6 +6215,21 @@ LAYER11=\
/*"BRILL" -> {"OM"; "TRANFUN"; "TRIGCAT"; "ATRIG"; "HYPCAT"; "AHYP"}*/
/*"BRILL" -> {"ELEMFUN"; "PI"}*/
+"CADU" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CADU"]
+/*"CADU" -> {"GCDDOM"; "INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"} */
+/*"CADU" -> {"CABMON"; "ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"} */
+/*"CADU" -> {"KOERCE"; "SGROUP"; "MONOID"; "LMODULE"; "BMODULE"} */
+/*"CADU" -> {"RMODULE"; "ALGEBRA"; "MODULE"; "ENTIRER"; "LORER"; "UPOLYC"}*/
+/*"CADU" -> {"POLYCAT"; "PDRING"; "FAMR"; "AMR"; "CHARZ"; "CHARNZ"}*/
+/*"CADU" -> {"FRETRCT"; "RETRACT"; "EVALAB"; "IEVALAB"; "FLINEXP"} */
+/*"CADU" -> {"LINEXP"; "ORDSET"; "KONVERT"; "PATMAB"}*/
+"CADU" -> "PFECAT"
+/*"CADU" -> {"UFD"; "ELTAB"; "DIFRING"; "DIFEXT"; "STEP"; "EUCDOM"}*/
+/*"CADU" -> {"PID"; "FIELD"; "DIVRING"; "INT"; "LIST"; "ILIST"}*/
+/*"CADU" -> {"NNI"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"; "HOAGG"}*/
+/*"CADU" -> {"AGG"; "TYPE"; "LNAGG"; "IXAGG"; "ELTAGG"; "CLAGG"}*/
+/*"CADU" -> {"FLAGG"; "ELAGG"; "OM"}*/
+
"CDEN" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CDEN"]
/*"CDEN" -> {"INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"}*/
/*"CDEN" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"; "SGROUP"}*/
@@ -11011,7 +11027,8 @@ LAYER16=\
${OUT}/QUATCAT.o ${OUT}/QUATCAT-.o ${OUT}/RECLOS.o ${OUT}/REP1.o \
${OUT}/RESULT.o ${OUT}/RFFACT.o ${OUT}/RMATRIX.o ${OUT}/ROMAN.o \
${OUT}/ROUTINE.o ${OUT}/RPOLCAT.o ${OUT}/RPOLCAT-.o ${OUT}/RULECOLD.o \
- ${OUT}/SAOS.o ${OUT}/SEGBIND.o ${OUT}/SET.o ${OUT}/SPECOUT.o \
+ ${OUT}/SAOS.o ${OUT}/SCELL.o \
+ ${OUT}/SEGBIND.o ${OUT}/SET.o ${OUT}/SPECOUT.o \
${OUT}/SQMATRIX.o ${OUT}/SWITCH.o ${OUT}/SYMS.o ${OUT}/SYMTAB.o \
${OUT}/SYSSOLP.o ${OUT}/UTSCAT.o ${OUT}/UTSCAT-.o ${OUT}/VARIABLE.o \
layer16done
@@ -12831,6 +12848,26 @@ LAYER16=\
/*"SAOS" -> {"LIST"; "STRING"; "CHAR"; "SINT"; "OUTFORM"; "PRIMARR"}*/
/*"SAOS" -> {"A1AGG-"; "ISTRING"; "SRAGG-"; "FLAGG-"; "LNAGG-"}*/
+"SCELL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=SCELL"]
+/* "SCELL" -> {"KOERCE"; "RCFIELD"; "CHARZ"; "RING"; "RNG"; "ABELGRP"} */
+/* "SCELL" -> {"CABMON"; "ABELMON"' "ABELSG"; "SETCAT"; "BASTYPE"} */
+/* "SCELL" -> {"SGROUP"; "MONOID"; "LMODULE"; "ORDRING"; "OAGROUP"} */
+/* "SCELL" -> {"OCAMON"; "OAMON"; "OASGP"; "COMRING"; "BMODULE"} */
+/* "SCELL" -> {"RMODULE"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "INTDOM"} */
+/* "SCELL" -> {"ALGEBRA"; "MODULE"; "ENTIRER"; "LORER"; "UFD"; "DIVRING"} */
+/* "SCELL" -> {"FRETRCT"; "RETRACT"; "RADCAT"; "UPOLYC"; "POLYCAT"; "FAMR"} */
+/* "SCELL" -> {"AMR"; "CHARZ"; "EVALAB"; "IEVALAB"; "FLINEXP"; "LINEXP"} */
+/* "SCELL" -> {"KONVERT"; "PATMAB"; "PFECAT"; "ELTAB"; "DIFRING"; "DIFEXT"} */
+/* "SCELL" -> {"STEP"; "SYMBOL"; "INT"; "REF"} */
+"SCELL" -> "ALIST"
+/* "SCELL" -> {"LIST"; "STRING"; "CHAR"; "SINT"; "OUTFORM"; "PRIMARR"} */
+/* "SCELL" -> {"A1AGG-"; "ISTRING"; "SRAGG-"; "FLAGG-"; "LNAGG-"} */
+/* "SCELL" -> {"BOOLEAN"; "ILIST"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"} */
+/* "SCELL" -> {"HOAGG"; "AGG"; "TYPE"; "LNAGG"; "IXAGG"; "ELTAGG"; "CLAGG"} */
+/* "SCELL" -> {"FLAGG"; "ELAGG"; "OM"; "PI"; "NNI"; "LSAGG-"; "STAGG-"} */
+/* "SCELL" -> {"ELAGG-"; "URAGG-"; "RCAGG-"; "IXAGG-"; "CLAGG-"; "HOAGG-"} */
+/* "SCELL" -> {"ORDSET-"; "AGG-"; "ELTAGG-"; "SETCAT-""; "BASTYPE-"}*/
+
"SEGBIND" [color="#88FF44",href="bookvol10.3.pdf#nameddest=SEGBIND"]
/*"SEGBIND" -> {"TYPE"; "SETCAT"; "BASTYPE"; "KOERCE"; "SYMBOL"; "INT"}*/
/*"SEGBIND" -> "REF"*/
@@ -13002,7 +13039,7 @@ LAYER17=\
${OUT}/ALGSC.o ${OUT}/AN.o ${OUT}/APPRULE.o ${OUT}/ASP19.o \
${OUT}/ASP20.o ${OUT}/ASP31.o ${OUT}/ASP35.o ${OUT}/ASP41.o \
${OUT}/ASP42.o ${OUT}/ASP74.o ${OUT}/ASP77.o ${OUT}/ASP80.o \
- ${OUT}/CDFMAT.o ${OUT}/CDFVEC.o \
+ ${OUT}/CDFMAT.o ${OUT}/CDFVEC.o ${OUT}/CELL.o \
${OUT}/CINTSLPE.o ${OUT}/COMBF.o ${OUT}/COMPFACT.o ${OUT}/COMPLEX.o \
${OUT}/COMPLPAT.o ${OUT}/CMPLXRT.o ${OUT}/CPMATCH.o ${OUT}/CRFP.o \
${OUT}/CTRIGMNP.o ${OUT}/D01WGTS.o ${OUT}/D02AGNT.o ${OUT}/D03EEFA.o \
@@ -13452,6 +13489,20 @@ LAYER17=\
/*"CDFVEC" -> {"TRIGCAT"; "ATRIG"; "HYPCAT"; "AHYP"; "ELEMFUN"; "PFECAT"}*/
/*"CDFVEC" -> {"OM"; "SPFCAT"; "INS"; "OINTDOM"; "CFCAT"}*/
+"CELL" [color="#88FF44",href="bookvol10.3.pdf#nameddest=CELL"]
+"CELL" -> "SCELL"
+/* "CELL" -> {"KOERCE"; "RCFIELD"; "CHARZ"; "RING"; "RNG"} */
+/* "CELL" -> {"ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SETCAT"} */
+/* "CELL" -> {"BASTYPE"; "SGROUP"; "MONOID"; "LMODULE"; "ORDRING"} */
+/* "CELL" -> {"OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "ORDSET"} */
+/* "CELL" -> {"COMRING"; "BMODULE"; "RMODULE"; "FIELD"; "EUCDOM"} */
+/* "CELL" -> {"PID"; "GCDDOM"; "INTDOM"; "ALGEBRA"; "MODULE"} */
+/* "CELL" -> {"ENTIRER"; "LORER"; "UFD"; "DIVRING"; "FRETRCT"} */
+/* "CELL" -> {"RETRACT"; "RADCAT"; "INT"; "LIST"; "ILIST"} */
+/* "CELL" -> {"NNI"; "SYMBOL"; "REF"; "ALIST"; "STRING"; "CHAR"} */
+/* "CELL" -> {"SINT"; "OUTFORM"; "PRIMARR"; "A1AGG-"; "ISTRING"} */
+/* "CELL" -> {"SRAGG-"; "FLAGG-"; "LNAGG-"; "BOOLEAN"} */
+
"CINTSLPE" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CINTSLPE"]
/*"CINTSLPE" -> {"INS"; "UFD"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"}*/
/*"CINTSLPE" -> {"RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SETCAT"}*/
@@ -15766,10 +15817,11 @@ LAYER17=\
\end{chunk}
\subsection{Layer18}
Depends on: ACFS EXPRSOL FDIVCAT RSETCAT UFPS ULSCCAT UTSSOL
-Used in next layer: EXPRSOL SFRTCAT
+Used in next layer: EXPRSOL SFRTCAT CELL
\begin{chunk}{layer18}
LAYER18=\
+ ${OUT}/CAD.o \
${OUT}/DEFINTEF.o ${OUT}/DEFINTRF.o ${OUT}/DFINTTLS.o ${OUT}/EFULS.o \
${OUT}/ESCONT.o ${OUT}/EXPR.o ${OUT}/EXPRSOL.o ${OUT}/EXPR2UPS.o \
${OUT}/FACTEXT.o \
@@ -15789,7 +15841,26 @@ LAYER18=\
\end{chunk}
\begin{chunk}{layerpic}
/* layer 18 */
-/* depends on: ACFS FDIVCAT RSETCAT UFPS ULSCCAT UTSSOL */
+/* depends on: ACFS FDIVCAT RSETCAT UFPS ULSCCAT UTSSOL CELL */
+
+"CAD" [color="#FF4488",href="bookvol10.4.pdf#nameddest=CAD"]
+"CAD" -> "CELL"
+/*"CAD" -> {"POLY"; "SUP"; "INT"; "NNI"; "SCELL"; "RCFIELD" } */
+/*"CAD" -> {"CHARZ"; "RING"; "RNG"; "ABELGRP"; "CABMON" } */
+/*"CAD" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE" } */
+/*"CAD" -> {"SGROUP"; "MONOID"; "LMODULE"; "ORDRING"; "OAGROUP" } */
+/*"CAD" -> {"OCAMON"; "OAMON"; "OASGP"; "ORDSET"; "COMRING"} */
+/*"CAD" -> {"BMODULE"; "RMODULE"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"} */
+/*"CAD" -> {"INTDOM"; "ALGEBRA"; "MODULE"; "ENTIRER"; "LORER"; "UFD"} */
+/*"CAD" -> {"DIVRING"; "FRETRCT"; "RETRACT"; "RADCAT"; "LIST"; "INT"} */
+/*"CAD" -> {"LSAGG"; "STAGG"; "URAGG"; "RCAGG"; "HOAGG"; "AGG" } */
+/*"CAD" -> {"TYPE"; "EVALAB"; "IEVALAB"; "LNAGG"; "IXAGG"; "ELTAGG" } */
+/*"CAD" -> {"ELTAB"; "CLAGG"; "KONVERT"; "FLAGG"; "ELAGG"; "OM" } */
+/*"CAD" -> {"PATMAB"; "LIST"; "LSAGG-"; "STAGG-"; "ELAGG-" } */
+/*"CAD" -> {"FLAGG-"; "POLYCAT"; "PDRING"; "FAMR"; "AMR"; "CHARNZ" } */
+/*"CAD" -> {"FLINEXP"; "LINEXP"; " PFECAT"; "CADU"; "SUBRESP " } */
+/*"CAD" -> {"PRIMARR"; "UPOLYC"; "DIFRING"; "DIFEXT"; "STEP"; "SINT" } */
+/*"CAD" -> {"A1AGG" } */
"DEFINTEF" [color="#FF4488",href="bookvol10.4.pdf#nameddest=DEFINTEF"]
/*"DEFINTEF" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"}*/
@@ -17989,6 +18060,7 @@ REGRESS= \
CardinalNumber.regress \
CartesianTensor.regress \
CartesianTensorFunctions2.regress \
+ Cell.regress \
CentralAttribute.regress \
ChangeOfVariable.regress \
Character.regress \
@@ -18033,6 +18105,8 @@ REGRESS= \
CycleIndicators.regress \
CyclicStreamTools.regress \
CyclotomicPolynomialPackage.regress \
+ CylindricalAlgebraicDecompositionPackage.regress \
+ CylindricalAlgebraicDecompositionUtilities.regress \
dasum.regress \
daxpy.regress \
dcabs1.regress \
@@ -18846,6 +18920,7 @@ REGRESS= \
ShallowlyMutableAttribute.regress \
SimpleAlgebraicExtension.regress \
SimpleAlgebraicExtensionAlgFactor.regress \
+ SimpleCell.regess \
SimpleFortranProgram.regress \
SingleInteger.regress \
SingletonAsOrderedSet.regress \
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index c017e6b..f79bdfc 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -24243,6 +24243,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
(|CardinalNumber| . CARD)
(|CartesianTensor| . CARTEN)
(|CartesianTensorFunctions2| . CARTEN2)
+ (|Cell| . CELL)
(|Character| . CHAR)
(|CharacterClass| . CCLASS)
(|CharacteristicPolynomialPackage| . CHARPOL)
@@ -24261,6 +24262,8 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
(|CoordinateSystems| . COORDSYS)
(|CRApackage| . CRAPACK)
(|CycleIndicators| . CYCLES)
+ (|CylindricalAlgebraicDecompositionPackage| . CAD)
+ (|CylindricalAlgebraicDecompositionUtilities| . CADU)
(|Database| . DBASE)
(|DataList| . DLIST)
(|DecimalExpansion| . DECIMAL)
@@ -24561,6 +24564,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
(|SegmentFunctions2| . SEG2)
(|Set| . SET)
(|SimpleAlgebraicExtensionAlgFactor| . SAEFACT)
+ (|SimpleCell| . SCELL)
(|SimplifyAlgebraicNumberConvertPackage| . SIMPAN)
(|SingleInteger| . SINT)
(|SmithNormalForm| . SMITH)
diff --git a/books/bookvolbib.pamphlet b/books/bookvolbib.pamphlet
index cc291b7..9c3290b 100644
--- a/books/bookvolbib.pamphlet
+++ b/books/bookvolbib.pamphlet
@@ -85,7 +85,7 @@ IBM Research Report, RC3062 Sept 1970
\bibitem[Broadbery 95]{BGDW95} Broadbery, P. A.; G{\'o}mez-D{\'\i}az, T.;
Watt, S. M.\\
-``On the implementation of dynamic evaluation''\\
+``On the Implementation of Dynamic Evaluation''\\
In Levelt [Lev95] pages 77-84 ISBN 0-89791-699-9 LCCN QA76.95 I59 1995
ACM order number 505950\\
\verb|pdf.aminer.org/000/449/014/on_the_implementation_of_dynamic_evaluation.pdf|
@@ -111,7 +111,7 @@ to form new processes to explore alternative branches in parallel.
\end{adjustwidth}
\bibitem[Boehm 89]{Boe89} Boehm, Hans-J.\\
-``Type inference in the presence of type abstraction''\\
+``Type Inference in the Presence of Type Abstraction''\\
ACM SIGPLAN Notices, 24(7) pp192-206 July 1989 CODEN SINODQ ISSN 0362-1340\\
\verb|www.acm.org/pubs/citations/proceedings/pldi/73141/p192-boehm|
%\verb|axiom-developer.org/axiom-website/papers/Boe89.pdf|
@@ -237,7 +237,7 @@ algebra systems.
\end{adjustwidth}
\bibitem[Bronstein 92]{Bro92} Bronstein, M.\\
-``Linear Ordinary Differential Equations: breaking through the order 2 barrier''\\
+``Linear Ordinary Differential Equations: Breaking Through the Order 2 Barrier''\\
\verb|www-sop.inria.fr/cafe/Manuel.Bronstein/publications/issac92.ps.gz|
%\verb|axiom-developer.org/axiom-website/papers/Bro92.pdf|
@@ -270,7 +270,7 @@ LCCN QA76.95 I59 1993 ACM order number 505930
\verb|arxiv.org/PS_cache/nlin/pdf/0408/0408058v1.pdf|
\bibitem[Bronstein 93]{BS93} Bronstein, Manuel; Salvy, Bruno\\
-``Full partial fraction decomposition of rational functions''\\
+``Full Partial Fraction Decomposition of Rational Functions''\\
In Bronstein [Bro93] pp157-160 ISBN 0-89791-604-2 LCCN QA76.95 I59 1993\\
\verb|www.acm.org/pubs/citations/proceedings/issac/164081/p157-bronstein|
@@ -296,6 +296,7 @@ Elektronik, 43(15) pp107-110, July 1994, CODEN EKRKAR ISSN 0013-5658
\bibitem[Bronstein 97a]{Bro97a} Bronstein, Manuel; Weil, Jacques-Arthur\\
``On Symmetric Powers of Differential Operators''\\
+ISSAC'97 pp 156-163 ACM NY (1997)
\verb|www-sop.inria.fr/cafe/Manuel.Bronstein/publications/mb_papers.html|
%\verb|axiom-developer.org/axiom-website/papers/Bro97a.pdf|
@@ -345,7 +346,6 @@ Two volumes
\bibitem[Buhl 05]{Buh05} Buhl, Soren L.\\
``Some Reflections on Integrating a Computer Algebra System in R''\\
-\verb|www.math.auc.dk/~slb/kurser/software/RCompAlg.pdf|
\bibitem[Burge 91]{Bur91} Burge, W.H.\\
``Scratchpad and the Rogers-Ramanujan identities''\\
@@ -379,9 +379,10 @@ Scratchpad''\\
Rapports de recherche 1586, Institut National de Recherche en
Informatique et en Automatique, Le Chesnay, France, January 1992, 12pp
-\bibitem[Caprotti]{CCR} Caprotti, Olga; Cohen, Arjeh M.; Riem, Manfred\\
+\bibitem[Caprotti 00]{CCR00} Caprotti, Olga; Cohen, Arjeh M.; Riem, Manfred\\
``Java Phrasebooks for Computer Algebra and Automated Deduction''\\
\verb|www.sigsam.org/bulletin/articles/132/paper8.pdf|
+%\verb|axiom-developer.org/axiom-website/papers/CCR00.pdf|
\bibitem[Capriotti 99]{CC99} Capriotti, O.; Carlisle, D.\\
``OpenMath and MathML: Semantic Mark Up for Mathematics''\\
@@ -597,6 +598,7 @@ Downer's Grove, IL, USA and Oxford, UK, August 1993\\
\bibitem[Davenport (a)]{DFxx} Davenport, James; Faure, Christ\'ele\\
``The Unknown in Computer Algebra''
+\verb|axiom-wiki.newsynthesis.org/public/refs/TheUnknownInComputerAlgebra.pdf|
%\verb|axiom-developer.org/axiom-website/papers/DFxx.pdf|
\begin{adjustwidth}{2.5em}{0pt}
@@ -720,7 +722,7 @@ automated coerion algorithm in Axiom.
``Automated coercion for Axiom''\\
In Dooley [Doo99], pp229-235
ISBN 1-58113-073-2 LCCN QA76.95.I57 1999 ACM Press\\
-\verb|www.acm.org/pubs/contents/proceedings/issac/309831|
+\verb|www.acm.org/citation.cfm?id=309944|
\bibitem[Dominguez 01]{DR01} Dom\'inguez, C\'esar; Rubio, Julio\\
``Modeling Inheritance as Coercion in a Symbolic Computation System''
@@ -744,12 +746,23 @@ fragment.
Grant citation GR/L48256 Nov 1, 1997-Feb 28, 2001\\
\verb|www.cs.st-andrews.ac.uk/research/output/detail?output=ML97.php|
-\bibitem[Dunstan 01]{DGKM01} Dunstan, Martin; Gottliebsen, Hanne;
-Kelsey, Tom; Martin, Ursula\\
-``Computer Algebra meets Automated Theorem Proving: A Maple-PVS Interface''
+\bibitem[Adams 01]{DGKM01} Adams, Andrew; Dunstan, Martin; Gottliebsen, Hanne;
+Kelsey, Tom; Martin, Ursula; Owre, Sam\\
+``Computer Algebra meets Automated Theorem Proving: Integrating Maple and PVS''
TPHOLS 2001, Edinburgh\\
-\verb|www.cs-st-andrews.ac.uk/~tom/pub/tphols.ps|\\
-\verb|www.cs-st-andrews.ac.uk/~tom/pub/dunstanetal.ps|
+\verb|www.csl.sri.com/~owre/papers/tphols01/tphols01.pdf|
+%\verb|axiom-developer.org/axiom-website/papers/DGKM01.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+We describe an interface between version 6 of the Maple computer
+algebra system with the PVS automated theorem prover. The interface is
+designed to allow Maple users access to the robust and checkable proof
+environment of PVS. We also extend this environment by the provision
+of a library of proof strategies for use in real analysis. We
+demonstrate examples using the interface and the real analysis
+library. These examples provide proofs which are both illustrative and
+applicable to genuine symbolic computation problems.
+\end{adjustwidth}
\bibitem[Duval 92]{DJ92} Duval D.; Jung, F.\\
``Examples of problem solving using computer algebra''\\
@@ -769,6 +782,16 @@ Journal of Pure and Applied Algebra, no99, 1995, pp. 267--295.
\bibitem[Erocal 10]{ES10} Er\"ocal, Burcin; Stein, William\\
``The Sage Project''\\
\verb|wstein.org/papers/icms/icms_2010.pdf|
+%\verb|axiom-developer.org/axiom-website/papers/ES10.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+Sage is a free, open source, self-contained distribution of
+mathematical software, including a large library that provides a
+unified interface to the components of this distribution. This library
+also builds on the components of Sage to implement novel algorithms
+covering a broad range of mathematical functionality from algebraic
+combinatorics to number theory and arithmetic geometry.
+\end{adjustwidth}
\subsection{F} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -781,6 +804,7 @@ In Watanabe and Nagata [WN90], pp60-67 ISBN 0-89791-401-5 LCCN QA76.95.I57 1990
``An incremental approach to building a mathematical expert out of software''\\
4/19/2005\hfill\\
\verb|www.cs.berkeley.edu/~fateman/papers/axiom.pdf|
+%\verb|axiom-developer.org/axiom-website/papers/Fat05.pdf|
\bibitem[Fateman 06]{Fat06} Fateman, R. J.\\
``Building Algebra Systems by Overloading Lisp''\\
@@ -819,10 +843,11 @@ Automatique Sept. 2000 No. 4001
%\verb|axiom-developer.org/axiom-website/papers/FDN00b.pdf|
\begin{adjustwidth}{2.5em}{0pt}
-One of the main strengths of computer algebra is being able to solve a family
-of problems with one computation. In order to express not only one problem
-but a family of problems, one introduces some symbols which are in fact the
-parameters common to all the problems of the family.
+One of the main strengths of computer algebra is being able to solve a
+family of problems with one computation. In order to express not only
+one problem but a family of problems, one introduces some symbols
+which are in fact the parameters common to all the problems of the
+family.
The user must be able to understand in which way these parameters
affect the result when he looks at the answer. Otherwise it may lead
@@ -894,6 +919,20 @@ CODEN JSYCEH ISSN 0747-7171
\verb|pid=1-s2.0-S0747717188800488-main.pdf|
%\verb|axiom-developer.org/axiom-website/papers/GM88.pdf|
+\begin{adjustwidth}{2.5em}{0pt}
+Buchberger's algorithm calculates Groebner bases of polynomial
+ideals. Its efficiency depends strongly on practical criteria for
+detecting superfluous reductions. Buchberger recommends two
+criteria. The more important one is interpreted in this paper as a
+criterion for detecting redundant elements in a basis of a module of
+syzygies. We present a method for obtaining a reduced, nearly minimal
+basis of that module. The simple procedure for detecting (redundant
+syzygies and )superfluous reductions is incorporated now in our
+installation of Buchberger's algorithm in SCRATCHPAD II and REDUCE
+3.3. The paper concludes with statistics stressing the good
+computational properties of these installations.
+\end{adjustwidth}
+
\bibitem[Geddes 92]{GCL92} Geddes, Keith; Czapor, O.; Stephen R.;
Labahn, George\\
``Algorithms For Computer Algebra''\\
@@ -1086,6 +1125,7 @@ implemented in a symbolic manipulation system.
\bibitem[Boyle 88]{Boyl88} Boyle, Ann\\
``Future Directions for Research in Symbolic Computation''\\
+Soc. for Industrial and Applied Mathematics, Philadelphia (1990)
\verb|www.eecis.udel.edu/~caviness/wsreport.pdf|
%\verb|axiom-developer.org/axiom-website/Boyl88.pdf|
@@ -1270,7 +1310,6 @@ Oxford, UK, 1994\\
``Formal Methods and Computer Algebra: A Larch Specification of AXIOM
Categories and Functors''\\
Ph.D. Thesis, University of St Andrews, 1999\\
-\verb|www.cs.st-andrews.ac.uk/research/publications/Kel00.php|
\bibitem[Kelsey 00a]{Kel00a} Kelsey, Tom\\
``Formal specification of computer algebra''\\
@@ -1388,8 +1427,9 @@ In Anonymous [Ano91], pp287-299 (vol. 1) 2 vols.
\bibitem[Lecerf 96]{Le96} Lecerf, Gr\'egoire\\
``Dynamic Evaluation and Real Closure Implementation in Axiom''\\
June 29, 1996 \\
-\verb|www.math.uvsq.fr/~lecerf/software/drc/drc.ps|
-
+\verb|lecerf.perso.math.cnrs.fr/software/drc/drc.ps|
+%\verb|axiom-developer.org/axiom-website/papers/Le96.ps|
+TPDHERE
\bibitem[Lecerf 96a]{Le96a} Lecerf, Gr\'egoire\\
``The Dynamic Real Closure implemented in Axiom''\\
\verb|lecerf.perso.math.cnrs.fr/software/drc/drc.ps|
@@ -1425,6 +1465,18 @@ This paper proposes a non-intrusive automatic parallelization
framework for typeful and property-aware computer algebra systems.
\end{adjustwidth}
+\bibitem[Ligatsikas 96]{Liga96} Ligatsikas, Zenon; Rioboo, Renaud;
+Roy, Marie Francoise\\
+``Generic computation of the real closure of an ordered field''\\
+Math. and Computers in Simulation 42 pp 541-549 (1996)\\
+%\verb|axiom-developer.org/axiom-website/papers/Liga96.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+This paper describes a generalization of the real closure computation
+of an ordered field (Rioboo, 1991) enabling to use different technques
+to code a single real algebraic number.
+\end{adjustwidth}
+
\bibitem[Linton 93]{Lin93} Linton, Steve\\
``Vector Enumeration Programs, version 3.04''\\
\verb|www.cs.st-andrews.ac.uk/~sal/nme/nme_toc.html#SEC1|
@@ -2333,6 +2385,19 @@ problems of elementary algebra and geometry.
``On the Theories of Triangular Sets''\\
Journal of Symbolic Computation 1999 Vol 28 pp105-124
+\bibitem[Aubry 96]{Aub96} Aubry, Philippe; Maza, Marc Moreno\\
+``Triangular Sets for Solving Polynomial Systems: a Comparison of Four Methods''\\
+\verb|www.lip6.fr/lip6/reports/1997/lip6.1997.009.ps.gz|
+%\verb|axiom-developer.org/axiom-website/papers/Aub96.ps|
+
+\begin{adjustwidth}{2.5em}{0pt}
+Four methods for solving polynomial systems by means of triangular
+sets are presented and implemented in a unified way. These methods are
+those of Wu, Lazard, Kalkbrener, and Wang. They are compared on
+various examples with emphasis on efficiency, conciseness and
+legibility of the outputs.
+\end{adjustwidth}
+
\subsection{B} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibitem[Bailey 66]{Bai66} Bailey P B\\
@@ -2437,6 +2502,11 @@ J. Reine Angew. Math., v. 234, (1969), pp. 45-64
``Note on Irreducibility Testing''\\
Mathematics of Computation, vol. 35, num. 35, Oct. 1980, 1379-1381
+\bibitem[Bronstein 98a]{Bro98a} Bronstein, M.; Grabmeier, J.; Weispfenning, V. (eds)\\
+``Symbolic Rewriting Techniques''\\
+Progress in Computer Science and Applied Logic 15, Birkhauser-Verlag, Basel
+ISBN 3-7643-5901-3 (1998)
+
\bibitem[Bronstein 88]{Bro88} Bronstein, Manual\\
``The Transcendental Risch Differential Equation''\\
J. Symbolic Computation (1990) 9, pp49-60 Feb 1988\\
@@ -2512,8 +2582,60 @@ a particular integrand along the way.
\bibitem[Bronstein 98b]{Bro98b} Bronstein, Manuel\\
``Symbolic Integration Tutorial''\\
INRIA Sophia Antipolis ISSAC 1998 Rostock
+\verb|www-sop.inria.fr/cafe/Manuel.Bronstein/publications/issac98.pdf|
%\verb|axiom-developer.org/axiom-website/papers/Bro98b.pdf|
+\bibitem[Brown 99]{Brow99} Brown, Christopher W.\\
+``Solution Formula Construction for Truth Invariant CADs''\\
+Ph.D Thesis, Univ. Delaware (1999)
+\verb|www.usna.edu/Users/cs/wcbrown/reearch/thesis.ps.gz|
+%\verb|axiom-developer.org/axiom-website/papers/Brow99.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+The CAD-based quantifier elimination algorithm takes a formula from
+the elementary theory of real closed fields as input, and constructs a
+CAD of the space of the formula's unquantified variables. This
+decomposition is truth invariant with respect to the input formula,
+meaning that the formula is either identically true or identically
+false in each cell of the decomposition. The method determines the
+truth of the input formula for each cell of the CAD, and then uses the
+CAD to construct a solution formula -- a quantifier free formula that
+is equivalent to the input formula. This final phase of the algorithm,
+the solution formula construction phase, is the focus of this thesis.
+
+An optimal solution formula construction algorithm would be {\sl
+complete} -- i.e. applicable to any truth-invariant CAD, would be {\sl
+efficient}, and would produce {\sl simple} solution formulas. Prior to
+this thesis, no method was available with even two of these three
+properties. Several algorithms are presented, all addressing problems
+related to solution formula construction. In combination, these
+provide an efficient and complete method for constructing solution
+formulas that are simple in a variety of ways.
+
+Algorithms presented in this thesis have been implemented using the
+SACLIB library, and integrated into QEPCAD, a SACLIB-based
+implementation of quantifier elimination by CAD. Example computations
+based on these implementations are discussed.
+\end{adjustwidth}
+
+\bibitem[Brown 02]{Brow02} Brown, Christopher W.\\
+``QEPCAD B -- A program for computing with semi-algebraic sets using CADs''\\
+%\verb|axiom-developer.org/axiom-website/papers/Brow02.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+This report introduces QEPCAD B, a program for computing with real
+algebraic sets using cylindrical algebraic decomposition (CAD). QEPCAD
+B both extends and improves upon the QEPCAD system for quantifier
+elimination by partial cylindrical algebraic decomposition written by
+Hoon Hong in the early 1990s. This paper briefly discusses some of the
+improvements in the implementation of CAD and quantifier elimination
+vis CAD, and provides somewhat more detail on extensions to the system
+that go beyond quantifier elimination. The author is responsible for
+most of the extended features of QEPCAD B, but improvements to the
+basic CAD implementation and to the SACLIB library on which QEPCAD is
+based are the results of many people's work.
+\end{adjustwidth}
+
\subsection{C} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibitem[Carlson 65]{Car65} Carlson B C\\
@@ -2541,6 +2663,20 @@ Math. Comput. 51 267--280. (1988)
Paris 1829 (reprinted Oeuvres, II S\'erie, Tome IX,
Gauthier-Villars, Paris, 1891).
+\bibitem[Ch\`eze 07]{Chez07} Ch\'eze, Guillaume; Lecerf, Gr\'egoire\\
+``Lifting and recombination techniques for absolute factorization''\\
+Journal of Complexity, VOl 23 Issue 3 June 2007 pp 380-420
+\verb|www.sciencedirect.com/science/article/pii/S0885064X07000465|
+%\verb|axiom-developer.org/axiom-website/papers/Chez07.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+In the vein of recent algorithmic advances in polynomial factorization
+based on lifting and recombination techniques, we present new faster
+algorithms for computing the absolute factorization of a bivariate
+polynomial. The running time of our probabilistic algorithm is less
+than quadratic in the dense size of the polynomial to be factored.
+\end{adjustwidth}
+
\bibitem[Childs 79]{CSDDN79} Childs B; Scott M; Daniel J W; Denman E;
Nelson P (eds)\\
``Codes for Boundary-value Problems in Ordinary Differential Equations''\\
@@ -2786,6 +2922,24 @@ according to the approach of sketch theory.
\subsection{F} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\bibitem[Fateman 08]{Fat08} Fateman, Richard\\
+``Revisiting numeric/symbolic indefinite integration of rational functions, and extensions''\\
+\verb|www.eecs.berkeley.edu/~fateman/papers/integ.pdf|
+%\verb|axiom-developer.org/axiom-website/papers/Fat08.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+We know we can solve this problem: Given any rational function
+$f(x)=p(x)/q(x)$, where $p$ and $q$ are univariate polynomials over
+the rationals, compute its {\sl indefinite} integral, using if
+necessary, algebraic numbers. But in many circumstances an approximate
+result is more likely to be of use. Furthermore, it is plausible that
+it would be more useful to solve the problem to allow definite
+integration, or introduce additional parameters so that we can solve
+multiple definite integrations. How can a computer algebra system
+best answer the more useful questions? Finally, what if the integrand
+is not a ratio of polynomials, but something more challenging?
+\end{adjustwidth}
+
\bibitem[Fletcher 01]{Fl01} Fletcher, John P.\\
``Symbolic processing of Clifford Numbers in C++''\\
Paper 25, AGACSE 2001.
@@ -3381,6 +3535,7 @@ J. Res. Natl. Inst. Stand. Technol. (NIST) V105 No4 July-Aug 2000 pp589-590
typewriter-like devices''\\
Interactive Systems for Experimental and Applied Mathematics
M. Klerer and J. Reinfelds, eds., Academic Press, New York 1968, pp79-90
+%\verb|axiom-developer.org/axiom-website/papers/Mil68.pdf|
\bibitem[Minc 79]{Min79} Henryk Minc\\
``Evaluation of Permanents''\\
@@ -4619,7 +4774,8 @@ condition generator for Larch/Aldor.
\bibitem[Dunstan 00]{Dun00} Dunstan, Martin; Kelsey, Tom; Martin, Ursula;
Linton, Steve\\
``Formal Methods for Extensions to CAS''\\
-FM 99, Toulouse, France, Sept 20-24, 1999, p1758-1777
+FME'99, Toulouse, France, Sept 20-24, 1999, pp 1758-1777
+\verb|tom.host.cs.st-andrews.ac.uk/pub/fm99.ps|
%\verb|axiom-developer.org/axiom-website/papers/Dun00.pdf|
\begin{adjustwidth}{2.5em}{0pt}
@@ -4678,6 +4834,22 @@ validation test for that example.
Addison-Wesley ISBN 0-321-14306-X
%\verb|axiom-developer.org/axiom-website/papers/Lamp02.pdf|
+\bibitem[Martin 97]{Mart97} Martin, U.; Shand, D.\\
+``Investigating some Embedded Verification Techniques for Computer Algebra Systems''\\
+\verb|www.risc.jku.at/conferences/Theorema/papers/shand.ps.gz|
+%\verb|axiom-developer.org/axiom-website/papers/Mart97.ps|
+
+\begin{adjustwidth}{2.5em}{0pt}
+This paper reports some preliminary ideas on a collaborative project
+between St. Andrews University in the UK and NAG Ltd. The project aims
+to use embedded verification techniques to improve the reliability and
+mathematical soundness of computer algebra systems. We give some
+history of attempts to integrate computer algebra systems and
+automated theorem provers and discuss possible advantages and
+disadvantages of these approaches. We also discuss some possible case
+studies.
+\end{adjustwidth}
+
\bibitem[Mason 86]{Mason86} Mason, Ian A.\\
``The Semantics of Destructive Lisp''\\
Center for the Study of Language and Information ISBN 0-937073-06-7
@@ -5249,6 +5421,28 @@ formulae the method has gained practical applications, e.g. in the
context of computing threshold conditions in epidemic modeling.
\end{adjustwidth}{2.5em}{0pt}
+\bibitem[Ulmer 03]{Ulm03} Ulmer, Felix\\
+``Liouvillian solutions of third order differential equations''\\
+J. Symbolic COmputations 36 pp 855-889 (2003)
+\verb|www.sciencedirect.com/science/article/pii/S0747717103000658|
+%\verb|axiom-developer.org/axiom-website/papers/Ulm03.pdf|
+
+\begin{adjustwidth}{2.5em}{0pt}
+The Kovacic algorithm and its improvements give explicit formulae for
+the Liouvillian solutions of second order linear differential
+equations. Algorithms for third order differential equations also
+exist, but the tools they use are more sophisticated and the
+computations more involved. In this paper we refine parts of the
+algorithm to find Liouvillian solutions of third order equations. We
+show that,except for four finite groups and a reduction to the second
+order case, it is possible to give a formula in the imprimitve
+case. We also give necessary conditions and several simplifications
+for the computation of the minimal polynomial for the remaining finite
+set of finite groups (or any known finite group) by extracting
+ramification information from the character table. Several examples
+have been constructed, illustrating the possibilities and limitations.
+\end{adjustwidth}
+
\subsection{Expression Simplification} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibitem[Carette 04]{Car04} Carette, Jacques\\
@@ -5872,7 +6066,7 @@ an integral arising in analyzing the entropy of certain processes.
\bibitem[Raab 13]{Raab13} Raab, Clemens G.\\
``Generalization of Risch's Algorithm to Special Functions''\\
-\verb|arxiv.org/pdf/1305.1481.pdf|
+\verb|arxiv.org/pdf/1305.1481|
%\verb|axiom-developer.org/axiom-website/papers/Raab13.pdf|
\begin{adjustwidth}{2.5em}{0pt}
diff --git a/books/ps/v103cell.eps b/books/ps/v103cell.eps
new file mode 100644
index 0000000..5aafbcb
--- /dev/null
+++ b/books/ps/v103cell.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 104 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 104 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 68 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+65 112 lineto
+65 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+65 112 lineto
+65 -5 lineto
+closepath stroke
+% CELL
+gsave
+[ /Rect [ 3 72 57 108 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=CELL) >>
+ /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 57 108 moveto
+3 108 lineto
+3 72 lineto
+57 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 57 108 moveto
+3 108 lineto
+3 72 lineto
+57 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+12 86.4 moveto 36 (CELL) alignedtext
+grestore
+% SCELL
+gsave
+[ /Rect [ 0 0 60 36 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=SCELL) >>
+ /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 60 36 moveto
+0 36 lineto
+0 0 lineto
+60 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 60 36 moveto
+0 36 lineto
+0 0 lineto
+60 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+7.5 14.4 moveto 45 (SCELL) alignedtext
+grestore
+% CELL->SCELL
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 30 71.83 moveto
+30 64.13 30 54.97 30 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 33.5 46.41 moveto
+30 36.41 lineto
+26.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 33.5 46.41 moveto
+30 36.41 lineto
+26.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/books/ps/v103simplecell.eps b/books/ps/v103simplecell.eps
new file mode 100644
index 0000000..1b4ee39
--- /dev/null
+++ b/books/ps/v103simplecell.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 104 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 104 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 68 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+65 112 lineto
+65 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+65 112 lineto
+65 -5 lineto
+closepath stroke
+% SCELL
+gsave
+[ /Rect [ 0 72 60 108 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=SCELL) >>
+ /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 60 108 moveto
+0 108 lineto
+0 72 lineto
+60 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 60 108 moveto
+0 108 lineto
+0 72 lineto
+60 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+7.5 86.4 moveto 45 (SCELL) alignedtext
+grestore
+% ALIST
+gsave
+[ /Rect [ 2 0 58 36 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ALIST) >>
+ /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 58 36 moveto
+2 36 lineto
+2 0 lineto
+58 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 58 36 moveto
+2 36 lineto
+2 0 lineto
+58 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+9.5 14.4 moveto 41 (ALIST) alignedtext
+grestore
+% SCELL->ALIST
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 30 71.83 moveto
+30 64.13 30 54.97 30 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 33.5 46.41 moveto
+30 36.41 lineto
+26.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 33.5 46.41 moveto
+30 36.41 lineto
+26.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/books/ps/v104cylindricalalgebraicdecompositionpackage.eps b/books/ps/v104cylindricalalgebraicdecompositionpackage.eps
new file mode 100644
index 0000000..d57c1ec
--- /dev/null
+++ b/books/ps/v104cylindricalalgebraicdecompositionpackage.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 98 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 98 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 62 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+59 112 lineto
+59 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+59 112 lineto
+59 -5 lineto
+closepath stroke
+% CAD
+gsave
+[ /Rect [ 0 72 54 108 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=CAD) >>
+ /Subtype /Link
+/ANN pdfmark
+0.93939 0.73333 1 nodecolor
+newpath 54 108 moveto
+0 108 lineto
+0 72 lineto
+54 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.93939 0.73333 1 nodecolor
+newpath 54 108 moveto
+0 108 lineto
+0 72 lineto
+54 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+11.5 86.4 moveto 31 (CAD) alignedtext
+grestore
+% CELL
+gsave
+[ /Rect [ 0 0 54 36 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=CELL) >>
+ /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 54 36 moveto
+0 36 lineto
+0 0 lineto
+54 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 54 36 moveto
+0 36 lineto
+0 0 lineto
+54 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+9 14.4 moveto 36 (CELL) alignedtext
+grestore
+% CAD->CELL
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 27 71.83 moveto
+27 64.13 27 54.97 27 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 30.5 46.41 moveto
+27 36.41 lineto
+23.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 30.5 46.41 moveto
+27 36.41 lineto
+23.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/books/ps/v104cylindricalalgebraicdecompositionutilities.eps b/books/ps/v104cylindricalalgebraicdecompositionutilities.eps
new file mode 100644
index 0000000..1f3150a
--- /dev/null
+++ b/books/ps/v104cylindricalalgebraicdecompositionutilities.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 114 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 114 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 78 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+75 112 lineto
+75 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+75 112 lineto
+75 -5 lineto
+closepath stroke
+% CADU
+gsave
+[ /Rect [ 6 72 64 108 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=CADU) >>
+ /Subtype /Link
+/ANN pdfmark
+0.93939 0.73333 1 nodecolor
+newpath 64 108 moveto
+6 108 lineto
+6 72 lineto
+64 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.93939 0.73333 1 nodecolor
+newpath 64 108 moveto
+6 108 lineto
+6 72 lineto
+64 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+14 86.4 moveto 42 (CADU) alignedtext
+grestore
+% PFECAT
+gsave
+[ /Rect [ 0 0 70 36 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=PFECAT) >>
+ /Subtype /Link
+/ANN pdfmark
+0.60606 0.73333 1 nodecolor
+newpath 70 36 moveto
+0 36 lineto
+0 0 lineto
+70 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.60606 0.73333 1 nodecolor
+newpath 70 36 moveto
+0 36 lineto
+0 0 lineto
+70 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+7.5 14.4 moveto 55 (PFECAT) alignedtext
+grestore
+% CADU->PFECAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 35 71.83 moveto
+35 64.13 35 54.97 35 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 38.5 46.41 moveto
+35 36.41 lineto
+31.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 38.5 46.41 moveto
+35 36.41 lineto
+31.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/books/ps/v104definiteintegrationtools.eps b/books/ps/v104definiteintegrationtools.eps
new file mode 100644
index 0000000..4675cbb
--- /dev/null
+++ b/books/ps/v104definiteintegrationtools.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 130 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 130 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 94 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+91 112 lineto
+91 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+91 112 lineto
+91 -5 lineto
+closepath stroke
+% DFINTTLS
+gsave
+[ /Rect [ 0 72 86 108 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=DFINTTLS) >>
+ /Subtype /Link
+/ANN pdfmark
+0.93939 0.73333 1 nodecolor
+newpath 86 108 moveto
+0 108 lineto
+0 72 lineto
+86 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.93939 0.73333 1 nodecolor
+newpath 86 108 moveto
+0 108 lineto
+0 72 lineto
+86 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+8 86.4 moveto 70 (DFINTTLS) alignedtext
+grestore
+% ACFS
+gsave
+[ /Rect [ 16 0 70 36 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=ACFS) >>
+ /Subtype /Link
+/ANN pdfmark
+0.60606 0.73333 1 nodecolor
+newpath 70 36 moveto
+16 36 lineto
+16 0 lineto
+70 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.60606 0.73333 1 nodecolor
+newpath 70 36 moveto
+16 36 lineto
+16 0 lineto
+70 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24.5 14.4 moveto 37 (ACFS) alignedtext
+grestore
+% DFINTTLS->ACFS
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 43 71.83 moveto
+43 64.13 43 54.97 43 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 46.5 46.41 moveto
+43 36.41 lineto
+39.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 46.5 46.41 moveto
+43 36.41 lineto
+39.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index d6feed8..30106ac 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,22 @@
+20140902 tpd src/axiom-website/patches.html 20140902.01.tpd.patch
+20140902 tpd books/bookvol10.3.pamphlet add CAD
+20140902 tpd books/bookvol10.4.pamphlet add CAD
+20140902 tpd books/bookvol10.pamphlet add CAD
+20140902 tpd books/bookvol5.pamphlet add CAD
+20140902 tpd books/bookvolbib.pamphlet add CAD references
+20140902 tpd books/ps/v103cell.eps
+20140902 tpd books/ps/v103simplecell.eps
+20140902 tpd books/ps/v104cylindricalalgebraicdecompositionpackage.eps
+20140902 tpd books/ps/v104cylindricalalgebraicdecompositionutilities.eps
+20140902 tpd books/ps/v104definiteintegrationtools.eps
+20140902 tpd src/input/Makefile.pamphlet add cad.input
+20140902 tpd src/input/cad.input test CAD
+20140902 tpd src/share/algebra/browse.daase add CAD
+20140902 tpd src/share/algebra/category.daase add CAD
+20140902 tpd src/share/algebra/dependents.daase/index.kaf add CAD
+20140902 tpd src/share/algebra/interp.daase add CAD
+20140902 tpd src/share/algebra/operation.daase add CAD
+20140902 tpd src/share/algebra/users.daase/index.kaf add CAD
20140901 tpd src/axiom-website/patches.html 20140901.03.tpd.patch
20140901 tpd src/axiom-website/documentation.html add Socrates quote
20140901 tpd src/axiom-website/patches.html 20140901.02.tpd.patch
diff --git a/patch b/patch
index 5d4279f..d0800db 100644
--- a/patch
+++ b/patch
@@ -1,14 +1,3 @@
-src/axiom-website/documentation.html add Socrates quote
-
-Then anyone who leaves behind him a written manual, and likewise
-anyone who takes it over from him, on the supposition that such
-writing will provide something reliable and permanent, must be
-exceedingly simple-minded; he must really be ignorant of Ammon's
-utterance, if he imagines that written words can do anything more than
-remind one who knows that which the writing is concerned with.
- -- Socrates
-
-All I need in the documenation is to be reminded of that which
-the writing is concerned with.
- -- Tim Daly
+books/bookvol10.3, vol10.4 add Cylindrical Algebraic Computation
+Add Cylindrical Algebraic Computation to Axiom
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 62c5fed..b3b257e 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4620,6 +4620,8 @@ src/axiom-website/videos.html add Developer videos section
src/axiom-website/videos.html add Website Pages video
20140901.03.tpd.patch
src/axiom-website/documentation.html add Socrates quote
+20140901.02.tpd.patch
+books/bookvol10.3, vol10.4 add Cylindrical Algebraic Computation