diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index 523b831..aad79bd 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -44608,6 +44608,142 @@ HyperellipticFiniteDivisor(F, UP, UPUP, R): Exports == Implementation where
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \chapter{Chapter I}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain ICP InfClsPt}
+<<InfClsPt.input>>=
+)set break resume
+)sys rm -f InfClsPt.output
+)spool InfClsPt.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show InfClsPt
+--R InfClsPt(K: Field,symb: List Symbol,BLMET: BlowUpMethodCategory)  is a domain constructor
+--R Abbreviation for InfClsPt is ICP 
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for ICP 
+--R
+--R------------------------------- Operations --------------------------------
+--R ?=? : (%,%) -> Boolean                actualExtensionV : % -> K
+--R chartV : % -> BLMET                   coerce : % -> OutputForm
+--R degree : % -> PositiveInteger         excpDivV : % -> Divisor Places K
+--R fullOut : % -> OutputForm             fullOutput : () -> Boolean
+--R fullOutput : Boolean -> Boolean       hash : % -> SingleInteger
+--R latex : % -> String                   localPointV : % -> AffinePlane K
+--R multV : % -> NonNegativeInteger       pointV : % -> ProjectivePlane K
+--R setchart! : (%,BLMET) -> BLMET        symbNameV : % -> Symbol
+--R ?~=? : (%,%) -> Boolean              
+--R create : (ProjectivePlane K,DistributedMultivariatePolynomial(symb,K)) -> %
+--R create : (ProjectivePlane K,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),AffinePlane K,NonNegativeInteger,BLMET,NonNegativeInteger,Divisor Places K,K,Symbol) -> %
+--R curveV : % -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+--R localParamV : % -> List NeitherSparseOrDensePowerSeries K
+--R setcurve! : (%,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)) -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+--R setexcpDiv! : (%,Divisor Places K) -> Divisor Places K
+--R setlocalParam! : (%,List NeitherSparseOrDensePowerSeries K) -> List NeitherSparseOrDensePowerSeries K
+--R setlocalPoint! : (%,AffinePlane K) -> AffinePlane K
+--R setmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+--R setpoint! : (%,ProjectivePlane K) -> ProjectivePlane K
+--R setsubmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+--R setsymbName! : (%,Symbol) -> Symbol
+--R subMultV : % -> NonNegativeInteger
+--R
+--E 1
+
+)spool
+)lisp (bye)
+
+@
+<<InfClsPt.help>>=
+====================================================================
+InfClsPt examples
+====================================================================
+
+See Also:
+o )show InfClsPt
+
+@
+\pagehead{InfClsPt}{ICP}
+\pagepic{ps/v103infclspt.eps}{ICP}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lll}
+\cross{IC}{?=?} &
+\cross{IC}{?\~{}=?} &
+\cross{IC}{actualExtensionV} \\
+\cross{IC}{chartV} &
+\cross{IC}{coerce} &
+\cross{IC}{create} \\
+\cross{IC}{curveV} &
+\cross{IC}{degree} &
+\cross{IC}{excpDivV} \\
+\cross{IC}{fullOut} &
+\cross{IC}{fullOutput} &
+\cross{IC}{hash} \\
+\cross{IC}{latex} &
+\cross{IC}{localParamV} &
+\cross{IC}{localPointV} \\
+\cross{IC}{multV} &
+\cross{IC}{pointV} &
+\cross{IC}{setchart!} \\
+\cross{IC}{setcurve!} &
+\cross{IC}{setexcpDiv!} &
+\cross{IC}{setlocalParam!} \\
+\cross{IC}{setlocalPoint!} &
+\cross{IC}{setmult!} &
+\cross{IC}{setpoint!} \\
+\cross{IC}{setsubmult!} &
+\cross{IC}{setsymbName!} &
+\cross{IC}{subMultV} \\
+\cross{IC}{symbNameV} &&
+\end{tabular}
+
+<<domain ICP InfClsPt>>=
+)abbrev domain ICP InfClsPt
+++ Authors: Gaetan Hache
+++ Date Created: june 1996 
+++ Date Last Updated: May 2010 by Tim Daly
+++ Description: 
+++ This domain is part of the PAFF package
+InfClsPt(K,symb,BLMET):Exports == Implementation where
+  K:Field
+  symb: List Symbol
+  BLMET : BlowUpMethodCategory
+
+  E         ==> DirectProduct(#symb,NonNegativeInteger)
+  PolyRing  ==> DistributedMultivariatePolynomial(symb,K) 
+  ProjPt    ==> ProjectivePlane(K)
+  PCS       ==> NeitherSparseOrDensePowerSeries(K)
+  Plc       ==> Places(K)
+  DIVISOR   ==> Divisor(Plc)
+
+  Exports == InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,_
+                                         PCS,Plc,DIVISOR,BLMET) with
+    fullOut: % -> OutputForm
+      ++ fullOut(tr) yields a full output of tr (see function fullOutput).
+
+    fullOutput: Boolean -> Boolean
+      ++ fullOutput(b) sets a flag such that when true, a coerce to 
+      ++ OutputForm yields the full output of tr, otherwise encode(tr) is 
+      ++ output (see encode function). The default is false.
+
+    fullOutput: () -> Boolean
+      ++ fullOutput returns the value of the flag set by fullOutput(b).   
+     
+  Implementation == InfinitlyClosePoint(K,symb,PolyRing,E,ProjPt,_
+                                        PCS,Plc,DIVISOR,BLMET) 
+
+
+@
+<<ICP.dotabb>>=
+"ICP" [color="#88FF44",href="bookvol10.3.pdf#nameddest=ICP"]
+"INFCLSPT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=INFCLSPT"]
+"PLACES" [color="#88FF44",href="bookvol10.3.pdf#nameddest=PLACES"]
+"ICP" -> "INFCLSPT"
+"ICP" -> "PLACES"
+
+@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{domain ICARD IndexCard}
 \pagehead{IndexCard}{ICARD}
 \pagepic{ps/v103indexcard.ps}{ICARD}{1.00}
