\section{ SAC Algebraic Number Field  } 
\proc{AFDIF} (AL,BL: LIST): LIST; \eproc
\bcom Algebraic number field element difference. AL and BL are elements
of Q(alpha) for some algebraic number alpha. CL=AL-BL. \ecom 
\proc{AFINV} (M,AL: LIST): LIST; \eproc
\bcom Algebraic number field inverse. AL is a nonzero
element of Q(alpha) for some algebraic number alpha.  M is the
rational minimal polynomial for alpha. BL=1/AL. \ecom 
\proc{AFNEG} (AL: LIST): LIST; \eproc
\bcom Algebraic number field element negation. AL is an element of
Q(alpha) for some algebraic number alpha. BL= -AL. \ecom 
\proc{AFPROD} (M,AL,BL: LIST): LIST; \eproc
\bcom Algebraic number field element product. AL and BL are elements of
Q(alpha) for some algebraic number alpha.  M is the minimal polynomial
of alpha. CL=AL+BL. \ecom 
\proc{AFQ} (M,AL,BL: LIST): LIST; \eproc
\bcom Algebraic number field quotient. AL and BL are
elements of Q(alpha) for some algebraic number alpha with BL
nonzero. M is the minimal polynomial for alpha. CL=AL/BL. \ecom 
\proc{AFSIGN} (M,I,AL: LIST): LIST; \eproc
\bcom Algebraic number field sign. M is the integral minimal polynomial
of a real algebraic number alpha.  I is an acceptable isolating
interval for alpha. AL is an element of Q(alpha). SL=SIGN(AL). \ecom 
\proc{AFSUM} (AL,BL: LIST): LIST; \eproc
\bcom Algebraic number field element sum. AL and BL are elements of
Q(alpha) for some algebraic number alpha. CL=AL+BL. \ecom 
\proc{RUPMRN} (R: LIST): LIST; \eproc
\bcom Rational univariate polynomial minimal polynomial of a rational number.
R is a rational number. M is the rational minimal polynomial of R. \ecom 
\section{ SAC Extensions 1  } 
\proc{LCONC} (L: LIST): LIST; \eproc
\bcom List concatenation. L is a list (L sub 1 , ..., L sub n ),
n ge 0, such that each L sub i is a list.  M eq CONC(L sub 1 , ...,
L sub n ). The lists L sub 1 , ..., L sub n are modified. \ecom 
\proc{LEQUAL} (A,B: LIST): LIST; \eproc
\bcom List equality. A eq (A sub 1 , ..., A sub m ), m ge 0, and
B eq (B sub 1 , ..., B sub n ), n ge 0, are two lists.  b eq 1 if
for each a sub i there is at least one B sub j such that
A sub i eq B sub j, and for each B sub j there is at least
one A sub i with B sub j eq a sub i. otherwise b eq 0. \ecom 
\proc{LMERGE} (A,B: LIST): LIST; \eproc
\bcom List merge. A and B are lists of objects. C is the result of
merging A and B. \ecom 
\section{ SAC Extensions 2  } 
\proc{RNBCR} (A,B: LIST; VAR M,N,KL: LIST); \eproc
\bcom Rational number binary common representation. A and B are binary
rational numbers.  If both A eq 0 and B eq 0, then M eq N eq K eq 0.
If A eq 0, B ne 0, then M eq 0 and N and K are the unique integers
such that B eq N cdot 2 sup k with N odd.  If B eq 0, A ne 0, then
N eq 0 and M and K are the unique integers such that A eq
M cdot 2 sup K with M odd.  If A ne 0 and B ne 0, then M,N, and K
are the unique integers such that A eq M cdot 2 sup K and
B eq N cdot 2 sup K with at least one of M and N odd. \ecom 
\section{ SAC Extensions 3  } 
\proc{CPLEXN} (L: LIST; VAR I,M: LIST); \eproc
\bcom Cartesian product, lexicographically next. L eq (L sub 1 , L sub 2
, ..., L sub 2n ), n ge 1, is a list such that L sub 2i is a
non-null list, and L sub 2i-1 is a non-null reductum of L sub 2i,
for 1 le i le n.  I is the element (first(L sub 1 ), first(L sub 3 )
, ..., first(L sub 2n-1 )) of the cartesian product of L sub 2 ,
L sub 4 , ..., L sub 2n.  If I is not the last element
(in the inverse lexicographic ordering)
of this cartesian product, then M is a list (M sub 1 ,
M sub 2 , ..., M sub 2n ), with M sub 2i eq L sub 2i,
M sub 2i-1 a non-null reductum of M sub 2i, for 1 le i le n,
and (first(M sub 1 ), first(M sub 3 ) , ..., first(M sub 2n-1 ))
the lexicographically next element.  If I is the
last element, then M eq (). the list L is modified. \ecom 
\proc{PERMCY} (P: LIST): LIST; \eproc
\bcom Permutation, cyclic. P is a list (P sub 1 , P sub 2 , ...,
P sub n ), n ge 0.  PP eq (P sub 2 , P sub 3 , ..., P sub n ,
P sub 1 ). \ecom 
\section{ SAC Extensions 4  } 
\proc{IPINT} (RL,A,BL: LIST): LIST; \eproc
\bcom Integral polynomial integration. A is a non-zero integral
polynomial in r variables, r ge 1, such that the integral of a with
respect to its main variable is an integral polynomial.  b is an
integral polynomial in r-1 variables.  B eq B(x sub 1 , ..., x sub r )
is the integral of a with respect to its main variable, such that
B(x sub 1 , ..., x sub r-1 ,0) eq b. \ecom 
\proc{IUPIHT} (A,NL: LIST): LIST; \eproc
\bcom Integral univariate polynomial integer homothetic transformation.
A is a non-zero univariate integral polynomial.  n is a non-zero
integer. B(x) is the primitive part of A(nx). \ecom 
\proc{PCONST} (RL,A: LIST): LIST; \eproc
\bcom Polynomial constant. A(x sub 1 , ..., x sub r ) is a polynomial
in r variables, r ge 1.  b eq 1 if a is a constant polynomial,
otherwise b eq 0. \ecom 
\proc{PSDSV} (RL,A,IL,NL: LIST): LIST; \eproc
\bcom Polynomial special decomposition, specified variable. A is a
polynomial in r variables.  1 le i le r and n is a beta-integer such
that each exponent of x sub i occurring in a is divisible by n.
B is A with each exponent e of x sub i replaced by e/n. \ecom 
\proc{PUNT} (RL,A: LIST): LIST; \eproc
\bcom Polynomial univariate test. A eq A(x sub 1 , ..., x sub r ) is a
polynomial in r variables, r ge 1.  b eq 2 if A has degree zero in all
variables.  b eq 1 if A has degree zero in x sub 2 , ..., x sub r, but
positive degree in x sub 1. otherwise b eq 0. \ecom 
\proc{RPDMV} (RL,A: LIST): LIST; \eproc
\bcom Rational polynomial derivative, main variable. A is a rational
polynomial in r variables.  B is the derivative of A with respect to
its main variable. \ecom 
\proc{RPMAIP} (RL,A: LIST): LIST; \eproc
\bcom Rational polynomial monic associate of integral polynomial.
A is an integral polynomial in r variables, r ge 1.  If A eq 0
then B eq 0.  if A ne 0, let the integer a be the leading base
coefficient of A. Then B eq (1/a) A, a monic rational polynomial. \ecom 
\section{ SAC Extensions 5  } 
\proc{IPCSFB} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial coarsest squarefree basis. A eq (A sub 1
, ..., A sub n ), n ge 0, is a list of positive primitive integral
polynomials in r variables, r ge 1, each of which is of positive
degree in its main variable.  B is a coarsest squarefree basis
for A. \ecom 
\proc{IPDSCR} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial discriminant. A is an integral polynomial
in r variables, r ge 1, of degree greater than or equal to two in
its main variable. B is the discriminant of A. \ecom 
\proc{IPLCPP} (RL,A: LIST; VAR C,P: LIST); \eproc
\bcom Integral polynomial list of contents and primitive parts.
A eq (A sub 1 , ..., A sub n ), n ge 0, is a list of integral
polynomials in r variables, r ge 1.  C eq (C sub 1 , ..., C sub s ),
0 le s le n, is a list such that for 1 le i le n, content(a sub i ) eq
c sub j for some j, 1 le j le s, if and only if content(a sub i )
has positive degree in some variable.
P eq (P sub 1 , ..., P sub m ), 0 le m le n, is a list such that
for 1 le i le n, PP(A sub i ) eq P sub j for some j, 1 le j le m,
if and only if PP(a sub i ) has positive degree in its main
variable. \ecom 
\proc{IPPSC} (RL,A,B: LIST): LIST; \eproc
\bcom Integral polynomial principal subresultant coefficients. A and B
are integral polynomials in r variables, r ge 1, of positive degree
in the main variable.  P is a list of the principal subresultant
coefficients of the second kind of A and B. \ecom 
\proc{IPSFBA} (RL,A,B: LIST): LIST; \eproc
\bcom Integral polynomial squarefree basis augmentation. A is a
primitive positive squarefree integral polynomial in r variables,
r ge 1, of positive degree in its main variable.
B eq (B sub 1 , ..., B sub s ), s ge 0, is a squarefree integral
polynomial basis in r variables.  BS is a coarsest squarefree
basis for (A,B sub 1 , ..., B sub s ). \ecom 
\proc{ISPSFB} (RL,A: LIST): LIST; \eproc
\bcom Integral squarefree polynomial squarefree basis. A eq (A sub 1
, ..., A sub n ), n ge 0, is a list of positive primitive squarefree
integral polynomials in r variables,r ge 1, each of which is of
positive degree in its main variable.  B is a coarsest squarefree
basis for A. \ecom 
\proc{IUPRC} (A,B: LIST; VAR C,R: LIST); \eproc
\bcom Integral univariate polynomial resultant and cofactor. A and B are
univariate integral polynomials of positive degree.  R is the
resultant of A and B.  C is a univariate integral polynomial such
that for some univariate integral polynomial D, AD+BC eq R. \ecom 
\proc{MUPRC} (PL,A,B: LIST; VAR C,RL: LIST); \eproc
\bcom Modular univariate polynomial resultant and cofactor. p is a
prime beta-digit.  A and B are univariate polynomials over
Z sub p of positive degree.  R is the resultant of A and B,
an element of Z sub p.  C is a univariate polynomial over
Z sub p such that for some univariate polynomial D over
Z sub p, AD+BC eq R. \ecom 
\section{ SAC Extensions 6  } 
\proc{IPFSFB} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial finest squarefree basis. A eq (A sub 1 , ...,
A sub n ), n ge 0, is a list of positive primitive integral
polynomials in r variables, r ge 1, each of which is of positive
degree in its main variable. B is a finest squarefree basis for A. \ecom 
\section{ SAC Extensions 7  } 
\proc{IPRICL} (A: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, Collins-Loos algorithm.
A is an integral polynomial. L is a strong isolation list for A. \ecom 
\proc{IPRRII} (A,AP,DL,LP: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation induction. A is a primitive
positive univariate integral polynomial of positive degree.  AP is
the derivative of A.  D is a binary rational real root bound for A.
LP is a strong isolation list for AP.  L is a strong isolation list
for A. \ecom 
\proc{IPRRRI} (A,B,I,SL1,TL1: LIST): LIST; \eproc
\bcom Integral polynomial relative real root isolation. A and B are
univariate integral polynomials.  I is a left-open, right-closed
interval (a sub 1 ,a sub 2 ) where al sub 1 and al sub 2 are
binary rational numbers with al sub 1 lt al sub 2.  A and B have
unique roots, alpha and beta respectively, in I, each of odd
multiplicity and with alpha ne beta.  sl sub 1 eq
sign(A(al sub 1 +)) and tl sub 1 eq sign(B(al sub 1 +)).
is eq (al sub 1 sup * ,al sub 2 sup * ) is al left-open, right-closed
subinterval of I with al sub 1 sup * and al sub 2 sup *
binary rational numbers and al sub 1 sup * lt al sub 2 sup *,
such that is contains alpha but not beta. \ecom 
\proc{IPSIFI} (A,I: LIST): LIST; \eproc
\bcom Integral polynomial standard isolating interval from isolating interval.
I is an interval with binary rational endpoints, which is either 
left-open and right-closed or a one-point interval.  A is a univariate
integral polynomial which has a unique root alpha
of odd multiplicity in I.  If I is a one-point interval, then
J=I.  If I is left-open and right-closed, then J is either a
standard left-open and right-closed subinterval of I containing
alpha, or if alpha is a binary rational number, J may
possibly instead be the one-point interval ( alpha , alpha ). \ecom 
\proc{ISFPIR} (A,I,KL: LIST): LIST; \eproc
\bcom Integral squarefree polynomial isolating interval refinement.
A is a squarefree univariate integral polynomial.  I is an
isolating interval for a real root alpha of A.  k is a
nonnegative beta -integer.  J is a subinterval of I isolating alpha
with length less than 10 sup -k. \ecom 
\proc{IUPVOI} (A,I: LIST): LIST; \eproc
\bcom Integral univariate polynomial, variations for open interval.
A is a non-zero integral univariate polynomial.  I is an open
interval (a,b) with a and b binary rational numbers such that
a lt b.  Let t(z) be the transformation mapping the right half-plane
onto the circle having I as diameter.  Let B(X) eq A(t(X)).
then v is the number of sign variations in the coefficients of B. \ecom 
\section{ SAC Modular Univariate Polynomial Factorization  } 
\proc{MCPMV} (NL,L: LIST): LIST; \eproc
\bcom Matrix of coefficients of polynomials, with respect to main variable.
L is a list (L(1), ...,L(k)) of k, ge 1, non-zero polynomials with
degrees less than n.  n is a positive beta-integer.  M is the matrix
with m(1,il)+m(2,i)*x+ ...+m(n,i)*x**(n-1)=L(i) for 1 le i le
k. \ecom 
\proc{MIUPSE} (M,A,B,S,T,C: LIST; VAR U,V: LIST); \eproc
\bcom Modular integral univariate polynomial, solution of equation. M is a
positive integer.  A,B,S,T and C belong to Z sub M (x) with ldcf(A) a
unit, deg(T) lt deg(A) and A*S+B*T=1.  U and V are the unique elements
of Z sub M (x) such that A*U+B*V=C, with deg(V) lt deg(A). \ecom 
\proc{MUPBQP} (PL,A: LIST): LIST; \eproc
\bcom Modular univariate polynomial Berlekamp q polynomials construction.
p is a prime beta-integer.  A is a univariate polynomial over Z sub p
with deg(A) ge 2.  Q is the list (Q(0), ...,Q(n-1)), where Q(i)(x)=
rem(x**(p*i),A(x)) and n=deg(A). \ecom 
\proc{MUPDDF} (PL,A: LIST): LIST; \eproc
\bcom Modular univariate polynomial distinct degree factorization. p is
a prime beta-integer.  A is a monic squarefree univariate polynomial
over Z sub p, with deg(A) ge 2.  L is a list ((n(1),A(1)), ...
,(n(k),A(k))) where each n(i) is a positive integer, n(1) lt
n(2) lt ...lt n(k), and A(i) is the product of all irreducible monic
factors of A of degree n(i). \ecom 
\proc{MUPFBL} (PL,A: LIST): LIST; \eproc
\bcom Modular univariate polynomial factorization-Berlekamp algorithm.
p is a prime beta-integer.  A is a monic squarefree univariate poly-
nomial, with deg(A) ge 2.  L is a list of all the monic irreducible
factors of A of positive degree. \ecom 
\proc{MUPFS} (PL,A,B,DL: LIST): LIST; \eproc
\bcom Modular univariate polynomial factorization, special. p is a prime
beta-integer. A is a monic squarefree polynomial in Z sub p(x),deg(A)
ge 2.  B is a list (B(1), ...,B(r)) of monic univariate polynomials
over Z sub p, which constitute a basis for the space of all polynomials
C of degree less than deg(A) such that A is a divisor of C**p-C.
Further-more, B(1)=1.  d is a positive beta-integer such that A has
no irreducible factor of degree less than d.  L is a list
consisting of all the monic irreducible factors of A of positive
degree. \ecom 
\section{ SAC Polynomial Factorization  } 
\proc{IPCEVP} (RL,A: LIST; VAR B,L: LIST); \eproc
\bcom Integral polynomial, choice of evaluation points. A is an r-variate
integral polynomial, square-free in its main variable x, r ge 1.  L is
a list (l sub 1, ...,l sub r-1) of beta-integers, with L as small as
possible in reverse lexicographic order with 0 lt 1 lt -1 lt 2 lt -2 lt
 ... such that deg sub x of A(x1, ...,x sub r-1,x)=deg sub x of A(l sub
1, ...,l sub r-1,x), and A(l sub 1, ...,l sub r-1,x) is the square-
free univariate integral polynomial B. \ecom 
\proc{IPFAC} (RL,A: LIST; VAR SL,CL,L: LIST); \eproc
\bcom Integral polynomial factorization. A is a non-zero integral
polynomial in r variables, r ge 1.  s=sign(A).  c is the integer
content of A.  L is a list ((e1,A1), ...,(ek,Ak)), k ge 0, where
each ei is a positive integer, the Aips are the distinct positive
irreducible integral factors of A, and A=s*c*(the product from i
equal 1 to k of Ai**ei). \ecom 
\proc{IPGFCB} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial Gelfond factor coefficient bound. A is an
integral polynomial in r variables, r gt 0.  a=2**h*(the degree of
A in xr) where h=the least integer greater than the sum from i=1 to
r of the maximum of 0 and ((2*the i-th partial derivative of A)-1)/2.
a is an integer. \ecom 
\proc{IPIQH} (RL,PL,D,AB,BB,SB,TB,M,C: LIST; VAR A,B: LIST); \eproc
\bcom Integral polynomial mod ideal quadratic Hensel lemma. D is a list of
non-negative beta-integers (d sub 1, ...,d sub r-1), r ge 1.  AB, BB,
SB and TB belong to Z sub p (x sub 1, ...,x sub r-1,y)/(x sub 1 ** d
sub 1, ...,x sub r-1 ** d sub r-1), with AB monic, AB*SB+BB*TB=1,
deg sub y of AB gt 0 and p a prime beta-integer.  C is an r-variate
integral polynomial with AB*BB congruent to C.  M, a positive integer,
is equal to p**j for some positive integer j.  A, B belong to Z sub M
(x sub 1, ...,x sub r-1,y)/(x sub 1 ** d sub 1, ...,x sub r-1 ** d
sub r-1), with A monic, A congruent to AB, B congruent to BB, deg sub y
of A=deg sub y of AB, and A*B congruent to C. \ecom 
\proc{ISFPF} (RL,A: LIST): LIST; \eproc
\bcom Integral squarefree polynomial factorization. A is a positive
integral polynomial in r variables, r ge 1, which with respect to its
main variable is of positive degree, primitive, and squarefree.  L is a
list (A1, ...,Ak) of the distinct positive irreducible factors of A. \ecom 
\proc{MIPISE} (RL,M,D,A,B,S,T,C: LIST; VAR U,V: LIST); \eproc
\bcom Modular integral polynomial mod ideal, solution of equation. D is a
list (d sub 1, ...,d sub r-1) of non-negative beta-integers, r ge 1.
A, B, S, T and C belong to Z sub M (x sub 1, ...,x sub r-1,y)/(x sub 1 **
d sub 1, ...,x sub r-1 ** d sub r-1), with A monic and of positive
degree in y, and A*S+B*T=1.  U and V belong to Z sub M(x sub 1, ...,x
sub r-1,y)/(x sub 1 ** d sub 1, ...,x sub r-1 ** d sub r-1) such
that A*U+B*V=C, and deg sub y of V lt deg sub y of A. \ecom 
\proc{MPIQH} (RL,PL,D,AB,BB,SB,TB,M,DP,C: LIST; VAR A,B: LIST); \eproc
\bcom Modular polynomial mod ideal, quadratic Hensel lemma. p is a beta-
prime.  D and DP are lists of positive beta-integers of length r-1, r
ge 1.  AB, BB, SB, TB belong to Z sub p (x sub 1, ...,x sub r-1,y)/(x sub
1 ** d(1), ...,x sub r-1 ** d(r-1)), with AB monic, AB*SB+BB*TB=1, and
deg sub y of AB gt 0.  C is an r-variate integral polynomial, with AB*
BB congruent to C.  M, a positive integer, is equal to p**j for some
positive integer j.  A, b belong to Z sub M(x sub 1, ...,x sub r-1,y)/
(x sub 1 ** DP(1), ...,x sub rl-1 ** DP(r-1)), with A monic, A
congruent to AB, B congruent to BB, deg sub y of A=deg sub y of AB, and
A*B congruent to C. \ecom 
\proc{MPIQHL} (RL,PL,F,M,D,C: LIST): LIST; \eproc
\bcom Modular polynomial mod ideal quadratic Hensel lemma, list. C is an
r-variate integral polynomial.  F is a list (f sub 1, ...,f sub m)
of monic univariate polynomials of positive degree over Z sub p, with
the product of the f sub i (x) similar to C(0, ...,0,x), and gcd(f
sub i, f sub j)=1 for 1 le i lt j le m, p a beta-prime not
dividing ldcf(C).  M is a positive power of p.  D is a list (d
sub 1, ...,d sub r-1) of non-negative beta-integers.  FP is a list (fp
sub 1, ...,fp sub m) of monic polynomials in Z sub M (x sub 1, ...,x
sub r-1,x)/(x sub 1 ** d sub 1, ...,x sub r-1 ** d sub r-1), with
C similar to the product of the fp sub i, fp sub i congruent to f
sub i, and deg sub x of fp sub i=deg sub x of f sub i, for 1 le
i le m. \ecom 
\proc{MPIQHS} (RL,M,D,AB,BB,SB,TB,SL,NL,C: LIST; VAR A,B,S,T,DP: LIST); \eproc
\bcom Modular polynomial mod ideal, quadratic Hensel lemma on a single variable.
M is a positive integer.  D is a list of positive beta-integers 
(d sub 1, ...,d sub r-1), r ge 2.  AB, BB, SB, TB belong to
Z sub M(x sub 1, ...,x sub r-1,y)/(x sub 1 ** d sub 1, ...,x sub r-1
**d sub r-1).  s is a positive integer lt r, and N is a
non-negative  beta-integer.  C is an element of Z sub M ( x sub 1, ...,
x sub r-1,yl).  AB is monic. AB*SB+BB*TB=1, AB*BB is congruent to C, 
and deg sub y of AB gt 0. 
A, B, S, T belong to Z sub M(x sub 1, ...,x sub r-1,y)/(x
sub 1 ** d sub 1, ...,S sub s-1 ** d sub s-1,x sub s ** n,x sub
s+1 ** d sub s+1, ...,x sub r-1 ** d sub r-1), with A*S+B*T=1, deg
sub y of A=deg sub y of AB, A monic, A*B congruent to C, and A congruent
to AB, B congruent to BB, S congruent to SB, T congruent to TB.  DP is
a list of non-negative beta-integers (d sub 1, ...,d sub
s-1,n,d sub s+1, ...,d sub r-1). \ecom 
\section{ SAC Polynomial GCD and RES System  } 
\proc{IPC} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial content. A is an integral polynomial in r
variables. C is the content of A. \ecom 
\proc{IPCPP} (RL,A: LIST; VAR C,AB: LIST); \eproc
\bcom Integral polynomial content and primitive part. A is an integral
polynomial in r variables.  C is the content of A and AB is the
primitive part of A. \ecom 
\proc{IPGCDC} (RL,A,B: LIST; VAR C,AB,BB: LIST); \eproc
\bcom Integral polynomial greatest common divisor and cofactors. A and B
are integral polynomials in r variables, r ge 0.  C=GCD(A,B).
If C is non-zero then AB=A/C and BB=B/C. Otherwise AB=0 and BB=0. \ecom 
\proc{IPIC} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial integer content. A is an integral polynomial in
r variables. c is the integer content of A. \ecom 
\proc{IPICPP} (RL,A: LIST; VAR AL,AB: LIST); \eproc
\bcom Integral polynomial integer content and primitive part. A is an
integral polynomial in r variables.  a is the integer content of A.
AB=A/a if A is non-zero and AB=0 if A=0. \ecom 
\proc{IPICS} (RL,A,CL: LIST): LIST; \eproc
\bcom Integral polynomial integer content subroutine. A is a non-zero
integral polynomial in r variables.  c is an integer.  d is the
greatest common divisor of c and the integer content of A. \ecom 
\proc{IPIPP} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial integer primitive part. A is an integral
polynomial in r variables.  If A ne 0 then AB=A/a where a is the
integer content of A. If A=0 then AB=0. \ecom 
\proc{IPPGSD} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial primitive greatest squarefree divisor. A is an
integral polynomial in r variables.  If A=0 then B=0.  Otherwise B is
the greatest squarefree divisor of the primitive part of A. \ecom 
\proc{IPPP} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial primitive part. A is an integral polynomial in
r variables. AB is the primitive part of A. \ecom 
\proc{IPRES} (RL,A,B: LIST): LIST; \eproc
\bcom Integral polynomial resultant. A and B are integral polynomials in
r variables, r ge 1, of positive degrees.  C is the resultant of A and
B with respect to the main variable, an integral polynomial in r-1
variables. \ecom 
\proc{IPRPRS} (RL,A,B: LIST): LIST; \eproc
\bcom Integral polynomial reduced polynomial remainder sequence. A and B
are non-zero integral polynomials in r variables with deg(A) ge deg(B).
S is the reduced polynomial remainder sequence of A and B. \ecom 
\proc{IPSCPP} (RL,A: LIST; VAR SL,C,AB: LIST); \eproc
\bcom Integral polynomial sign, content, and primitive part. A is
an integral polynomial in R ge 1 variables.  s is
the sign of A, C is the content of A, and AB is the primitive
part of A. \ecom 
\proc{IPSF} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial squarefree factorization. A is a positive pri-
mitive integral polynomial in r variables of positive degree.  L is
the list ((e sub 1,A sub 1), ...,(e sub l,A sub l)) where A equal to
the product of (A sub i)**(e sub i) for i = 1, ...,k is the
squarefree factorization of A in which 1 le e sub 1 lt e sub 2 lt  ...
lt e sub k and each A sub i is a positive squarefree polynomial of
positive degree. \ecom 
\proc{IPSPRS} (RL,A,B: LIST): LIST; \eproc
\bcom Integral polynomial subresultant polynomial remainder sequence.
A and B are non-zero integral polynomials in r variables with
deg(A) ge deg(B).  S is the subresultant p.r.s. of the first kind
of A and B. \ecom 
\proc{IPSRP} (RL,A: LIST; VAR AL,AB: LIST); \eproc
\bcom Integral polynomial similiar to rational polynomial. A is a
rational polynomial in r variables, r ge 0.  a is a
rational number, and AB is an integral polynomial such that A=a*AB. If
A eq 0 then a=AB=0. Otherwise AB is integer primitive and positive. \ecom 
\proc{MPGCDC} (RL,PL,A,B: LIST; VAR C,AB,BB: LIST); \eproc
\bcom Modular polynomial greatest common divisor and cofactors. p is a
prime beta-integer.  A and B are polynomials in r variables over
Z sub p.  C=gcd(A,B).  If C is non-zero then AB=A/C and BB=B/C.
Otherwise AB=0 and BB=0. \ecom 
\proc{MPRES} (RL,PL,A,B: LIST): LIST; \eproc
\bcom Modular polynomial resultant. p is a prime beta-digit. A and B are
polynomials over Z sub p in r variables, r ge 1, of positive degree.
C is the resultant of A and B, a polynomial over Z sub p in r-1
variables. \ecom 
\proc{MPSPRS} (RL,PL,A,B: LIST): LIST; \eproc
\bcom Modular polynomial subresultant polynomial remainder sequence.
A and B are non-zero polynomials in r variables over Z sub p,
p a prime beta-integer, with deg(A) ge deg(B).
S is the subresultant p.r.s. of the first kind of A and B. \ecom 
\proc{MPUC} (RL,PL,A: LIST): LIST; \eproc
\bcom Modular polynomial univariate content. A is a polynomial in r
variables, r ge 2, over Z sub p, p a prime beta-integer.  c is the
univariate content of A. \ecom 
\proc{MPUCPP} (RL,PL,A: LIST; VAR AL,AB: LIST); \eproc
\bcom Modular polynomial univariate content and primitive part. A is a
polynomial in r variables, r ge 2, over Z sub p, p a prime
beta-integer.  a is the univariate content of A.  AB=A/a if A is
non-zero and AB=0 if A=0. \ecom 
\proc{MPUCS} (RL,PL,A,CL: LIST): LIST; \eproc
\bcom Modular polynomial univariate content subroutine. A is a non-zero
polynomial in r variables, r ge 2, over Z sub p, p a prime
beta-integer.  c is a univariate polynomial over Z sub p.  d is the
greatest common divisor of c and the univariate content of A. \ecom 
\proc{MPUPP} (RL,PL,A: LIST): LIST; \eproc
\bcom Modular polynomial univariate primitive part. A is a polynomial in
r variables, r ge 2, over Z sub p, p a prime beta-integer.  If A is
non-zero then AB=A/a where a is the univariate content of A.  If A=0
then AB=0. \ecom 
\proc{MUPEGC} (PL,A,B: LIST; VAR C,U,V: LIST); \eproc
\bcom Modular univariate polynomial extended greatest common divisor. p
is a prime beta-integer.  A and B are univariate polynomials over Z sub
p. C=gcd(A,B).  A*U+B*V=C, and, if deg(A/C) gt 0, then deg(V) lt
deg(A/C), else deg(V)=0.  Similarly, if deg(B/C) gt 0, then deg(U) lt
deg(B/C), else deg(U)=0. If A=0, U=0. If B=0, V=0. \ecom 
\proc{MUPGCD} (PL,A,B: LIST): LIST; \eproc
\bcom Modular univariate polynomial greatest common divisor. A and B are
univariate polynomials over Z sub p, p a prime beta-integer.
C=gcd(A,B). \ecom 
\proc{MUPHEG} (PL,A,B: LIST; VAR C,V: LIST); \eproc
\bcom Modular univariate polynomial half-extended greatest common divisor.
p is a prime beta-integer.  A and B are univariate polynomials over
Z sub p.  C=gcd(A,B).  There exists a polynomial U such that
A*U+B*V=C, and, if deg(A/C) gt 0, then deg(V) lt deg(A/C).  If
deg(A/C)=0, deg(V) is also 0. If B=0, V=0. \ecom 
\proc{MUPRES} (PL,A,B: LIST): LIST; \eproc
\bcom Modular univariate polynomial resultant. p is a prime beta-digit.
A and B are univariate polynomials over Z sub p of positive degrees.
C is the resultant of A and B, an element of Z sub p. \ecom 
\proc{MUPSFF} (PL,A: LIST): LIST; \eproc
\bcom Modular univariate polynomial squarefree factorization. p is a
prime beta-integer.  A is a monic univariate polynomial over Z sub p
of positive degree.  L is a list ((i(1),A(1)), ...,(i(r),A(r))) with
i(1) lt i(2) lt  ... lt i(r), A(j) a monic squarefree factor of a
of positive degree for 1 le j le r and A the product of A(j)**i(j)
for j=1, ...,r. \ecom 
\proc{RPBLGS} (RL,A: LIST; VAR AL,BL,SL: LIST); \eproc
\bcom Rational polynomial base coefficients least common multiple, greatest common divisor, and sign.
A is a rational polynomial in r variables, r ge 0.  If A=0 then 
a=b=s=0.  Otherwise, a is the lcm of the denominators of the 
base coefficients of A, b is the gcd of the numerators of 
the base coefficients of A, and s is the sign of the leading base 
coefficient of A. \ecom 
\section{ SAC Polynomial Real Root  } 
\proc{IIC} (A,AP,I,L: LIST): LIST; \eproc
\bcom Isolating interval conversion. A is a squarefree univariate integral
polynomial.  AP is the derivative of A.  I is an left open right closed
interval (a,b) with binary rational endpoints represented by the list
(a,b).  L is a list of isolating intervals with binary rational end-
points for the real roots of A in I.  L=((a(1),b(1)), ...,(a(k),b(k))) 
with a(1) le b(1) le  ... le a(k) le b(k) and (a(i), b(i)) 
represents the open interval (a(i),b(i)) if a(i) lt
b(i), the closed interval (a(i),b(i)) if a(i)=b(i).  LS is a
list ((as(1),bs(1)), ...,(as(k),bs(k))) of isolating intervals for
the same roots and satisfying the same conditions except that each pair
(as(i),bs(i)) represents the left open right closed interval
(as(i),bs(i)). \ecom 
\proc{IPFSD} (RL,A: LIST): LIST; \eproc
\bcom Integral polynomial factorization, second derivative. A is a
positive primitive integral polynomial in r variables of positive
degree.  L is a list (a(1), ...,a(k)) where k ge 1, A equal to sum of
a(i) for i=1, ...,k and, for each i, a(i) is a positive primitive
integral polynomial of positive degree with deg(a(i)) le 2 or
gcd(a(i),app(i))=1 where app(i) is the second derivative of a(i). \ecom 
\proc{IPLRRI} (L: LIST): LIST; \eproc
\bcom Integral polynomial list real root isolation. L is a non-empty list
(A sub 1 ,  ..., A sub n ) of distinct univariate integral polynomials
which are positive, of positive degree, squarefree, and pairwise
relatively prime.  M is a list (I sub 1 , B sub 1 , ..., I sub m ,
B sub m ), where I sub 1  lt  I sub 2  lt   ...  lt  I sub m are
strongly disjoint isolating intervals for all of the real roots of A eq
prod from (j eq 1) to n (A sub j).  Each I sub i has binary
rational number endpoints, and is either left-open and
right-closed or is a one-point interval.  B sub i is the unique A
sub j which has a root in I sub i. \ecom 
\proc{IPRCH} (A,I,KL: LIST): LIST; \eproc
\bcom Integral polynomial real root calculation, high precision. A is a
univariate integral polynomial of positive degree.  I is either the
nulllist () or a standard interval or an interval whose positive and
non-positive parts are standard.  k is a gamma-integer.  L is a
list ((e(1),I(1)), ...,(e(r),I(r))) where the e(j) are
beta-integers,  1 le e(1) le  ... le e(r), and the I(j) are binary
rational isolating intervals, I(j)=(a(j),b(j)), for the r distinct
real roots of A if I=(), or for the r distinct real roots of A in I if
I ne ().  e(j) is the multiplicity of the root alpha(j) in I(j) and
abs(b(j)-a(j))  le 2**k.  I(j) is a left-open and right-closed
interval if a(j) lt b(j), a one-point interval if a(j)=b(j). \ecom 
\proc{IPRCHS} (A,I,KL: LIST): LIST; \eproc
\bcom Integral polynomial real root calculation, high-precision special.
A is a positive, primitive, squarefree, univariate, integral polynomial
of positive degrre with GCD(A,APP)=1.  I is either the null list () or
a standard interval or an interval whose positive and non-positive parts
are standard.  k is a gamma-integer.  L is a list (I(1), ...,I(r)) of
binary rational isolating intervals I(j)=(a(j),b(j)) for the r
distinct real roots of A if I=(), for the r distinct real roots of A
of I if I ne (), with b(j)-a(j) le 2**kl.  I(j) is a left-open and
right-closed interval if a(j) ne b(j), a one-point interval if
a(j)=b(j). \ecom 
\proc{IPRCNP} (A,I: LIST; VAR SLP,SLPP,J: LIST); \eproc
\bcom Integral polynomial real root calculation, newton method preparation.
A is a positive, primitive, squarefree, univariate integral polynomial
of positive degree.  I is an open interval (a1,a2) with binary
rational endpoints containing no roots of AP and APP.  sp and spp,
beta-integers, are the signs of AP and APP on I.  J is a subinterval
(b1,b2) of I with binary rational endpoints, containing alpha and
such that spp*SIGN(AP(b1)+f*AP(b2)) ge 0, where
f=(-3/4)**(sp*spp).  J is a left-open and right-closed interval if
b1 lt b2, the one-point interval if b1=b2. \ecom 
\proc{IPRCN1} (A,I,SL,KL: LIST): LIST; \eproc
\bcom Integral polynomial real root calcuation, 1 root. A is a positive
primitive univariate integral polynomial of positive degree. I is an
open interval (a1,a2) with binary rational endpoints containing a
unique root alpha of A and containing no roots of AP or APP.  s, a
beta-integer, is the sign of AP*APP on I.
min(abs(AP(a1)),abs(AP(a2))) le (3/4)*max(abs(AP(a1)),abs(AP(a2))).
k is a beta-integer.  J is a subinterval of I of length 2**k or less
containing alpha and with binary rational endpoints. \ecom 
\proc{IPRIM} (A: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, modified Uspensky method.
A is a non-zero squarefree univariate integral polynomial.  L is
a list (I sub 1 , ..., I sub r ) of strongly disjoint isolating
intervals for all of the real roots of A with I sub 1  lt  I
sub 2  lt   ...  lt  I sub r.  Each I sub j has binary rational
endpoints and is either left-open and right-closed or a one-point
interval. \ecom 
\proc{IPRIMO} (A,AP,I: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, modified Uspensky method, open interval.
A is a univariate integral polynomial without multiple roots.  
AP is the derivative of A.  I is an open interval (a,b) with
binary rational endpoints, represented by the list (a,b), such that
there are integers h and k for which a=h*2**k and b=(h+1)*2**k.
L is a list (I(1), ...,I(r)) of isolating intervals for the real roots
of A in I.  Each I(j) is a left open right closed interval with binary
rational endpoints and I(1) lt I(2) lt ... lt I(r). \ecom 
\proc{IPRIMS} (A,AP,I: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, modified Uspensky method, standard interval.
A is a univariate integral polynomial without multiple roots.  
AP is the derivative of A.  I is a standard interval.
L is a list (I(1), ...,I(r)) of isolating intervals for the real roots
of A in I.  Each interval I(j) is a left open right closed interval
(a(j),b(j)) with binary rational endpoints and I(1) lt I(2) lt  ...
lt I(r). \ecom 
\proc{IPRIMU} (A: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, modified Uspensky method, unit interval.
A is a squarefree univariate integral polynomial.  L is
a list (I(1), ...,I(r)) of isolating intervals for all the roots of A
in the left closed right open interval (0,1).  Each I(j) is a pair
(a(j),b(j)) of binary rational numbers, with 0 le a(1) le b(1) le
 ... le a(r) le b(r).  If a(j)=b(j) then (a(j),b(j))
represents the one-point interval (a(j),b(j)).  If a(j) lt b(j)
then the pair  (a(j),b(j)) represents the open interval
(a(j),b(j)). \ecom 
\proc{IPRIU} (A: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, Uspensky method. A is a
non-zero squarefree univariate integral polynomial.  L is a list of
pairs  ((a(1),b(1)), ...,(a(k),b(k))) representing isolating
intervals forall of the real roots of A, with a(1) le b(1) le  ... le
a(k) le b(k).  If a(i) lt b(i) then the pair
(a(i),b(i)) represents the open interval (a(i),b(i)), while
if a(i)=b(i) then it represents the closed one-point interval
(a(i),b(i)).  The a(i) and b(i) are rational numbers except
that one may have a(1) equal to negative infinity, represented by
-1/0, that is the pair (-1,0), and one may have b(k) equal to
infinity, represented by 1/0. \ecom 
\proc{IPRIUP} (A: LIST): LIST; \eproc
\bcom Integral polynomial real root isolation, Uspensky method, positive roots.
A is a non-zero squarefree univariate integral polynomial.  L
is a list of pairs ((a(1),b(1)), ...,(a(k),b(k))) representing iso-
lating intervals for the positive real roots of A, with a(1) le
b(1) le  ... le a(k) le b(k).  If a(i) lt e(i) then the pair
(a(i), b(i)) represents the open interval (a(i),b(i)) while if
a(i)=b(i) then (a(i),b(i)) represents the closed one-point
interval (a(i),b(i)).  The a(i) and b(i) are rational
numbers except thatone may have b(k) equal to infinity, represented
by 1/0, that is, the pair (1,0). \ecom 
\proc{IPRRLS} (A1,A2,L1,L2: LIST; VAR LS1,LS2: LIST); \eproc
\bcom Integral polynomial real root list separation. A1 and A2 are
univariate integral polynomials with no multiple real roots and with
no common real roots.  L1 and L2 are lists of isolating intervals for
some or all of the real roots of A1 and A2, respectively.  The
intervals in L1 and L2 have binary rational endpoints, and are either
left-open and right-closed or one-point intervals. Let
L1 eq (I sub 1,1 , ..., I sub (1,r sub 1) ),
L2 eq (I sub 2,1 , ..., I sub (2,r sub 2) ).
Then I sub 1,1  lt  I sub 1,2  lt   ...  lt  I sub (1,r sub 1)
and  I sub 2,1  lt  I sub 2,2  lt   ...  lt  I sub (2,r sub 2) .
L sub 1 sup *  eq (I sub 1,1 sup * , ..., I sub (1,r sub 1) sup * )
and L sub 2 sup *  eq (I sub 2,1 sup * , ..., I sub (2,r sub 2) sup * ),
where I sub i,j sup * is a binary rational subinterval of
I sub i,j containing the root of A sub i in I sub i,j.
Each I sub 1,j sup * is strongly disjoint from each
I sub 2,j sup *. \ecom 
\proc{IPRRS} (A1,A2,I1,I2: LIST; VAR IS1,IS2,SL: LIST); \eproc
\bcom Integral polynomial real root separation. A1 and A2 are squarefree
univariate integral polynomials of positive degrees.  I1 and I2
are intervals with binary rational number endpoints, each of
which is either left-open and right-closed, or a one-point interval.
I1 contains a unique root alpha sub 1 of A1, and I2 contains a
unique root alpha sub 2 ne alpha sub 1 of A2.  I sub 1 sup *
and I sub 2 sup * are binary rational subintervals of I1 and I2
containing alpha sub 1 and alpha sub 2 respectively, with
I sub 1 sup * and I sub 2 sup * strongly disjoint.  If I1 is
left-open and right-closed then so is I sub 1 sup *, and
similarly for I2 and I sub 2 sup *.  s eq -1
if I sub 1 sup *  lt  I sub 2 sup *, and s eq 1
if I sub 1 sup * gt I sub 2 sup *. \ecom 
\proc{IPSFSD} (RL,A: LIST): LIST; \eproc
\bcom Integral squarefree factorization, second derivative. A is a
positive integral polynomial in r variables of positive degree L is a
list ((e(1),A(1)), ...,(e(k),A(k))) where primitive part of A
is equal to the sum of A(i)**e(i) for i=1, ...,k.  The a(i) are
pairwise relatively prime squarefree positive polynomials of
positive degrees, with deg(A(i))=1 or GCD(A(i),APP(i))=1 for all
i where APP(i) is the second derivative of A(i) and the e(i) are
positive beta-integers e(1) le e(2) le ... le e(k). \ecom 
\proc{IPSRM} (A,I: LIST): LIST; \eproc
\bcom Integral polynomial strong real root isolation, modified Uspensky method.
A is a univariate integral polynomial with multiple roots and
with no real roots in common with APP.  I is either the null list () or
a standard interval or an interval whose positive and non-negative
parts are standard.  L is a list (I(1), ...,I(r)) of isolating intervals
for  all the real roots of A if I=(), or for all the real roots of A in
I if I ne ().  The intervals I(j) contain no roots of AP or APP, are
left-open and right-closed, have binary rational endpoints, and
satisfy I(1) lt I(2) lt ... lt I(r). \ecom 
\proc{IPSRMS} (A,I: LIST): LIST; \eproc
\bcom Integral polynomial strong real root isolation, modified Uspensky method, standard interval.
A is a univariate integral polynomial with no multiple real roots 
and with no real roots in common with APP.  I is
a standard interval.  L is a list (I(1), ...,I(r)) of isolating
intervals for the roots of A in I.  The intervals I(j) contain no
roots of AP or APP, are left-open and right-closed, have binary rational
endpoints, are subintervals of I, and satisfy I(1) lt I(2) lt  ...
lt I(r). \ecom 
\proc{IPVCHT} (A: LIST): LIST; \eproc
\bcom Integral polynomial variations after circle to half-plane transformation.
A is a non-zero univariate integral polynomial.  Let
n=deg(A), AP(x)=(x**n)*A(1/x), B(x)=AP(x+1).  k is the number of
sign variations in the coefficients of B. \ecom 
\proc{IUPRB} (A: LIST): LIST; \eproc
\bcom Integral univariate polynomial root bound. A is an integral poly-
nomial of positive degree.  b is a binary rational number which is a
root bound for A.  If A(x) is equal to the sum of a(i)*x(i)**i for
i=0, ...,n, a(n) ne 0, then b is the smallest power of 2 such that
2*abs(a(n-k)/a(n))**(1/k) le b for 1 le k le n.  If
a(n-k)=0 for 1 le k le n then b=1. \ecom 
\proc{IUPRLP} (A: LIST): LIST; \eproc
\bcom Integral univariate polynomial, root of a linear polynomial.
A is an integral univariate polynomial of degree one.  r is
the unique rational number such that A(r)=0. \ecom 
\proc{IUPVAR} (A: LIST): LIST; \eproc
\bcom Integral univariate polynomial variations. A is a non-zero uni-
variate integral polynomial.  n is the number of sign variations in
the coefficients of A. \ecom 
\proc{IUPVSI} (A,I: LIST): LIST; \eproc
\bcom Integral univariate polynomial, variations for standard interval.
A is a non-zero integral univariate polynomial.  I is
a standard open interval.  Let T(z) be the transformation mapping the
right half-plane onto the circle having I as a diameter.
Let B(x)=A(T(x)).  Then v is the number of sign variations in the
coefficients of B. \ecom 
\proc{RIB} (RL,SL: LIST): LIST; \eproc
\bcom Rational interval bisection. r and s are binary rational numbers,
r lt s.  t is a binary rational number with r lt t lt s, defined
as follows.  Let h=floor(log2(s-r)) and let c be the least integer
such that c*2**h gt r.  Then t=c*2**h if c*2**h lt s and
t=(2*c-1)*2**(h-1) otherwise. \ecom 
\proc{RILC} (I,KL: LIST): LIST; \eproc
\bcom Rational interval length comparison. I is an interval (a,b) with
rational endpoints, a le b.  k is a gamma-integer.  t=1 if b-a le
2**k and t=0 otherwise. \ecom 
\proc{RINT} (I: LIST): LIST; \eproc
\bcom Rational interval normalizing transformation. I is a list (r,s)
with rational endpoints and r lt s.  IS is the list (rs,ss)=
psi(r,s). \ecom 
\section{ SAC Univariate Polynomial Factorization  } 
\proc{IPFLC} (RL,M,I,A,L,D: LIST): LIST; \eproc
\bcom Integral polynomial factor list combine. A is a non-constant
primitive r-variate integral polynomial.  M is a positive integer.
I is a list (d sub 1, ...,d sub r - 1) of non-negative beta-digits.
L is a list of monic factors of A modulo M, ((x sub 1)**(d sub 1), ...
,(x sub rl- 1)**(d sub r - 1)) such that if B is an integral factor
of A, then H sub M,I (B) is an associate of some product of elements
of L.  D is either 0, or a characteristic set for the possible degrees
of integral factors of A.  LP is a list of the primitive irreducible
integral factors of A.  \ecom 
\proc{IUPFAC} (A: LIST; VAR SL,CL,L: LIST); \eproc
\bcom Integral univariate polynomial factorization. A is a non-zero
integral univariate polynomial.  s=sign(A), c=cont(A).  L is
a list ((e1,A1), ...,(ek,Ak)), k ge 0, where each ei is a
positive integer, e1 le e2 le  ... le ek, each A i is an ir-
reducible positive integral univariate polynomial, and A = s * c *
the product of A i ** ei, 1 le i le k. \ecom 
\proc{IUPFDS} (A: LIST; VAR PL,F,C: LIST); \eproc
\bcom Integral univariate polynomial factor degree set. A is a non-zero
square-free integral polynomial.  C is the intersection of
the degree sets of factorizations over Z sub p for as many as NPFDS
primes p (fewer only if SMPRM is exhausted or A is proved irredu-
cible). C is represented as a characteristic set.  p is
the least examined prime in P which gave the smallest number of
factors, and F is the distinct degree factorization of A over Z sub p,
unless A is shown to be irreducible, in which case p=0, F=(). \ecom 
\proc{IUPQH} (PL,AB,BB,SB,TB,M,C: LIST; VAR A,B: LIST); \eproc
\bcom Integral univariate polynomial quadratic Hensel lemma. AB, BB, SB, TB
are univariate polynomials over Z sub p, p a prime beta-integer, with
AB*SB+BB*TB=1, and deg(TB) lt deg(AB).  C is a univariate integral
polynomial with H sub p of C=AB*BB.  M, a positive integer, is equal
to p**j for some positive integer j.  A and B are univariate
polynomials over Z sub M, with H sub p of A=AB, H sub p of B=BB,
ldcf(A)=ldcf(AB),deg(A)=deg(AB), and H sub M of C=A*B. \ecom 
\proc{IUPQHL} (PL,F,M,C: LIST): LIST; \eproc
\bcom Integral univariate polynomial quadratic Hensel lemma, list. C is an
integral univariate polynomial.  F is a list (f sub 1, ...,f sub r)
of monic polynomials in Z sub p (x) with H sub p of C similar to the
product of the f sub i, and gcd(f sub i,f sub j)=1 for 1 le i
lt j le r, p a beta-prime not dividing ldcf(C).  M is a positive
power of p.  FP is a list (fp sub 1, ...,fp sub r) of monic
polynomials in Z sub M (x) with H sub M of C similar to the product of
the fp sub i, H sub p of fp sub i=f sub i and deg(fp sub
i)=deg(f sub i), for 1 le i le r. \ecom 
\proc{IUSFPF} (A: LIST): LIST; \eproc
\bcom Integral univariate squarefree polynomial factorization. A is
an integral univariate squarefree polynomial which is positive,
primitive and of positive degree.  L is a list (A1, ...,Ak) of the
positive irreducible factors of A. \ecom 