@@ -47082,6 +47218,279 @@ InfiniteTuple(S:Type): Exports == Implementation where
 
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain INFCLSPT InfinitlyClosePoint}
+<<InfinitlyClosePoint.input>>=
+)set break resume
+)sys rm -f InfinitlyClosePoint.output
+)spool InfinitlyClosePoint.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show InfinitlyClosePoint
+--R InfinitlyClosePoint(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc,BLMET: BlowUpMethodCategory)  is a domain constructor
+--R Abbreviation for InfinitlyClosePoint is INFCLSPT 
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for INFCLSPT 
+--R
+--R------------------------------- Operations --------------------------------
+--R ?=? : (%,%) -> Boolean                actualExtensionV : % -> K
+--R chartV : % -> BLMET                   coerce : % -> OutputForm
+--R create : (ProjPt,PolyRing) -> %       degree : % -> PositiveInteger
+--R excpDivV : % -> DIVISOR               fullOut : % -> OutputForm
+--R fullOutput : () -> Boolean            fullOutput : Boolean -> Boolean
+--R hash : % -> SingleInteger             latex : % -> String
+--R localParamV : % -> List PCS           localPointV : % -> AffinePlane K
+--R multV : % -> NonNegativeInteger       pointV : % -> ProjPt
+--R setchart! : (%,BLMET) -> BLMET        setpoint! : (%,ProjPt) -> ProjPt
+--R symbNameV : % -> Symbol               ?~=? : (%,%) -> Boolean
+--R create : (ProjPt,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),AffinePlane K,NonNegativeInteger,BLMET,NonNegativeInteger,DIVISOR,K,Symbol) -> %
+--R curveV : % -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+--R setcurve! : (%,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)) -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+--R setexcpDiv! : (%,DIVISOR) -> DIVISOR
+--R setlocalParam! : (%,List PCS) -> List PCS
+--R setlocalPoint! : (%,AffinePlane K) -> AffinePlane K
+--R setmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+--R setsubmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+--R setsymbName! : (%,Symbol) -> Symbol
+--R subMultV : % -> NonNegativeInteger
+--R
+--E 1
+
+)spool
+)lisp (bye)
+
+@
+<<InfinitlyClosePoint.help>>=
+====================================================================
+InfinitlyClosePoint examples
+====================================================================
+
+See Also:
+o )show InfinitlyClosePoint
+
+@
+\pagehead{InfinitlyClosePoint}{INFCLSPT}
+\pagepic{ps/v103infinitlyclosepoint.eps}{INFCLSPT}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lll}
+\cross{INFCLSPT}{?=?} &
+\cross{INFCLSPT}{?\~{}=?} &
+\cross{INFCLSPT}{actualExtensionV} \\
+\cross{INFCLSPT}{chartV} &
+\cross{INFCLSPT}{coerce} &
+\cross{INFCLSPT}{create} \\
+\cross{INFCLSPT}{curveV} &
+\cross{INFCLSPT}{degree} &
+\cross{INFCLSPT}{excpDivV} \\
+\cross{INFCLSPT}{fullOut} &
+\cross{INFCLSPT}{fullOutput} &
+\cross{INFCLSPT}{fullOutput} \\
+\cross{INFCLSPT}{hash} &
+\cross{INFCLSPT}{latex} &
+\cross{INFCLSPT}{localParamV} \\
+\cross{INFCLSPT}{localPointV} &
+\cross{INFCLSPT}{multV} &
+\cross{INFCLSPT}{pointV} \\
+\cross{INFCLSPT}{setchart!} &
+\cross{INFCLSPT}{setcurve!} &
+\cross{INFCLSPT}{setexcpDiv!} \\
+\cross{INFCLSPT}{setlocalParam!} &
+\cross{INFCLSPT}{setlocalPoint!} &
+\cross{INFCLSPT}{setmult!} \\
+\cross{INFCLSPT}{setpoint!} &
+\cross{INFCLSPT}{setsubmult!} &
+\cross{INFCLSPT}{setsymbName!} \\
+\cross{INFCLSPT}{subMultV} &
+\cross{INFCLSPT}{symbNameV} &
+\end{tabular}
+
+<<domain INFCLSPT InfinitlyClosePoint>>=
+)abbrev domain INFCLSPT InfinitlyClosePoint
+++ Authors: Gaetan Hache
+++ Date Created: june 1996 
+++ Date Last Updated: May 2010 by Tim Daly
+++ Description: 
+++ This domain is part of the PAFF package
+InfinitlyClosePoint(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET):_
+ Exports == Implementation where
+  K:Field
+  symb: List Symbol
+  E:DirectProductCategory(#symb,NonNegativeInteger)
+  OV ==> OrderedVariableList(symb)
+  PolyRing:  PolynomialCategory(K,E,OV)
+
+  OV2 ==> OrderedVariableList(['X,'Y])
+
+  PCS: LocalPowerSeriesCategory(K)
+  ProjPt:ProjectiveSpaceCategory(K)
+  Plc: PlacesCategory(K,PCS)
+  DIVISOR: DivisorCategory(Plc)
+  BLMET : BlowUpMethodCategory
+
+  bls      ==> ['X,'Y]
+  BlUpRing ==> DistributedMultivariatePolynomial(bls , K)
+  E2       ==> DirectProduct( #bls , NonNegativeInteger )
+  outRec   ==> Record(name:Symbol,mult:NonNegativeInteger)
+  AFP      ==> AffinePlane(K)
+
+  bigoutRecBLQT ==> Record(dominate:ProjPt,_
+                       name:Symbol,_
+                       mult:NonNegativeInteger,_
+                       defCurve:BlUpRing,_
+                       localPoint:AFP,_
+                       chart:BLMET,_ 
+                       expD:DIVISOR) 
+
+  bigoutRecHN  ==> Record(dominate:ProjPt,_
+                       name:Symbol,_
+                       mult:NonNegativeInteger,_
+                       defCurve:BlUpRing,_
+                       localPoint:AFP,_
+                       chart:BLMET,_ 
+                       subMultip: NonNegativeInteger,_
+                       expD:DIVISOR) 
+
+  representation   ==>  Record(point:ProjPt,
+                               curve:BlUpRing,
+                               localPoint:AFP,
+                               mult:NonNegativeInteger,
+                               chrt:BLMET,
+                               subMultiplicity:NonNegativeInteger,
+                               excpDiv:DIVISOR,
+			       localParam:List(PCS),
+			       actualExtension:K,
+			       symbName:Symbol)
+
+
+  Exports == InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,_
+                                         Plc,DIVISOR,BLMET) with 
+    fullOut: % -> OutputForm
+      ++ fullOut(tr) yields a full output of tr (see function fullOutput).
+
+    fullOutput: Boolean -> Boolean
+      ++ fullOutput(b) sets a flag such that when true, a coerce to 
+      ++ OutputForm yields the full output of tr, otherwise encode(tr) is 
+      ++ output (see encode function). The default is false.
+
+    fullOutput: () -> Boolean
+      ++ fullOutput returns the value of the flag set by fullOutput(b).   
+     
+  Implementation == representation add
+    Rep := representation
+
+    polyRing2BiRing: (PolyRing, Integer) -> BlUpRing
+    polyRing2BiRing(pol,nV)==
+      zero? pol => 0$BlUpRing
+      d:= degree pol
+      lc:= leadingCoefficient pol
+      dd: List NonNegativeInteger := entries d
+      ddr:= vector([dd.i for i in 1..#dd | ^(i=nV)])$Vector(NonNegativeInteger)
+      ddre:E2 := directProduct( ddr )$E2
+      monomial(lc,ddre)$BlUpRing  + polyRing2BiRing( reductum pol , nV )
+
+    projPt2affPt: (ProjPt, Integer) -> AFP
+    projPt2affPt(pt,nV)==
+      ll:= pt :: List(K)
+      l:= [ ll.i for i in 1..#ll | ^(i = nV )]
+      affinePoint( l)
+
+    fullOut(a)==
+      oo: bigoutRecBLQT
+      oo2: bigoutRecHN
+      BLMET has BlowUpWithQuadTrans =>
+        oo:=  [ pointV(a), symbNameV(a), multV(a), curveV(a), _
+              localPointV(a), chartV(a),  excpDivV(a) ]$bigoutRecBLQT
+        oo :: OutputForm
+      BLMET has BlowUpWithHamburgerNoether => 
+        oo2:=  [ pointV(a), symbNameV(a), multV(a), curveV(a), _
+             localPointV(a), chartV(a), subMultV(a), excpDivV(a) ]$bigoutRecHN
+
+        oo2 :: OutputForm
+
+    fullOutputFlag:Boolean:=false()
+
+    fullOutput(f)== fullOutputFlag:=f
+
+    fullOutput == fullOutputFlag
+
+    coerce(a:%):OutputForm== 
+      fullOutput() => fullOut(a)
+      oo:outRec:= [ symbNameV(a) , multV(a) ]$outRec
+      oo :: OutputForm
+
+    degree(a)==
+      K has PseudoAlgebraicClosureOfPerfectFieldCategory  => _
+        extDegree actualExtensionV a
+      1
+      
+    create(pointA,curveA,localPointA,multA,chartA,subM,excpDivA,atcL,aName)==
+      ([pointA,curveA,localPointA,multA,chartA,subM,excpDivA,_
+        empty()$List(PCS),atcL,aName]$Rep)::%
+
+    create(pointA,curveA)==
+      nV := lastNonNul pointA
+      localPointA := projPt2affPt(pointA,nV)
+      multA:NonNegativeInteger:=0$NonNegativeInteger
+      chartA:BLMET 
+      if BLMET has QuadraticTransform then _
+        chartA:=( [0,0, nV] :: List Integer ) :: BLMET 
+      if BLMET has HamburgerNoether then
+        chartA := createHN( 0,0,nV,0,0,true,"right")   -- A changer le "right" 
+      excpDivA:DIVISOR:= 0$DIVISOR
+      actL:K:=definingField pointA
+      aName:Symbol:=new(P)$Symbol
+      affCurvA : BlUpRing := polyRing2BiRing(curveA,nV)
+      create(pointA,affCurvA,localPointA,multA,chartA,_
+             0$NonNegativeInteger,excpDivA,actL,aName)
+      
+    subMultV(a:%)== (a:Rep)(subMultiplicity)
+
+    setsubmult_!(a:%,sm:NonNegativeInteger)== (a:Rep)(subMultiplicity) := sm
+
+    pointV(a:%)     ==(a:Rep)(point)
+
+    symbNameV(a:%)     ==(a:Rep)(symbName)
+
+    curveV(a:%)  ==(a:Rep)(curve)
+
+    localPointV(a:%)   ==(a:Rep)(localPoint)
+
+    multV(a:%)    ==(a:Rep)(mult)
+
+    chartV(a:%)   ==(a:Rep)(chrt) 
+
+    excpDivV(a:%) ==(a:Rep)(excpDiv)
+
+    localParamV(a:%) ==(a:Rep)(localParam)
+    
+    actualExtensionV(a:%) == (a:Rep)(actualExtension)
+
+    setpoint_!(a:%,n:ProjPt)       ==(a:Rep)(point):=n
+
+    setcurve_!(a:%,n:BlUpRing)   ==(a:Rep)(curve):=n
+
+    setlocalPoint_!(a:%,n:AFP)  ==(a:Rep)(localPoint):=n
+
+    setmult_!(a:%,n:NonNegativeInteger) ==(a:Rep)(mult):=n
+
+    setchart_!(a:%,n:BLMET)  ==(a:Rep)(chrt):=n 
+
+    setlocalParam_!(a:%,n:List(PCS)) ==(a:Rep)(localParam):=n
+
+    setexcpDiv_!(a:%,n:DIVISOR) ==(a:Rep)(excpDiv):=n
+
+    setsymbName_!(a:%,n:Symbol) ==(a:Rep)(symbName):=n
+@
+<<INFCLSPT.dotabb>>=
+"INFCLSPT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=INFCLSPT"]
+"INFCLCT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=INFCLCT"]
+"INFCLSPT" -> "INFCLCT"
+
+@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{domain IAN InnerAlgebraicNumber}
 \pagehead{InnerAlgebraicNumber}{IAN}
 \pagepic{ps/v103inneralgebraicnumber.ps}{IAN}{1.00}
@@ -125995,6 +126404,7 @@ Note that this code is not included in the generated catdef.spad file.
 <<domain HDMP HomogeneousDistributedMultivariatePolynomial>>
 <<domain HELLFDIV HyperellipticFiniteDivisor>>
 
+<<domain ICP InfClsPt>>
 <<domain ICARD IndexCard>>
 <<domain IBITS IndexedBits>>
 <<domain IDPAG IndexedDirectProductAbelianGroup>>
@@ -126011,6 +126421,7 @@ Note that this code is not included in the generated catdef.spad file.
 <<domain IARRAY2 IndexedTwoDimensionalArray>>
 <<domain IVECTOR IndexedVector>>
 <<domain ITUPLE InfiniteTuple>>
+<<domain INFCLSPT InfinitlyClosePoint>>
 <<domain IAN InnerAlgebraicNumber>>
 <<domain IFF InnerFiniteField>>
 <<domain IFAMON InnerFreeAbelianMonoid>>
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index c945503..7a32396 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -23968,14 +23968,16 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|HallBasis| . HB)
    (|Heap| . HEAP)
    (|HexadecimalExpansion| . HEXADEC)
-   (|IndexCard| . ICARD)
    (|IdealDecompositionPackage| . IDECOMP)
+   (|IndexCard| . ICARD)
+   (|InfClsPt| . ICP)
    (|InfiniteProductCharacteristicZero| . INFPROD0)
    (|InfiniteProductFiniteField| . INPRODFF)
    (|InfiniteProductPrimeField| . INPRODPF)
    (|InfiniteTuple| . ITUPLE)
    (|InfiniteTupleFunctions2| . ITFUN2)
    (|InfiniteTupleFunctions3| . ITFUN3)
+   (|InfinitlyClosePoint| . INFCLSPT)
    (|Infinity| . INFINITY)
    (|Integer| . INT)
    (|IntegerCombinatoricFunctions| . COMBINAT)
diff --git a/books/ps/v103infclspt.eps b/books/ps/v103infclspt.eps
new file mode 100644
index 0000000..0fa850f
--- /dev/null
+++ b/books/ps/v103infclspt.eps
@@ -0,0 +1,311 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009)
+%%For: (root) root
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 216 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 216 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 180 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% ICP
+gsave
+[ /Rect [ 62 72 116 108 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ICP) >>
+  /Subtype /Link
+/ANN pdfmark
+0.273 0.733 1.000 nodecolor
+newpath 116 108 moveto
+62 108 lineto
+62 72 lineto
+116 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.273 0.733 1.000 nodecolor
+newpath 116 108 moveto
+62 108 lineto
+62 72 lineto
+116 72 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+77.5 85.9 moveto 23 (ICP) alignedtext
+grestore
+% INFCLSPT
+gsave
+[ /Rect [ 0 0 84 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=INFCLSPT) >>
+  /Subtype /Link
+/ANN pdfmark
+0.273 0.733 1.000 nodecolor
+newpath 84 36 moveto
+0 36 lineto
+0 0 lineto
+84 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.273 0.733 1.000 nodecolor
+newpath 84 36 moveto
+0 36 lineto
+0 0 lineto
+84 0 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+8 13.9 moveto 68 (INFCLSPT) alignedtext
+grestore
+% ICP->INFCLSPT
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 77 72 moveto
+72 64 65 54 59 44 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 62.27 42.62 moveto
+54 36 lineto
+56.33 46.34 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 62.27 42.62 moveto
+54 36 lineto
+56.33 46.34 lineto
+closepath stroke
+grestore
+% PLACES
+gsave
+[ /Rect [ 102 0 172 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=PLACES) >>
+  /Subtype /Link
+/ANN pdfmark
+0.273 0.733 1.000 nodecolor
+newpath 172 36 moveto
+102 36 lineto
+102 0 lineto
+172 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.273 0.733 1.000 nodecolor
+newpath 172 36 moveto
+102 36 lineto
+102 0 lineto
+172 0 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+109.5 13.9 moveto 55 (PLACES) alignedtext
+grestore
+% ICP->PLACES
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 101 72 moveto
+106 64 113 54 119 44 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 121.8 46.1 moveto
+125 36 lineto
+116.2 41.9 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 121.8 46.1 moveto
+125 36 lineto
+116.2 41.9 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 03ac6a4..9e12f8e 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20100518 tpd src/axiom-website/patches.html 20100518.08.tpd.patch
+20100518 tpd src/algebra/Makefile help and test for InfClsPt
+20100518 tpd books/bookvol5 expose InfClsPt
+20100518 tpd books/bookvol10.3 add InfClsPt
+20100518 tpd books/ps/v103infclspt.eps added
 20100518 tpd src/axiom-website/patches.html 20100518.07.tpd.patch
 20100518 tpd books/ps/v103infinitlyclosepoint.eps change to lowercase
 20100518 tpd src/axiom-website/patches.html 20100518.06.tpd.patch
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 7ee9db0..cac25bd 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -12117,7 +12117,8 @@ LAYER17=\
   ${OUT}/FSPRMELT.o ${OUT}/FSRED.o    ${OUT}/FSUPFACT.o ${OUT}/FSPECF.o   \
   ${OUT}/FS2.o      ${OUT}/FS2UPS.o   ${OUT}/GAUSSFAC.o ${OUT}/GCNAALG.o  \
   ${OUT}/GENUFACT.o ${OUT}/GENUPS.o   ${OUT}/GTSET.o    ${OUT}/GPOLSET.o  \
-  ${OUT}/IAN.o      ${OUT}/INEP.o     ${OUT}/INFPROD0.o ${OUT}/INFSP.o    \
+  ${OUT}/IAN.o      ${OUT}/INEP.o     ${OUT}/INFCLSPT.o \
+  ${OUT}/INFPROD0.o ${OUT}/INFSP.o    \
   ${OUT}/INPRODFF.o ${OUT}/INPRODPF.o ${OUT}/INTAF.o    ${OUT}/INTALG.o   \
   ${OUT}/INTEF.o    ${OUT}/INTG0.o    ${OUT}/INTHERAL.o ${OUT}/INTPAF.o   \
   ${OUT}/INTPM.o    ${OUT}/INTTOOLS.o ${OUT}/ITRIGMNP.o ${OUT}/JORDAN.o   \
@@ -13424,6 +13425,28 @@ LAYER17=\
 /*"INEP" -> {"MONOGEN"; "FRAMALG"; "FINRALG"; "FINITE"; "FFIELDC"}*/
 /*"INEP" -> {"FPC"; "PI"}*/
 
+"INFCLSPT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=INFCLSPT"]
+"INFCLSPT" -> "INFCLCT"
+/*"INFCLSPT" -> {"SETCATD"; "AFFPL"; "SETCAT"; "BASTYPE"; "KOERCE"; "FIELD"}*/
+/*"INFCLSPT" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"}*/
+/*"INFCLSPT" -> {"RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SGROUP"}*/
+/*"INFCLSPT" -> {"MONOID"; "LMODULE"; "BMODULE"; "RMODULE"; "ALGEBRA"}*/
+/*"INFCLSPT" -> {"MODULE"; "ENTIRER"; "UFD"; "DIVRING"; "POLYCAT"; "PDRING"}*/
+/*"INFCLSPT" -> {"FAMR"; "AMR"; "CHARZ"; "CHARNZ"; "FRETRCT"; "RETRACT"}*/
+/*"INFCLSPT" -> {"EVALAB"; "IEVALAB"; "FLINEXP"; "LINEXP"; "ORDSET"}*/
+/*"INFCLSPT" -> {"KONVERT"; "PATMAB"; "PFECAT"; "DIRPCAT"; "IXAGG"; "HOAGG"}*/
+/*"INFCLSPT" -> {"AGG"; "TYPE"; "ELTAGG"; "ELTAB"; "DIFEXT"; "DIFRING"}*/
+/*"INFCLSPT" -> {"FINITE"; "ORDRING"; "OAGROUP"; "OCAMON"; "OAMON"; "OASGP"}*/
+/*"INFCLSPT" -> {"OAMONS"; "VSPACE"; "PRSPCAT"; "LOCPOWC"; "UPSCAT"; "PSCAT"}*/
+/*"INFCLSPT" -> {"PLACESC"; "DIVCAT"; "FAMONC"; "BLMETCT"; "SINT"; "NNI"}*/
+/*"INFCLSPT" -> {"INT"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"; "LNAGG"}*/
+/*"INFCLSPT" -> {"CLAGG"; "FLAGG"; "ELAGG"; "OM"; "LIST"; "ILIST"; "LSAGG-"}*/
+/*"INFCLSPT" -> {"STAGG-"; "ELAGG-"; "FLAGG-"; "URAGG-"; "LNAGG-"; "RCAGG-"}*/
+/*"INFCLSPT" -> {"IXAGG-"; "CLAGG-"; "HOAGG-"; "ORDSET-"; "AGG-"; "ELTAGG-"}*/
+/*"INFCLSPT" -> {"SETCAT-"; "BASTYPE-"; "BOOLEAN"; "VECTOR"; "PACPERC"; "PI"}*/
+/*"INFCLSPT" -> {"SYMBOL"; "REF"; "ALIST"; "STRING"; "CHAR"; "OUTFORM"}*/
+/*"INFCLSPT" -> {"PRIMARR"; "A1AGG-"; "ISTRING"; "SRAGG-"}*/
+
 "INFPROD0" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INFPROD0"]
 /*"INFPROD0" -> {"INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"}*/
 /*"INFPROD0" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"}*/
@@ -14786,7 +14809,8 @@ LAYER18=\
   ${OUT}/ESCONT.o   ${OUT}/EXPR.o     ${OUT}/EXPRSOL.o  ${OUT}/EXPR2UPS.o \
   ${OUT}/FACTEXT.o  \
   ${OUT}/FDIV.o     ${OUT}/FSCINT.o   ${OUT}/FSINT.o    ${OUT}/FS2EXPXP.o \
-  ${OUT}/GSERIES.o  ${OUT}/HELLFDIV.o ${OUT}/INVLAPLA.o ${OUT}/IR2F.o     \
+  ${OUT}/GSERIES.o  ${OUT}/HELLFDIV.o ${OUT}/ICP.o      \
+  ${OUT}/INVLAPLA.o ${OUT}/IR2F.o     \
   ${OUT}/IRRF2F.o   ${OUT}/LAPLACE.o  ${OUT}/LIMITPS.o  ${OUT}/LODEEF.o   \
   ${OUT}/NODE1.o    ${OUT}/NOTTING.o \
   ${OUT}/NTSCAT.o   ${OUT}/ODECONST.o ${OUT}/ODEEF.o    \
@@ -15099,6 +15123,25 @@ LAYER18=\
 /*"HELLFDIV" -> {"IXAGG"; "HOAGG"; "AGG"; "ELTAGG"; "CLAGG"; "VECTOR"}*/
 /*"HELLFDIV" -> {"IVECTOR"; "IARRAY1"; "INS"; "CFCAT"; "PI"}*/
 
+"ICP" [color="#88FF44",href="bookvol10.3.pdf#nameddest=ICP"]
+/*"ICP" -> {"DIVCAT"; "PROJPL"; "NSDPS"; "DIV"}*/
+"ICP" -> "PLACES"
+"ICP" -> "INFCLSPT"
+/*"ICP" -> {"INFCLCT"; "SETCATD"; "SETCAT"; "BASTYPE"; "KOERCE"; "FIELD"}*/
+/*"ICP" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"; "RNG"}*/
+/*"ICP" -> {"ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SGROUP"; "MONOID"}*/
+/*"ICP" -> {"LMODULE"; "BMODULE"; "RMODULE"; "ALGEBRA"; "MODULE"; "ENTIRER"}*/
+/*"ICP" -> {"UFD"; "DIVRING"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"; "HOAGG"}*/
+/*"ICP" -> {"AGG"; "TYPE"; "EVALAB"; "IEVALAB"; "LNAGG"; "IXAGG"; "ELTAGG"}*/
+/*"ICP" -> {"ELTAB"; "CLAGG"; "KONVERT"; "FLAGG"; "ORDSET"; "ELAGG"; "OM"}*/
+/*"ICP" -> {"INT"; "LIST"; "ILIST"; "DIRPCAT"; "FRETRCT"; "RETRACT"}*/
+/*"ICP" -> {"DIFEXT"; "DIFRING"; "PDRING"; "FLINEXP"; "LINEXP"; "FINITE"}*/
+/*"ICP" -> {"ORDRING"; "OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "OAMONS"}*/
+/*"ICP" -> {"VSPACE"; "PLACESC"; "BLMETCT"; "SYMBOL"; "REF"; "ALIST"}*/
+/*"ICP" -> {"STRING"; "CHAR"; "SINT"; "OUTFORM"; "PRIMARR"; "A1AGG-"}*/
+/*"ICP" -> {"ISTRING"; "SRAGG-"; "FLAGG-"; "LNAGG-"; "LSAGG-"; "STAGG-"}*/
+/*"ICP" -> {"ELAGG-"; "URAGG-"}*/
+
 "INVLAPLA" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INVLAPLA"]
 /*"INVLAPLA" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"}*/
 /*"INVLAPLA" -> {"RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SETCAT"}*/
@@ -16629,6 +16672,38 @@ ${MID}/INFCLCT.nrlib/code.o: ${MID}/INFCLCT.spad
 	      | ${INTERPSYS} >${TMP}/trace ; \
 	   fi )
 @
+<<newcode>>=
+ 
+INFCLSPTDEPS = \
+         INFCLCT SETCATD LOCPOWC PRSPCAT PLACESC DIVCAT BLMETCT AFFPL PACPERC
+
+${MID}/INFCLSPT.nrlib/code.o: ${MID}/INFCLSPT.spad
+	@echo P3 making ${MID}/INFCLSPT.nrlib/code.o from ${MID}/INFCLSPT.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${INFCLSPTDEPS} \n )co INFCLSPT.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${INFCLSPTDEPS} \n )co INFCLSPT.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
+<<newcode>>=
+ 
+ICPDEPS = LOCPOWC PRSPCAT DIVCAT BLMETCT PROJPL NSDPS PLACES DIV \
+          INFCLCT INFCLSPT SETCATD PLACESC AFFPL
+
+${MID}/ICP.nrlib/code.o: ${MID}/ICP.spad
+	@echo P3 making ${MID}/ICP.nrlib/code.o from ${MID}/ICP.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${ICPDEPS} \n )co ICP.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${ICPDEPS} \n )co ICP.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
 
 \section{Broken Files}
 These files are Aldor files
@@ -17392,6 +17467,8 @@ SPADHELP=\
  ${HELP}/HexadecimalExpansion.help \
  ${HELP}/HomogeneousDistributedMultivariatePolynomial.help \
  ${HELP}/IndexedBits.help \
+ ${HELP}/InfClsPt.help \
+ ${HELP}/InfinitlyClosePoint.help \
  ${HELP}/InfinitlyClosePointCategory.help \
  ${HELP}/Integer.help \
  ${HELP}/IntegerCombinatoricFunctions.help \
@@ -17584,6 +17661,8 @@ REGRESS= \
  HexadecimalExpansion.regress \
  HomogeneousDistributedMultivariatePolynomial.regress \
  IndexedBits.regress \
+ InfClsPt.regress \
+ InfinitlyClosePoint.regress \
  InfinitlyClosePointCategory.regress \
  Integer.regress \
  IntegerCombinatoricFunctions.regress \
@@ -18359,8 +18438,32 @@ ${HELP}/IndexedBits.help: ${BOOKS}/bookvol10.3.pamphlet
             >${INPUT}/IndexedBits.input
 	@echo "IndexedBits (IBITS)" >>${HELPFILE}
 
+${HELP}/InfClsPt.help: ${BOOKS}/bookvol10.3.pamphlet
+	@echo 7417 create InfClsPt.help from \
+           ${BOOKS}/bookvol10.3.pamphlet
+	@${TANGLE} -R"InfClsPt.help" \
+           ${BOOKS}/bookvol10.3.pamphlet \
+           >${HELP}/InfClsPt.help
+	@cp ${HELP}/InfClsPt.help ${HELP}/ICP.help
+	@${TANGLE} -R"InfClsPt.input" \
+           ${BOOKS}/bookvol10.3.pamphlet \
+           >${INPUT}/InfClsPt.input
+	@echo "InfClsPt (ICP)" >>${HELPFILE}
+
+${HELP}/InfinitlyClosePoint.help: ${BOOKS}/bookvol10.3.pamphlet
+	@echo 7418 create InfinitlyClosePoint.help from \
+           ${BOOKS}/bookvol10.3.pamphlet
+	@${TANGLE} -R"InfinitlyClosePoint.help" \
+           ${BOOKS}/bookvol10.3.pamphlet \
+           >${HELP}/InfinitlyClosePoint.help
+	@cp ${HELP}/InfinitlyClosePoint.help ${HELP}/INFCLSPT.help
+	@${TANGLE} -R"InfinitlyClosePoint.input" \
+           ${BOOKS}/bookvol10.3.pamphlet \
+           >${INPUT}/InfinitlyClosePoint.input
+	@echo "InfinitlyClosePoint (INFCLSPT)" >>${HELPFILE}
+
 ${HELP}/InfinitlyClosePointCategory.help: ${BOOKS}/bookvol10.2.pamphlet
-	@echo 7417 create InfinitlyClosePointCategory.help from \
+	@echo 7419 create InfinitlyClosePointCategory.help from \
            ${BOOKS}/bookvol10.2.pamphlet
 	@${TANGLE} -R"InfinitlyClosePointCategory.help" \
            ${BOOKS}/bookvol10.2.pamphlet \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 9b1886d..4aced9c 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2761,5 +2761,7 @@ books/bookvol10.2 add InfinitlyClosePointCategory<br/>
 books/bookvol10.2 add chunk names to final list for INFCLCT<br/>
 <a href="patches/20100518.07.tpd.patch">20100518.07.tpd.patch</a>
 books/ps/v103infinitlyclosepoint.eps change to lowercase<br/>
+<a href="patches/20100518.08.tpd.patch">20100518.08.tpd.patch</a>
+books/bookvol10.3 add InfClsPt<br/>
  </body>
 </html>
