diff --git a/changelog b/changelog index 9baab4b..48493c1 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20070916 tpd src/input/Makefile add bug103.input regression test +20070916 tpd src/input/bug103.input test solve(z=z,z) bug fix +20070916 tpd src/algebra/polycat.spad solve(z=z,z) bug fix +20070916 tpd src/algebra/catdef.spad add zero? to exquo 20070915 tpd merge bug100 branch 20070915 tpd src/input/Makefile add bug100.input regression test 20070915 tpd src/input/bug100.input test integrate((z^a+1)^b,z) infinite loop diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet index d7b7274..38c9a1c 100644 --- a/src/algebra/catdef.spad.pamphlet +++ b/src/algebra/catdef.spad.pamphlet @@ -1319,6 +1319,7 @@ EuclideanDomain(): Category == PrincipalIdealDomain with x quo y == divide(x,y).quotient --divide must be user-supplied x rem y == divide(x,y).remainder x exquo y == + zero? x => 0 zero? y => "failed" qr:=divide(x,y) zero?(qr.remainder) => qr.quotient @@ -1544,601 +1545,507 @@ recompiling. @ \subsubsection{EUCDOM-;sizeLess?;2SB;1} <>= -(DEFUN |EUCDOM-;sizeLess?;2SB;1| (|x| |y| |$|) - (COND - ((SPADCALL |y| (QREFELT |$| 8)) (QUOTE NIL)) - ((SPADCALL |x| (QREFELT |$| 8)) (QUOTE T)) - ((QUOTE T) - (|<| (SPADCALL |x| (QREFELT |$| 10)) (SPADCALL |y| (QREFELT |$| 10)))))) +(DEFUN |EUCDOM-;sizeLess?;2SB;1| (|x| |y| $) + (COND + ((SPADCALL |y| (QREFELT $ 8)) (QUOTE NIL)) + ((SPADCALL |x| (QREFELT $ 8)) (QUOTE T)) + ((QUOTE T) + (< (SPADCALL |x| (QREFELT $ 10)) (SPADCALL |y| (QREFELT $ 10)))))) @ \subsubsection{EUCDOM-;quo;3S;2} <>= -(DEFUN |EUCDOM-;quo;3S;2| (|x| |y| |$|) - (QCAR (SPADCALL |x| |y| (QREFELT |$| 13)))) +(DEFUN |EUCDOM-;quo;3S;2| (|x| |y| $) + (QCAR (SPADCALL |x| |y| (QREFELT $ 13)))) @ \subsubsection{EUCDOM-;rem;3S;3} <>= -(DEFUN |EUCDOM-;rem;3S;3| (|x| |y| |$|) - (QCDR (SPADCALL |x| |y| (QREFELT |$| 13)))) +(DEFUN |EUCDOM-;rem;3S;3| (|x| |y| $) + (QCDR (SPADCALL |x| |y| (QREFELT $ 13)))) @ \subsubsection{EUCDOM-;exquo;2SU;4} <>= -(DEFUN |EUCDOM-;exquo;2SU;4| (|x| |y| |$|) - (PROG (|qr|) - (RETURN - (SEQ - (COND - ((SPADCALL |y| (QREFELT |$| 8)) (CONS 1 "failed")) - ((QUOTE T) - (SEQ - (LETT |qr| - (SPADCALL |x| |y| (QREFELT |$| 13)) - |EUCDOM-;exquo;2SU;4|) - (EXIT - (COND - ((SPADCALL (QCDR |qr|) (QREFELT |$| 8)) (CONS 0 (QCAR |qr|))) - ((QUOTE T) (CONS 1 "failed"))))))))))) +(DEFUN |EUCDOM-;exquo;2SU;4| (|x| |y| $) + (PROG (|qr|) + (RETURN + (SEQ + (COND + ((SPADCALL |x| (QREFELT $ 8)) (CONS 0 (|spadConstant| $ 16))) + ((SPADCALL |y| (QREFELT $ 8)) (CONS 1 "failed")) + ((QUOTE T) + (SEQ + (LETT |qr| + (SPADCALL |x| |y| (QREFELT $ 13)) + |EUCDOM-;exquo;2SU;4|) + (EXIT + (COND + ((SPADCALL (QCDR |qr|) (QREFELT $ 8)) (CONS 0 (QCAR |qr|))) + ((QUOTE T) (CONS 1 "failed"))))))))))) @ \subsubsection{EUCDOM-;gcd;3S;5} <>= -(DEFUN |EUCDOM-;gcd;3S;5| (|x| |y| |$|) - (PROG (|#G13| |#G14|) - (RETURN - (SEQ - (LETT |x| (SPADCALL |x| (QREFELT |$| 18)) |EUCDOM-;gcd;3S;5|) - (LETT |y| (SPADCALL |y| (QREFELT |$| 18)) |EUCDOM-;gcd;3S;5|) - (SEQ G190 - (COND - ((NULL - (COND - ((SPADCALL |y| (QREFELT |$| 8)) (QUOTE NIL)) - ((QUOTE T) (QUOTE T)))) - (GO G191))) - (SEQ - (PROGN - (LETT |#G13| |y| |EUCDOM-;gcd;3S;5|) - (LETT |#G14| (SPADCALL |x| |y| (QREFELT |$| 19)) |EUCDOM-;gcd;3S;5|) - (LETT |x| |#G13| |EUCDOM-;gcd;3S;5|) - (LETT |y| |#G14| |EUCDOM-;gcd;3S;5|)) - (EXIT - (LETT |y| (SPADCALL |y| (QREFELT |$| 18)) |EUCDOM-;gcd;3S;5|))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (EXIT |x|))))) +(DEFUN |EUCDOM-;gcd;3S;5| (|x| |y| $) + (PROG (|#G13| |#G14|) + (RETURN + (SEQ + (LETT |x| (SPADCALL |x| (QREFELT $ 19)) |EUCDOM-;gcd;3S;5|) + (LETT |y| (SPADCALL |y| (QREFELT $ 19)) |EUCDOM-;gcd;3S;5|) + (SEQ G190 + (COND + ((NULL + (COND + ((SPADCALL |y| (QREFELT $ 8)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (PROGN + (LETT |#G13| |y| |EUCDOM-;gcd;3S;5|) + (LETT |#G14| (SPADCALL |x| |y| (QREFELT $ 20)) |EUCDOM-;gcd;3S;5|) + (LETT |x| |#G13| |EUCDOM-;gcd;3S;5|) + (LETT |y| |#G14| |EUCDOM-;gcd;3S;5|)) + (EXIT + (LETT |y| (SPADCALL |y| (QREFELT $ 19)) |EUCDOM-;gcd;3S;5|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|))))) @ \subsubsection{EUCDOM-;unitNormalizeIdealElt} <>= -(DEFUN |EUCDOM-;unitNormalizeIdealElt| (|s| |$|) - (PROG (|#G16| |u| |c| |a|) - (RETURN - (SEQ - (PROGN - (LETT |#G16| (SPADCALL (QVELT |s| 2) (QREFELT |$| 22)) |EUCDOM-;unitNormalizeIdealElt|) - (LETT |u| (QVELT |#G16| 0) |EUCDOM-;unitNormalizeIdealElt|) - (LETT |c| (QVELT |#G16| 1) |EUCDOM-;unitNormalizeIdealElt|) - (LETT |a| (QVELT |#G16| 2) |EUCDOM-;unitNormalizeIdealElt|) - |#G16|) - (EXIT - (COND - ((SPADCALL |a| (QREFELT |$| 23)) |s|) - ((QUOTE T) - (VECTOR - (SPADCALL |a| (QVELT |s| 0) (QREFELT |$| 24)) - (SPADCALL |a| (QVELT |s| 1) (QREFELT |$| 24)) - |c|)))))))) +(DEFUN |EUCDOM-;unitNormalizeIdealElt| (|s| $) + (PROG (|#G16| |u| |c| |a|) + (RETURN + (SEQ + (PROGN + (LETT |#G16| + (SPADCALL (QVELT |s| 2) (QREFELT $ 23)) + |EUCDOM-;unitNormalizeIdealElt|) + (LETT |u| (QVELT |#G16| 0) |EUCDOM-;unitNormalizeIdealElt|) + (LETT |c| (QVELT |#G16| 1) |EUCDOM-;unitNormalizeIdealElt|) + (LETT |a| (QVELT |#G16| 2) |EUCDOM-;unitNormalizeIdealElt|) + |#G16|) + (EXIT + (COND + ((SPADCALL |a| (|spadConstant| $ 24) (QREFELT $ 25)) |s|) + ((QUOTE T) + (VECTOR + (SPADCALL |a| (QVELT |s| 0) (QREFELT $ 26)) + (SPADCALL |a| (QVELT |s| 1) (QREFELT $ 26)) + |c|)))))))) @ \subsubsection{EUCDOM-;extendedEuclidean;2SR;7} <>= -(DEFUN |EUCDOM-;extendedEuclidean;2SR;7| (|x| |y| |$|) - (PROG (|s3| |s2| |qr| |s1|) - (RETURN - (SEQ - (LETT |s1| - (|EUCDOM-;unitNormalizeIdealElt| - (VECTOR (|spadConstant| |$| 25) (|spadConstant| |$| 26) |x|) |$|) - |EUCDOM-;extendedEuclidean;2SR;7|) - (LETT |s2| - (|EUCDOM-;unitNormalizeIdealElt| - (VECTOR (|spadConstant| |$| 26) (|spadConstant| |$| 25) |y|) |$|) - |EUCDOM-;extendedEuclidean;2SR;7|) - (EXIT - (COND - ((SPADCALL |y| (QREFELT |$| 8)) |s1|) - ((SPADCALL |x| (QREFELT |$| 8)) |s2|) - ((QUOTE T) - (SEQ - (SEQ G190 - (COND - ((NULL - (COND - ((SPADCALL (QVELT |s2| 2) (QREFELT |$| 8)) - (QUOTE NIL)) - ((QUOTE T) (QUOTE T)))) - (GO G191))) - (SEQ - (LETT |qr| - (SPADCALL (QVELT |s1| 2) (QVELT |s2| 2) (QREFELT |$| 13)) - |EUCDOM-;extendedEuclidean;2SR;7|) - (LETT |s3| - (VECTOR - (SPADCALL - (QVELT |s1| 0) - (SPADCALL - (QCAR |qr|) - (QVELT |s2| 0) - (QREFELT |$| 24)) - (QREFELT |$| 27)) - (SPADCALL - (QVELT |s1| 1) - (SPADCALL - (QCAR |qr|) - (QVELT |s2| 1) - (QREFELT |$| 24)) - (QREFELT |$| 27)) - (QCDR |qr|)) - |EUCDOM-;extendedEuclidean;2SR;7|) - (LETT |s1| |s2| |EUCDOM-;extendedEuclidean;2SR;7|) - (EXIT - (LETT |s2| - (|EUCDOM-;unitNormalizeIdealElt| |s3| |$|) - |EUCDOM-;extendedEuclidean;2SR;7|))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (COND - ((NULL (SPADCALL (QVELT |s1| 0) (QREFELT |$| 8))) - (COND - ((NULL (SPADCALL (QVELT |s1| 0) |y| (QREFELT |$| 28))) - (SEQ - (LETT |qr| - (SPADCALL (QVELT |s1| 0) |y| (QREFELT |$| 13)) - |EUCDOM-;extendedEuclidean;2SR;7|) - (QSETVELT |s1| 0 (QCDR |qr|)) - (QSETVELT |s1| 1 - (SPADCALL - (QVELT |s1| 1) - (SPADCALL (QCAR |qr|) |x| (QREFELT |$| 24)) - (QREFELT |$| 29))) - (EXIT - (LETT |s1| - (|EUCDOM-;unitNormalizeIdealElt| |s1| |$|) - |EUCDOM-;extendedEuclidean;2SR;7|))))))) - (EXIT |s1|))))))))) +(DEFUN |EUCDOM-;extendedEuclidean;2SR;7| (|x| |y| $) + (PROG (|s3| |s2| |qr| |s1|) + (RETURN + (SEQ + (LETT |s1| + (|EUCDOM-;unitNormalizeIdealElt| + (VECTOR (|spadConstant| $ 24) (|spadConstant| $ 16) |x|) + $) + |EUCDOM-;extendedEuclidean;2SR;7|) + (LETT |s2| + (|EUCDOM-;unitNormalizeIdealElt| + (VECTOR (|spadConstant| $ 16) (|spadConstant| $ 24) |y|) + $) + |EUCDOM-;extendedEuclidean;2SR;7|) + (EXIT + (COND + ((SPADCALL |y| (QREFELT $ 8)) |s1|) + ((SPADCALL |x| (QREFELT $ 8)) |s2|) + ((QUOTE T) + (SEQ + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL (QVELT |s2| 2) (QREFELT $ 8)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |qr| + (SPADCALL (QVELT |s1| 2) (QVELT |s2| 2) (QREFELT $ 13)) + |EUCDOM-;extendedEuclidean;2SR;7|) + (LETT |s3| + (VECTOR + (SPADCALL (QVELT |s1| 0) + (SPADCALL (QCAR |qr|) (QVELT |s2| 0) (QREFELT $ 26)) + (QREFELT $ 27)) + (SPADCALL (QVELT |s1| 1) + (SPADCALL (QCAR |qr|) (QVELT |s2| 1) (QREFELT $ 26)) + (QREFELT $ 27)) + (QCDR |qr|)) + |EUCDOM-;extendedEuclidean;2SR;7|) + (LETT |s1| |s2| |EUCDOM-;extendedEuclidean;2SR;7|) + (EXIT + (LETT |s2| + (|EUCDOM-;unitNormalizeIdealElt| |s3| $) + |EUCDOM-;extendedEuclidean;2SR;7|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (COND + ((NULL (SPADCALL (QVELT |s1| 0) (QREFELT $ 8))) + (COND + ((NULL (SPADCALL (QVELT |s1| 0) |y| (QREFELT $ 28))) + (SEQ + (LETT |qr| + (SPADCALL (QVELT |s1| 0) |y| (QREFELT $ 13)) + |EUCDOM-;extendedEuclidean;2SR;7|) + (QSETVELT |s1| 0 (QCDR |qr|)) + (QSETVELT |s1| 1 + (SPADCALL (QVELT |s1| 1) + (SPADCALL (QCAR |qr|) |x| (QREFELT $ 26)) (QREFELT $ 29))) + (EXIT + (LETT |s1| + (|EUCDOM-;unitNormalizeIdealElt| |s1| $) + |EUCDOM-;extendedEuclidean;2SR;7|))))))) + (EXIT |s1|))))))))) @ \subsubsection{EUCDOM-;extendedEuclidean;3SU;8} <>= -(DEFUN |EUCDOM-;extendedEuclidean;3SU;8| (|x| |y| |z| |$|) - (PROG (|s| |w| |qr|) - (RETURN - (SEQ - (COND - ((SPADCALL |z| (QREFELT |$| 8)) - (CONS 0 (CONS (|spadConstant| |$| 26) (|spadConstant| |$| 26)))) - ((QUOTE T) - (SEQ - (LETT |s| - (SPADCALL |x| |y| (QREFELT |$| 32)) - |EUCDOM-;extendedEuclidean;3SU;8|) - (LETT |w| - (SPADCALL |z| (QVELT |s| 2) (QREFELT |$| 33)) - |EUCDOM-;extendedEuclidean;3SU;8|) - (EXIT - (COND - ((QEQCAR |w| 1) (CONS 1 "failed")) - ((SPADCALL |y| (QREFELT |$| 8)) - (CONS 0 - (CONS - (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT |$| 24)) - (SPADCALL (QVELT |s| 1) (QCDR |w|) (QREFELT |$| 24))))) - ((QUOTE T) - (SEQ - (LETT |qr| - (SPADCALL - (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT |$| 24)) - |y| - (QREFELT |$| 13)) - |EUCDOM-;extendedEuclidean;3SU;8|) - (EXIT - (CONS - 0 - (CONS - (QCDR |qr|) - (SPADCALL - (SPADCALL - (QVELT |s| 1) - (QCDR |w|) - (QREFELT |$| 24)) - (SPADCALL - (QCAR |qr|) - |x| - (QREFELT |$| 24)) - (QREFELT |$| 29)))))))))))))))) +(DEFUN |EUCDOM-;extendedEuclidean;3SU;8| (|x| |y| |z| $) + (PROG (|s| |w| |qr|) + (RETURN + (SEQ + (COND + ((SPADCALL |z| (QREFELT $ 8)) + (CONS 0 (CONS (|spadConstant| $ 16) (|spadConstant| $ 16)))) + ((QUOTE T) + (SEQ + (LETT |s| + (SPADCALL |x| |y| (QREFELT $ 32)) + |EUCDOM-;extendedEuclidean;3SU;8|) + (LETT |w| + (SPADCALL |z| (QVELT |s| 2) (QREFELT $ 33)) + |EUCDOM-;extendedEuclidean;3SU;8|) + (EXIT + (COND + ((QEQCAR |w| 1) (CONS 1 "failed")) + ((SPADCALL |y| (QREFELT $ 8)) + (CONS 0 + (CONS (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT $ 26)) + (SPADCALL (QVELT |s| 1) (QCDR |w|) (QREFELT $ 26))))) + ((QUOTE T) + (SEQ + (LETT |qr| + (SPADCALL + (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT $ 26)) + |y| + (QREFELT $ 13)) + |EUCDOM-;extendedEuclidean;3SU;8|) + (EXIT + (CONS 0 + (CONS (QCDR |qr|) + (SPADCALL + (SPADCALL (QVELT |s| 1) (QCDR |w|) (QREFELT $ 26)) + (SPADCALL (QCAR |qr|) |x| (QREFELT $ 26)) + (QREFELT $ 29)))))))))))))))) @ \subsubsection{EUCDOM-;principalIdeal;LR;9} <>= -(DEFUN |EUCDOM-;principalIdeal;LR;9| (|l| |$|) - (PROG (|uca| |v| |u| #1=#:G83663 |vv| #2=#:G83664) - (RETURN - (SEQ - (COND - ((SPADCALL |l| NIL (QREFELT |$| 38)) - (|error| "empty list passed to principalIdeal")) - ((SPADCALL (CDR |l|) NIL (QREFELT |$| 38)) - (SEQ - (LETT |uca| - (SPADCALL (|SPADfirst| |l|) (QREFELT |$| 22)) - |EUCDOM-;principalIdeal;LR;9|) - (EXIT (CONS (LIST (QVELT |uca| 0)) (QVELT |uca| 1))))) - ((SPADCALL (CDR (CDR |l|)) NIL (QREFELT |$| 38)) - (SEQ - (LETT |u| - (SPADCALL - (|SPADfirst| |l|) - (SPADCALL |l| (QREFELT |$| 39)) - (QREFELT |$| 32)) - |EUCDOM-;principalIdeal;LR;9|) - (EXIT - (CONS (LIST (QVELT |u| 0) (QVELT |u| 1)) (QVELT |u| 2))))) - ((QUOTE T) - (SEQ - (LETT |v| - (SPADCALL (CDR |l|) (QREFELT |$| 42)) - |EUCDOM-;principalIdeal;LR;9|) - (LETT |u| - (SPADCALL (|SPADfirst| |l|) (QCDR |v|) (QREFELT |$| 32)) - |EUCDOM-;principalIdeal;LR;9|) - (EXIT - (CONS - (CONS - (QVELT |u| 0) - (PROGN - (LETT #1# NIL |EUCDOM-;principalIdeal;LR;9|) - (SEQ - (LETT |vv| NIL |EUCDOM-;principalIdeal;LR;9|) - (LETT #2# (QCAR |v|) |EUCDOM-;principalIdeal;LR;9|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |vv| - (CAR #2#) - |EUCDOM-;principalIdeal;LR;9|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS - (SPADCALL - (QVELT |u| 1) - |vv| - (QREFELT |$| 24)) - #1#) - |EUCDOM-;principalIdeal;LR;9|))) - (LETT #2# (CDR #2#) |EUCDOM-;principalIdeal;LR;9|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#))))) - (QVELT |u| 2)))))))))) +(DEFUN |EUCDOM-;principalIdeal;LR;9| (|l| $) + (PROG (|uca| |v| |u| #0=#:G1497 |vv| #1=#:G1498) + (RETURN + (SEQ + (COND + ((SPADCALL |l| NIL (QREFELT $ 38)) + (|error| "empty list passed to principalIdeal")) + ((SPADCALL (CDR |l|) NIL (QREFELT $ 38)) + (SEQ + (LETT |uca| + (SPADCALL (|SPADfirst| |l|) (QREFELT $ 23)) + |EUCDOM-;principalIdeal;LR;9|) + (EXIT (CONS (LIST (QVELT |uca| 0)) (QVELT |uca| 1))))) + ((SPADCALL (CDR (CDR |l|)) NIL (QREFELT $ 38)) + (SEQ + (LETT |u| + (SPADCALL (|SPADfirst| |l|) + (SPADCALL |l| (QREFELT $ 39)) (QREFELT $ 32)) + |EUCDOM-;principalIdeal;LR;9|) + (EXIT (CONS (LIST (QVELT |u| 0) (QVELT |u| 1)) (QVELT |u| 2))))) + ((QUOTE T) + (SEQ + (LETT |v| + (SPADCALL (CDR |l|) (QREFELT $ 42)) + |EUCDOM-;principalIdeal;LR;9|) + (LETT |u| + (SPADCALL (|SPADfirst| |l|) (QCDR |v|) (QREFELT $ 32)) + |EUCDOM-;principalIdeal;LR;9|) + (EXIT + (CONS + (CONS (QVELT |u| 0) + (PROGN + (LETT #0# NIL |EUCDOM-;principalIdeal;LR;9|) + (SEQ + (LETT |vv| NIL |EUCDOM-;principalIdeal;LR;9|) + (LETT #1# (QCAR |v|) |EUCDOM-;principalIdeal;LR;9|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN + (LETT |vv| (CAR #1#) |EUCDOM-;principalIdeal;LR;9|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #0# + (CONS (SPADCALL (QVELT |u| 1) |vv| (QREFELT $ 26)) + #0#) + |EUCDOM-;principalIdeal;LR;9|))) + (LETT #1# (CDR #1#) + |EUCDOM-;principalIdeal;LR;9|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#))))) + (QVELT |u| 2)))))))))) + @ \subsubsection{EUCDOM-;expressIdealMember;LSU;10} <>= -(DEFUN |EUCDOM-;expressIdealMember;LSU;10| (|l| |z| |$|) - (PROG (#1=#:G83681 #2=#:G83682 |pid| |q| #3=#:G83679 |v| #4=#:G83680) - (RETURN - (SEQ - (COND - ((SPADCALL |z| (|spadConstant| |$| 26) (QREFELT |$| 44)) - (CONS - 0 - (PROGN - (LETT #1# NIL |EUCDOM-;expressIdealMember;LSU;10|) - (SEQ - (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|) - (LETT #2# |l| |EUCDOM-;expressIdealMember;LSU;10|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |v| - (CAR #2#) - |EUCDOM-;expressIdealMember;LSU;10|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS (|spadConstant| |$| 26) #1#) - |EUCDOM-;expressIdealMember;LSU;10|))) - (LETT #2# (CDR #2#) |EUCDOM-;expressIdealMember;LSU;10|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))))) - ((QUOTE T) - (SEQ - (LETT |pid| - (SPADCALL |l| (QREFELT |$| 42)) - |EUCDOM-;expressIdealMember;LSU;10|) - (LETT |q| - (SPADCALL |z| (QCDR |pid|) (QREFELT |$| 33)) - |EUCDOM-;expressIdealMember;LSU;10|) - (EXIT - (COND - ((QEQCAR |q| 1) (CONS 1 "failed")) - ((QUOTE T) - (CONS - 0 - (PROGN - (LETT #3# NIL |EUCDOM-;expressIdealMember;LSU;10|) - (SEQ - (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|) - (LETT #4# (QCAR |pid|) |EUCDOM-;expressIdealMember;LSU;10|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |v| - (CAR #4#) - |EUCDOM-;expressIdealMember;LSU;10|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #3# - (CONS - (SPADCALL (QCDR |q|) |v| (QREFELT |$| 24)) - #3#) - |EUCDOM-;expressIdealMember;LSU;10|))) - (LETT #4# - (CDR #4#) - |EUCDOM-;expressIdealMember;LSU;10|) - (GO G190) - G191 - (EXIT (NREVERSE0 #3#))))))))))))))) +(DEFUN |EUCDOM-;expressIdealMember;LSU;10| (|l| |z| $) + (PROG (#0=#:G1513 #1=#:G1514 |pid| |q| #2=#:G1515 |v| #3=#:G1516) + (RETURN + (SEQ + (COND + ((SPADCALL |z| (|spadConstant| $ 16) (QREFELT $ 25)) + (CONS 0 + (PROGN + (LETT #0# NIL |EUCDOM-;expressIdealMember;LSU;10|) + (SEQ + (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|) + (LETT #1# |l| |EUCDOM-;expressIdealMember;LSU;10|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN + (LETT |v| (CAR #1#) |EUCDOM-;expressIdealMember;LSU;10|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #0# + (CONS (|spadConstant| $ 16) #0#) + |EUCDOM-;expressIdealMember;LSU;10|))) + (LETT #1# (CDR #1#) |EUCDOM-;expressIdealMember;LSU;10|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))))) + ((QUOTE T) + (SEQ + (LETT |pid| + (SPADCALL |l| (QREFELT $ 42)) + |EUCDOM-;expressIdealMember;LSU;10|) + (LETT |q| + (SPADCALL |z| (QCDR |pid|) (QREFELT $ 33)) + |EUCDOM-;expressIdealMember;LSU;10|) + (EXIT + (COND + ((QEQCAR |q| 1) (CONS 1 "failed")) + ((QUOTE T) + (CONS 0 + (PROGN + (LETT #2# NIL |EUCDOM-;expressIdealMember;LSU;10|) + (SEQ + (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|) + (LETT #3# (QCAR |pid|) |EUCDOM-;expressIdealMember;LSU;10|) + G190 + (COND + ((OR (ATOM #3#) + (PROGN + (LETT |v| (CAR #3#) |EUCDOM-;expressIdealMember;LSU;10|) + NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #2# + (CONS (SPADCALL (QCDR |q|) |v| (QREFELT $ 26)) + #2#) + |EUCDOM-;expressIdealMember;LSU;10|))) + (LETT #3# (CDR #3#) |EUCDOM-;expressIdealMember;LSU;10|) + (GO G190) + G191 + (EXIT (NREVERSE0 #2#))))))))))))))) @ \subsubsection{EUCDOM-;multiEuclidean;LSU;11} <>= -(DEFUN |EUCDOM-;multiEuclidean;LSU;11| (|l| |z| |$|) - (PROG (|n| |l1| |l2| #1=#:G83565 #2=#:G83702 #3=#:G83688 #4=#:G83686 - #5=#:G83687 #6=#:G83566 #7=#:G83701 #8=#:G83691 #9=#:G83689 - #10=#:G83690 |u| |v1| |v2|) - (RETURN - (SEQ - (LETT |n| (LENGTH |l|) |EUCDOM-;multiEuclidean;LSU;11|) - (EXIT - (COND - ((ZEROP |n|) (|error| "empty list passed to multiEuclidean")) - ((EQL |n| 1) (CONS 0 (LIST |z|))) - ((QUOTE T) - (SEQ - (LETT |l1| - (SPADCALL |l| (QREFELT |$| 47)) - |EUCDOM-;multiEuclidean;LSU;11|) - (LETT |l2| - (SPADCALL |l1| (QUOTIENT2 |n| 2) (QREFELT |$| 49)) - |EUCDOM-;multiEuclidean;LSU;11|) - (LETT |u| - (SPADCALL - (PROGN - (LETT #5# NIL |EUCDOM-;multiEuclidean;LSU;11|) - (SEQ - (LETT #1# NIL |EUCDOM-;multiEuclidean;LSU;11|) - (LETT #2# |l1| |EUCDOM-;multiEuclidean;LSU;11|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT #1# - (CAR #2#) - |EUCDOM-;multiEuclidean;LSU;11|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (PROGN - (LETT #3# #1# |EUCDOM-;multiEuclidean;LSU;11|) - (COND - (#5# - (LETT #4# - (SPADCALL #4# #3# (QREFELT |$| 24)) - |EUCDOM-;multiEuclidean;LSU;11|)) - ((QUOTE T) - (PROGN - (LETT #4# - #3# - |EUCDOM-;multiEuclidean;LSU;11|) - (LETT #5# - (QUOTE T) - |EUCDOM-;multiEuclidean;LSU;11|))))))) - (LETT #2# (CDR #2#) |EUCDOM-;multiEuclidean;LSU;11|) - (GO G190) - G191 - (EXIT NIL)) - (COND (#5# #4#) ((QUOTE T) (|spadConstant| |$| 25)))) - (PROGN - (LETT #10# NIL |EUCDOM-;multiEuclidean;LSU;11|) - (SEQ - (LETT #6# NIL |EUCDOM-;multiEuclidean;LSU;11|) - (LETT #7# |l2| |EUCDOM-;multiEuclidean;LSU;11|) - G190 - (COND - ((OR - (ATOM #7#) - (PROGN - (LETT #6# - (CAR #7#) - |EUCDOM-;multiEuclidean;LSU;11|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (PROGN - (LETT #8# #6# |EUCDOM-;multiEuclidean;LSU;11|) - (COND - (#10# - (LETT #9# - (SPADCALL #9# #8# (QREFELT |$| 24)) - |EUCDOM-;multiEuclidean;LSU;11|)) - ((QUOTE T) - (PROGN - (LETT #9# - #8# - |EUCDOM-;multiEuclidean;LSU;11|) - (LETT #10# - (QUOTE T) - |EUCDOM-;multiEuclidean;LSU;11|))))))) - (LETT #7# (CDR #7#) |EUCDOM-;multiEuclidean;LSU;11|) - (GO G190) - G191 - (EXIT NIL)) - (COND - (#10# #9#) - ((QUOTE T) (|spadConstant| |$| 25)))) - |z| - (QREFELT |$| 50)) - |EUCDOM-;multiEuclidean;LSU;11|) - (EXIT - (COND - ((QEQCAR |u| 1) (CONS 1 "failed")) - ((QUOTE T) - (SEQ - (LETT |v1| - (SPADCALL |l1| (QCDR (QCDR |u|)) (QREFELT |$| 51)) - |EUCDOM-;multiEuclidean;LSU;11|) - (EXIT - (COND - ((QEQCAR |v1| 1) (CONS 1 "failed")) - ((QUOTE T) - (SEQ - (LETT |v2| - (SPADCALL - |l2| - (QCAR (QCDR |u|)) - (QREFELT |$| 51)) - |EUCDOM-;multiEuclidean;LSU;11|) - (EXIT - (COND - ((QEQCAR |v2| 1) (CONS 1 "failed")) - ((QUOTE T) - (CONS - 0 - (SPADCALL - (QCDR |v1|) - (QCDR |v2|) - (QREFELT |$| 52)))))))))))))))))))))) +(DEFUN |EUCDOM-;multiEuclidean;LSU;11| (|l| |z| $) + (PROG (|n| |l1| |l2| #0=#:G1405 #1=#:G1535 #2=#:G1522 #3=#:G1520 + #4=#:G1521 #5=#:G1406 #6=#:G1536 #7=#:G1525 #8=#:G1523 #9=#:G1524 + |u| |v1| |v2|) + (RETURN + (SEQ + (LETT |n| (LENGTH |l|) |EUCDOM-;multiEuclidean;LSU;11|) + (EXIT + (COND + ((ZEROP |n|) (|error| "empty list passed to multiEuclidean")) + ((EQL |n| 1) (CONS 0 (LIST |z|))) + ((QUOTE T) + (SEQ + (LETT |l1| + (SPADCALL |l| (QREFELT $ 46)) |EUCDOM-;multiEuclidean;LSU;11|) + (LETT |l2| + (SPADCALL |l1| (QUOTIENT2 |n| 2) (QREFELT $ 48)) + |EUCDOM-;multiEuclidean;LSU;11|) + (LETT |u| + (SPADCALL + (PROGN + (LETT #4# NIL |EUCDOM-;multiEuclidean;LSU;11|) + (SEQ + (LETT #0# NIL |EUCDOM-;multiEuclidean;LSU;11|) + (LETT #1# |l1| |EUCDOM-;multiEuclidean;LSU;11|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN + (LETT #0# (CAR #1#) |EUCDOM-;multiEuclidean;LSU;11|) + NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #2# #0# |EUCDOM-;multiEuclidean;LSU;11|) + (COND + (#4# + (LETT #3# + (SPADCALL #3# #2# (QREFELT $ 26)) + |EUCDOM-;multiEuclidean;LSU;11|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |EUCDOM-;multiEuclidean;LSU;11|) + (LETT #4# (QUOTE T) |EUCDOM-;multiEuclidean;LSU;11|))))))) + (LETT #1# (CDR #1#) |EUCDOM-;multiEuclidean;LSU;11|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) (|spadConstant| $ 24)))) + (PROGN + (LETT #9# NIL |EUCDOM-;multiEuclidean;LSU;11|) + (SEQ + (LETT #5# NIL |EUCDOM-;multiEuclidean;LSU;11|) + (LETT #6# |l2| |EUCDOM-;multiEuclidean;LSU;11|) + G190 + (COND + ((OR (ATOM #6#) + (PROGN + (LETT #5# (CAR #6#) |EUCDOM-;multiEuclidean;LSU;11|) + NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #7# #5# |EUCDOM-;multiEuclidean;LSU;11|) + (COND + (#9# + (LETT #8# + (SPADCALL #8# #7# (QREFELT $ 26)) + |EUCDOM-;multiEuclidean;LSU;11|)) + ((QUOTE T) + (PROGN + (LETT #8# #7# |EUCDOM-;multiEuclidean;LSU;11|) + (LETT #9# (QUOTE T) |EUCDOM-;multiEuclidean;LSU;11|))))))) + (LETT #6# (CDR #6#) |EUCDOM-;multiEuclidean;LSU;11|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#9# #8#) ((QUOTE T) (|spadConstant| $ 24)))) + |z| (QREFELT $ 49)) + |EUCDOM-;multiEuclidean;LSU;11|) + (EXIT + (COND + ((QEQCAR |u| 1) (CONS 1 "failed")) + ((QUOTE T) + (SEQ + (LETT |v1| + (SPADCALL |l1| (QCDR (QCDR |u|)) (QREFELT $ 50)) + |EUCDOM-;multiEuclidean;LSU;11|) + (EXIT + (COND + ((QEQCAR |v1| 1) (CONS 1 "failed")) + ((QUOTE T) + (SEQ + (LETT |v2| + (SPADCALL |l2| (QCAR (QCDR |u|)) (QREFELT $ 50)) + |EUCDOM-;multiEuclidean;LSU;11|) + (EXIT + (COND + ((QEQCAR |v2| 1) (CONS 1 "failed")) + ((QUOTE T) + (CONS 0 + (SPADCALL + (QCDR |v1|) + (QCDR |v2|) + (QREFELT $ 51)))))))))))))))))))))) @ \subsubsection{EuclideanDomain\&} <>= -(DEFUN |EuclideanDomain&| (|#1|) - (PROG (|DV$1| |dv$| |$| |pv$|) - (RETURN - (PROGN - (LETT |DV$1| (|devaluate| |#1|) . #1=(|EuclideanDomain&|)) - (LETT |dv$| (LIST (QUOTE |EuclideanDomain&|) |DV$1|) . #1#) - (LETT |$| (GETREFV 54) . #1#) - (QSETREFV |$| 0 |dv$|) - (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) - (|stuffDomainSlots| |$|) - (QSETREFV |$| 6 |#1|) - |$|)))) +(DEFUN |EuclideanDomain&| (|#1|) + (PROG (DV$1 |dv$| $ |pv$|) + (RETURN + (PROGN + (LETT DV$1 (|devaluate| |#1|) . #0=(|EuclideanDomain&|)) + (LETT |dv$| (LIST (QUOTE |EuclideanDomain&|) DV$1) . #0#) + (LETT $ (GETREFV 53) . #0#) + (QSETREFV $ 0 |dv$|) + (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#)) + (|stuffDomainSlots| $) + (QSETREFV $ 6 |#1|) + $)))) @ \subsubsection{EUCDOM-;MAKEPROP} <>= -(MAKEPROP - (QUOTE |EuclideanDomain&|) - (QUOTE |infovec|) - (LIST - (QUOTE - #(NIL NIL NIL NIL NIL NIL - (|local| |#1|) - (|Boolean|) - (0 . |zero?|) - (|NonNegativeInteger|) - (5 . |euclideanSize|) - |EUCDOM-;sizeLess?;2SB;1| - (|Record| (|:| |quotient| |$|) (|:| |remainder| |$|)) - (10 . |divide|) - |EUCDOM-;quo;3S;2| - |EUCDOM-;rem;3S;3| - (|Union| |$| (QUOTE "failed")) - |EUCDOM-;exquo;2SU;4| - (16 . |unitCanonical|) - (21 . |rem|) - |EUCDOM-;gcd;3S;5| - (|Record| (|:| |unit| |$|) (|:| |canonical| |$|) (|:| |associate| |$|)) - (27 . |unitNormal|) - (32 . |one?|) - (37 . |*|) - (43 . |One|) - (47 . |Zero|) - (51 . |-|) - (57 . |sizeLess?|) - (63 . |+|) - (|Record| (|:| |coef1| |$|) (|:| |coef2| |$|) (|:| |generator| |$|)) - |EUCDOM-;extendedEuclidean;2SR;7| - (69 . |extendedEuclidean|) - (75 . |exquo|) - (|Record| (|:| |coef1| |$|) (|:| |coef2| |$|)) - (|Union| 34 (QUOTE "failed")) - |EUCDOM-;extendedEuclidean;3SU;8| - (|List| 6) - (81 . |=|) - (87 . |second|) - (|Record| (|:| |coef| 41) (|:| |generator| |$|)) - (|List| |$|) - (92 . |principalIdeal|) - |EUCDOM-;principalIdeal;LR;9| - (97 . |=|) - (|Union| 41 (QUOTE "failed")) - |EUCDOM-;expressIdealMember;LSU;10| - (103 . |copy|) - (|Integer|) - (108 . |split!|) - (114 . |extendedEuclidean|) - (121 . |multiEuclidean|) - (127 . |concat|) - |EUCDOM-;multiEuclidean;LSU;11|)) - (QUOTE - #(|sizeLess?| 133 |rem| 139 |quo| 145 |principalIdeal| 151 - |multiEuclidean| 156 |gcd| 162 |extendedEuclidean| 168 |exquo| 181 - |expressIdealMember| 187)) - (QUOTE NIL) - (CONS - (|makeByteWordVec2| 1 (QUOTE NIL)) - (CONS - (QUOTE #()) - (CONS - (QUOTE #()) - (|makeByteWordVec2| 53 - (QUOTE - (1 6 7 0 8 1 6 9 0 10 2 6 12 0 0 13 1 6 0 0 18 2 6 0 0 0 19 1 6 - 21 0 22 1 6 7 0 23 2 6 0 0 0 24 0 6 0 25 0 6 0 26 2 6 0 0 0 27 - 2 6 7 0 0 28 2 6 0 0 0 29 2 6 30 0 0 32 2 6 16 0 0 33 2 37 7 0 - 0 38 1 37 6 0 39 1 6 40 41 42 2 6 7 0 0 44 1 37 0 0 47 2 37 0 0 - 48 49 3 6 35 0 0 0 50 2 6 45 41 0 51 2 37 0 0 0 52 2 0 7 0 0 11 - 2 0 0 0 0 15 2 0 0 0 0 14 1 0 40 41 43 2 0 45 41 0 53 2 0 0 0 0 - 20 3 0 35 0 0 0 36 2 0 30 0 0 31 2 0 16 0 0 17 2 0 45 41 0 - 46)))))) - (QUOTE |lookupComplete|))) +(MAKEPROP + (QUOTE |EuclideanDomain&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|Boolean|) (0 . |zero?|) + (|NonNegativeInteger|) (5 . |euclideanSize|) |EUCDOM-;sizeLess?;2SB;1| + (|Record| (|:| |quotient| $) (|:| |remainder| $)) (10 . |divide|) + |EUCDOM-;quo;3S;2| |EUCDOM-;rem;3S;3| (16 . |Zero|) + (|Union| $ (QUOTE "failed")) |EUCDOM-;exquo;2SU;4| (20 . |unitCanonical|) + (25 . |rem|) |EUCDOM-;gcd;3S;5| + (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $)) + (31 . |unitNormal|) (36 . |One|) (40 . =) (46 . *) (52 . -) + (58 . |sizeLess?|) (64 . +) + (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $)) + |EUCDOM-;extendedEuclidean;2SR;7| + (70 . |extendedEuclidean|) (76 . |exquo|) + (|Record| (|:| |coef1| $) (|:| |coef2| $)) + (|Union| 34 (QUOTE "failed")) |EUCDOM-;extendedEuclidean;3SU;8| + (|List| 6) (82 . =) (88 . |second|) + (|Record| (|:| |coef| 41) (|:| |generator| $)) + (|List| $) (93 . |principalIdeal|) |EUCDOM-;principalIdeal;LR;9| + (|Union| 41 (QUOTE "failed")) |EUCDOM-;expressIdealMember;LSU;10| + (98 . |copy|) (|Integer|) (103 . |split!|) (109 . |extendedEuclidean|) + (116 . |multiEuclidean|) (122 . |concat|) |EUCDOM-;multiEuclidean;LSU;11|)) + (QUOTE + #(|sizeLess?| 128 |rem| 134 |quo| 140 |principalIdeal| 146 + |multiEuclidean| 151 |gcd| 157 |extendedEuclidean| 163 + |exquo| 176 |expressIdealMember| 182)) + (QUOTE NIL) + (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS (QUOTE #()) + (CONS (QUOTE #()) + (|makeByteWordVec2| 52 (QUOTE (1 6 7 0 8 1 6 9 0 10 2 6 12 0 0 13 0 + 6 0 16 1 6 0 0 19 2 6 0 0 0 20 1 6 22 0 23 0 6 0 24 2 6 7 0 0 25 2 6 0 + 0 0 26 2 6 0 0 0 27 2 6 7 0 0 28 2 6 0 0 0 29 2 6 30 0 0 32 2 6 17 0 0 + 33 2 37 7 0 0 38 1 37 6 0 39 1 6 40 41 42 1 37 0 0 46 2 37 0 0 47 48 3 + 6 35 0 0 0 49 2 6 44 41 0 50 2 37 0 0 0 51 2 0 7 0 0 11 2 0 0 0 0 15 2 + 0 0 0 0 14 1 0 40 41 43 2 0 44 41 0 52 2 0 0 0 0 21 3 0 35 0 0 0 36 2 0 + 30 0 0 31 2 0 17 0 0 18 2 0 44 41 0 45)))))) + (QUOTE |lookupComplete|))) @ <>= diff --git a/src/algebra/polycat.spad.pamphlet b/src/algebra/polycat.spad.pamphlet index 01cbbcc..d1e38b7 100644 --- a/src/algebra/polycat.spad.pamphlet +++ b/src/algebra/polycat.spad.pamphlet @@ -568,8 +568,10 @@ PolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, VarSet:OrderedSet): unit(s := squareFree p) * */[f.factor for f in factors s] content(p,v) == content univariate(p,v) primitivePart p == + zero? p => p unitNormal((p exquo content p) ::%).canonical primitivePart(p,v) == + zero? p => p unitNormal((p exquo content(p,v)) ::%).canonical if R has OrderedSet then p:% < q:% == @@ -617,171 +619,125 @@ Note that this code is not included in the generated catdef.spad file. <>= -(|/VERSIONCHECK| 2) +(/VERSIONCHECK 2) (SETQ |PolynomialCategory;CAT| (QUOTE NIL)) (SETQ |PolynomialCategory;AL| (QUOTE NIL)) -(DEFUN |PolynomialCategory| (|&REST| #1=#:G101841 |&AUX| #2=#:G101839) - (DSETQ #2# #1#) - (LET (#3=#:G101840) - (COND - ((SETQ #3# (|assoc| (|devaluateList| #2#) |PolynomialCategory;AL|)) - (CDR #3#)) - (T - (SETQ |PolynomialCategory;AL| - (|cons5| - (CONS - (|devaluateList| #2#) - (SETQ #3# (APPLY (FUNCTION |PolynomialCategory;|) #2#))) - |PolynomialCategory;AL|)) - #3#)))) - -(DEFUN |PolynomialCategory;| (|t#1| |t#2| |t#3|) - (PROG (#1=#:G101838) - (RETURN - (PROG1 - (LETT #1# - (|sublisV| - (PAIR - (QUOTE (|t#1| |t#2| |t#3|)) - (LIST - (|devaluate| |t#1|) - (|devaluate| |t#2|) - (|devaluate| |t#3|))) - (COND - (|PolynomialCategory;CAT|) - ((QUOTE T) - (LETT |PolynomialCategory;CAT| - (|Join| - (|PartialDifferentialRing| (QUOTE |t#3|)) - (|FiniteAbelianMonoidRing| (QUOTE |t#1|) (QUOTE |t#2|)) - (|Evalable| (QUOTE |$|)) - (|InnerEvalable| (QUOTE |t#3|) (QUOTE |t#1|)) - (|InnerEvalable| (QUOTE |t#3|) (QUOTE |$|)) - (|RetractableTo| (QUOTE |t#3|)) - (|FullyLinearlyExplicitRingOver| (QUOTE |t#1|)) - (|mkCategory| - (QUOTE |domain|) - (QUOTE ( - ((|degree| ((|NonNegativeInteger|) |$| |t#3|)) T) - ((|degree| - ((|List| (|NonNegativeInteger|)) - |$| - (|List| |t#3|))) T) - ((|coefficient| - (|$| |$| |t#3| (|NonNegativeInteger|))) T) - ((|coefficient| - (|$| - |$| - (|List| |t#3|) - (|List| (|NonNegativeInteger|)))) T) - ((|monomials| ((|List| |$|) |$|)) T) - ((|univariate| - ((|SparseUnivariatePolynomial| |$|) |$| |t#3|)) T) - ((|univariate| - ((|SparseUnivariatePolynomial| |t#1|) |$|)) T) - ((|mainVariable| ((|Union| |t#3| "failed") |$|)) T) - ((|minimumDegree| - ((|NonNegativeInteger|) |$| |t#3|)) T) - ((|minimumDegree| - ((|List| (|NonNegativeInteger|)) - |$| - (|List| |t#3|))) T) - ((|monicDivide| - ((|Record| - (|:| |quotient| |$|) - (|:| |remainder| |$|)) - |$| - |$| - |t#3|)) T) - ((|monomial| (|$| |$| |t#3| (|NonNegativeInteger|))) T) - ((|monomial| - (|$| - |$| - (|List| |t#3|) - (|List| (|NonNegativeInteger|)))) T) - ((|multivariate| - (|$| (|SparseUnivariatePolynomial| |t#1|) |t#3|)) T) - ((|multivariate| - (|$| (|SparseUnivariatePolynomial| |$|) |t#3|)) T) - ((|isPlus| ((|Union| (|List| |$|) "failed") |$|)) T) - ((|isTimes| ((|Union| (|List| |$|) "failed") |$|)) T) - ((|isExpt| - ((|Union| - (|Record| - (|:| |var| |t#3|) - (|:| |exponent| (|NonNegativeInteger|))) - "failed") - |$|)) T) - ((|totalDegree| ((|NonNegativeInteger|) |$|)) T) - ((|totalDegree| - ((|NonNegativeInteger|) |$| (|List| |t#3|))) T) - ((|variables| ((|List| |t#3|) |$|)) T) - ((|primitiveMonomials| ((|List| |$|) |$|)) T) - ((|resultant| (|$| |$| |$| |t#3|)) - (|has| |t#1| (|CommutativeRing|))) - ((|discriminant| (|$| |$| |t#3|)) - (|has| |t#1| (|CommutativeRing|))) - ((|content| (|$| |$| |t#3|)) - (|has| |t#1| (|GcdDomain|))) - ((|primitivePart| (|$| |$|)) - (|has| |t#1| (|GcdDomain|))) - ((|primitivePart| (|$| |$| |t#3|)) - (|has| |t#1| (|GcdDomain|))) - ((|squareFree| ((|Factored| |$|) |$|)) - (|has| |t#1| (|GcdDomain|))) - ((|squareFreePart| (|$| |$|)) ( - |has| |t#1| (|GcdDomain|))))) - (QUOTE ( - ((|OrderedSet|) (|has| |t#1| (|OrderedSet|))) - ((|ConvertibleTo| (|InputForm|)) - (AND - (|has| |t#3| (|ConvertibleTo| (|InputForm|))) - (|has| |t#1| (|ConvertibleTo| (|InputForm|))))) - ((|ConvertibleTo| (|Pattern| (|Integer|))) - (AND - (|has| |t#3| - (|ConvertibleTo| (|Pattern| (|Integer|)))) - (|has| |t#1| - (|ConvertibleTo| (|Pattern| (|Integer|)))))) - ((|ConvertibleTo| (|Pattern| (|Float|))) - (AND - (|has| |t#3| - (|ConvertibleTo| (|Pattern| (|Float|)))) - (|has| |t#1| - (|ConvertibleTo| (|Pattern| (|Float|)))))) - ((|PatternMatchable| (|Integer|)) - (AND - (|has| |t#3| (|PatternMatchable| (|Integer|))) - (|has| |t#1| (|PatternMatchable| (|Integer|))))) - ((|PatternMatchable| (|Float|)) - (AND - (|has| |t#3| (|PatternMatchable| (|Float|))) - (|has| |t#1| (|PatternMatchable| (|Float|))))) - ((|GcdDomain|) (|has| |t#1| (|GcdDomain|))) - (|canonicalUnitNormal| - (|has| |t#1| (ATTRIBUTE |canonicalUnitNormal|))) - ((|PolynomialFactorizationExplicit|) - (|has| |t#1| (|PolynomialFactorizationExplicit|))))) - (QUOTE ( - (|Factored| |$|) - (|List| |$|) - (|List| |t#3|) - (|NonNegativeInteger|) - (|SparseUnivariatePolynomial| |$|) - (|SparseUnivariatePolynomial| |t#1|) - (|List| (|NonNegativeInteger|)))) - NIL)) - . #2=(|PolynomialCategory|))))) - . #2#) - (SETELT #1# 0 - (LIST - (QUOTE |PolynomialCategory|) - (|devaluate| |t#1|) - (|devaluate| |t#2|) - (|devaluate| |t#3|))))))) +(DEFUN |PolynomialCategory| (&REST #0=#:G1430 &AUX #1=#:G1428) + (DSETQ #1# #0#) + (LET (#2=#:G1429) + (COND + ((SETQ #2# (|assoc| (|devaluateList| #1#) |PolynomialCategory;AL|)) + (CDR #2#)) + (T + (SETQ |PolynomialCategory;AL| + (|cons5| + (CONS (|devaluateList| #1#) + (SETQ #2# (APPLY (FUNCTION |PolynomialCategory;|) #1#))) + |PolynomialCategory;AL|)) + #2#)))) + +(DEFUN |PolynomialCategory;| (|t#1| |t#2| |t#3|) + (PROG (#0=#:G1427) + (RETURN + (PROG1 + (LETT #0# + (|sublisV| + (PAIR (QUOTE (|t#1| |t#2| |t#3|)) (LIST (|devaluate| |t#1|) (|devaluate| |t#2|) (|devaluate| |t#3|))) + (COND + (|PolynomialCategory;CAT|) + ((QUOTE T) + (LETT |PolynomialCategory;CAT| + (|Join| + (|PartialDifferentialRing| (QUOTE |t#3|)) + (|FiniteAbelianMonoidRing| (QUOTE |t#1|) (QUOTE |t#2|)) + (|Evalable| (QUOTE $)) + (|InnerEvalable| (QUOTE |t#3|) (QUOTE |t#1|)) + (|InnerEvalable| (QUOTE |t#3|) (QUOTE $)) + (|RetractableTo| (QUOTE |t#3|)) + (|FullyLinearlyExplicitRingOver| (QUOTE |t#1|)) + (|mkCategory| (QUOTE |domain|) + (QUOTE + (((|degree| ((|NonNegativeInteger|) $ |t#3|)) T) + ((|degree| ((|List| (|NonNegativeInteger|)) $ (|List| |t#3|))) T) + ((|coefficient| ($ $ |t#3| (|NonNegativeInteger|))) T) + ((|coefficient| ($ $ (|List| |t#3|) + (|List| (|NonNegativeInteger|)))) T) + ((|monomials| ((|List| $) $)) T) + ((|univariate| ((|SparseUnivariatePolynomial| $) $ |t#3|)) T) + ((|univariate| ((|SparseUnivariatePolynomial| |t#1|) $)) T) + ((|mainVariable| ((|Union| |t#3| "failed") $)) T) + ((|minimumDegree| ((|NonNegativeInteger|) $ |t#3|)) T) + ((|minimumDegree| ((|List| (|NonNegativeInteger|)) $ + (|List| |t#3|))) T) + ((|monicDivide| + ((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $ |t#3|)) + T) + ((|monomial| ($ $ |t#3| (|NonNegativeInteger|))) T) + ((|monomial| ($ $ (|List| |t#3|) (|List| (|NonNegativeInteger|)))) + T) + ((|multivariate| ($ (|SparseUnivariatePolynomial| |t#1|) |t#3|)) + T) + ((|multivariate| ($ (|SparseUnivariatePolynomial| $) |t#3|)) T) + ((|isPlus| ((|Union| (|List| $) "failed") $)) T) + ((|isTimes| ((|Union| (|List| $) "failed") $)) T) + ((|isExpt| + ((|Union| + (|Record| (|:| |var| |t#3|) + (|:| |exponent| (|NonNegativeInteger|))) + "failed") $)) + T) + ((|totalDegree| ((|NonNegativeInteger|) $)) T) + ((|totalDegree| ((|NonNegativeInteger|) $ (|List| |t#3|))) T) + ((|variables| ((|List| |t#3|) $)) T) + ((|primitiveMonomials| ((|List| $) $)) T) + ((|resultant| ($ $ $ |t#3|)) (|has| |t#1| (|CommutativeRing|))) + ((|discriminant| ($ $ |t#3|)) (|has| |t#1| (|CommutativeRing|))) + ((|content| ($ $ |t#3|)) (|has| |t#1| (|GcdDomain|))) + ((|primitivePart| ($ $)) (|has| |t#1| (|GcdDomain|))) + ((|primitivePart| ($ $ |t#3|)) (|has| |t#1| (|GcdDomain|))) + ((|squareFree| ((|Factored| $) $)) (|has| |t#1| (|GcdDomain|))) + ((|squareFreePart| ($ $)) (|has| |t#1| (|GcdDomain|))))) + (QUOTE + (((|OrderedSet|) (|has| |t#1| (|OrderedSet|))) + ((|ConvertibleTo| (|InputForm|)) + (AND (|has| |t#3| (|ConvertibleTo| (|InputForm|))) + (|has| |t#1| (|ConvertibleTo| (|InputForm|))))) + ((|ConvertibleTo| (|Pattern| (|Integer|))) + (AND (|has| |t#3| (|ConvertibleTo| (|Pattern| (|Integer|)))) + (|has| |t#1| (|ConvertibleTo| (|Pattern| (|Integer|)))))) + ((|ConvertibleTo| (|Pattern| (|Float|))) + (AND (|has| |t#3| (|ConvertibleTo| (|Pattern| (|Float|)))) + (|has| |t#1| (|ConvertibleTo| (|Pattern| (|Float|)))))) + ((|PatternMatchable| (|Integer|)) + (AND + (|has| |t#3| (|PatternMatchable| (|Integer|))) + (|has| |t#1| (|PatternMatchable| (|Integer|))))) + ((|PatternMatchable| (|Float|)) + (AND + (|has| |t#3| (|PatternMatchable| (|Float|))) + (|has| |t#1| (|PatternMatchable| (|Float|))))) + ((|GcdDomain|) (|has| |t#1| (|GcdDomain|))) + (|canonicalUnitNormal| + (|has| |t#1| (ATTRIBUTE |canonicalUnitNormal|))) + ((|PolynomialFactorizationExplicit|) + (|has| |t#1| (|PolynomialFactorizationExplicit|))))) + (QUOTE + ((|Factored| $) + (|List| $) + (|List| |t#3|) + (|NonNegativeInteger|) + (|SparseUnivariatePolynomial| $) + (|SparseUnivariatePolynomial| |t#1|) + (|List| (|NonNegativeInteger|)))) + NIL)) + . #1=(|PolynomialCategory|))))) + . #1#) + (SETELT #0# 0 + (LIST (QUOTE |PolynomialCategory|) + (|devaluate| |t#1|) (|devaluate| |t#2|) (|devaluate| |t#3|))))))) @ \section{POLYCAT-.lsp BOOTSTRAP} @@ -797,1924 +753,1521 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |POLYCAT-;eval;SLS;1| (|p| |l| |$|) - (PROG (#1=#:G101870 #2=#:G101860 #3=#:G101868 #4=#:G101869 - |lvar| #5=#:G101866 |e| #6=#:G101867) - (RETURN - (SEQ - (COND - ((NULL |l|) |p|) - ((QUOTE T) - (SEQ - (SEQ - (EXIT - (SEQ - (LETT |e| NIL |POLYCAT-;eval;SLS;1|) - (LETT #1# |l| |POLYCAT-;eval;SLS;1|) - G190 - (COND - ((OR - (ATOM #1#) - (PROGN (LETT |e| (CAR #1#) |POLYCAT-;eval;SLS;1|) NIL)) - (GO G191))) - (SEQ - (EXIT - (COND - ((QEQCAR - (SPADCALL - (SPADCALL |e| (QREFELT |$| 11)) - (QREFELT |$| 13)) - 1) - (PROGN - (LETT #2# - (|error| "cannot find a variable to evaluate") - |POLYCAT-;eval;SLS;1|) - (GO #2#)))))) - (LETT #1# (CDR #1#) |POLYCAT-;eval;SLS;1|) - (GO G190) - G191 - (EXIT NIL))) - #2# - (EXIT #2#)) - (LETT |lvar| - (PROGN - (LETT #3# NIL |POLYCAT-;eval;SLS;1|) - (SEQ - (LETT |e| NIL |POLYCAT-;eval;SLS;1|) - (LETT #4# |l| |POLYCAT-;eval;SLS;1|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |e| (CAR #4#) |POLYCAT-;eval;SLS;1|) NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #3# - (CONS - (SPADCALL - (SPADCALL |e| (QREFELT |$| 11)) - (QREFELT |$| 14)) - #3#) - |POLYCAT-;eval;SLS;1|))) - (LETT #4# (CDR #4#) |POLYCAT-;eval;SLS;1|) - (GO G190) - G191 - (EXIT (NREVERSE0 #3#)))) - |POLYCAT-;eval;SLS;1|) - (EXIT - (SPADCALL - |p| - |lvar| - (PROGN - (LETT #5# NIL |POLYCAT-;eval;SLS;1|) - (SEQ - (LETT |e| NIL |POLYCAT-;eval;SLS;1|) - (LETT #6# |l| |POLYCAT-;eval;SLS;1|) - G190 - (COND - ((OR - (ATOM #6#) - (PROGN - (LETT |e| (CAR #6#) |POLYCAT-;eval;SLS;1|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #5# - (CONS (SPADCALL |e| (QREFELT |$| 15)) #5#) - |POLYCAT-;eval;SLS;1|))) - (LETT #6# (CDR #6#) |POLYCAT-;eval;SLS;1|) - (GO G190) - G191 - (EXIT (NREVERSE0 #5#)))) - (QREFELT |$| 18)))))))))) -(DEFUN |POLYCAT-;monomials;SL;2| (|p| |$|) - (PROG (|ml|) - (RETURN - (SEQ - (LETT |ml| NIL |POLYCAT-;monomials;SL;2|) - (SEQ G190 - (COND - ((NULL - (COND - ((SPADCALL |p| (|spadConstant| |$| 21) (QREFELT |$| 24)) - (QUOTE NIL)) - ((QUOTE T) (QUOTE T)))) - (GO G191))) - (SEQ - (LETT |ml| - (CONS (SPADCALL |p| (QREFELT |$| 25)) |ml|) - |POLYCAT-;monomials;SL;2|) - (EXIT - (LETT |p| - (SPADCALL |p| (QREFELT |$| 26)) - |POLYCAT-;monomials;SL;2|))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (EXIT (REVERSE |ml|)))))) +(/VERSIONCHECK 2) -(DEFUN |POLYCAT-;isPlus;SU;3| (|p| |$|) - (PROG (|l|) - (RETURN - (COND - ((NULL - (CDR - (LETT |l| - (SPADCALL |p| (QREFELT |$| 28)) - |POLYCAT-;isPlus;SU;3|))) - (CONS 1 "failed")) - ((QUOTE T) (CONS 0 |l|)))))) - -(DEFUN |POLYCAT-;isTimes;SU;4| (|p| |$|) - (PROG (|lv| #1=#:G101892 |v| #2=#:G101893 |l| |r|) - (RETURN - (SEQ - (COND - ((OR - (NULL - (LETT |lv| - (SPADCALL |p| (QREFELT |$| 31)) - |POLYCAT-;isTimes;SU;4|)) - (NULL (SPADCALL |p| (QREFELT |$| 32)))) - (CONS 1 "failed")) - ((QUOTE T) - (SEQ - (LETT |l| - (PROGN - (LETT #1# NIL |POLYCAT-;isTimes;SU;4|) - (SEQ - (LETT |v| NIL |POLYCAT-;isTimes;SU;4|) - (LETT #2# |lv| |POLYCAT-;isTimes;SU;4|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |v| (CAR #2#) |POLYCAT-;isTimes;SU;4|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS - (SPADCALL - (|spadConstant| |$| 33) - |v| - (SPADCALL |p| |v| (QREFELT |$| 36)) - (QREFELT |$| 37)) - #1#) - |POLYCAT-;isTimes;SU;4|))) - (LETT #2# (CDR #2#) |POLYCAT-;isTimes;SU;4|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - |POLYCAT-;isTimes;SU;4|) - (EXIT - (COND - ((SPADCALL - (LETT |r| - (SPADCALL |p| (QREFELT |$| 38)) - |POLYCAT-;isTimes;SU;4|) - (QREFELT |$| 39)) - (COND - ((NULL (CDR |lv|)) (CONS 1 "failed")) - ((QUOTE T) (CONS 0 |l|)))) - ((QUOTE T) - (CONS 0 - (CONS (SPADCALL |r| (QREFELT |$| 40)) |l|)))))))))))) - -(DEFUN |POLYCAT-;isExpt;SU;5| (|p| |$|) - (PROG (|u| |d|) - (RETURN - (SEQ - (LETT |u| (SPADCALL |p| (QREFELT |$| 42)) |POLYCAT-;isExpt;SU;5|) - (EXIT - (COND - ((OR - (QEQCAR |u| 1) - (NULL - (SPADCALL |p| - (SPADCALL - (|spadConstant| |$| 33) - (QCDR |u|) - (LETT |d| - (SPADCALL |p| (QCDR |u|) (QREFELT |$| 36)) - |POLYCAT-;isExpt;SU;5|) - (QREFELT |$| 37)) - (QREFELT |$| 24)))) - (CONS 1 "failed")) - ((QUOTE T) (CONS 0 (CONS (QCDR |u|) |d|))))))))) - -(DEFUN |POLYCAT-;coefficient;SVarSetNniS;6| (|p| |v| |n| |$|) - (SPADCALL (SPADCALL |p| |v| (QREFELT |$| 47)) |n| (QREFELT |$| 49))) - -(DEFUN |POLYCAT-;coefficient;SLLS;7| (|p| |lv| |ln| |$|) - (COND - ((NULL |lv|) - (COND - ((NULL |ln|) |p|) - ((QUOTE T) (|error| "mismatched lists in coefficient")))) - ((NULL |ln|) - (|error| "mismatched lists in coefficient")) - ((QUOTE T) - (SPADCALL - (SPADCALL - (SPADCALL |p| (|SPADfirst| |lv|) (QREFELT |$| 47)) - (|SPADfirst| |ln|) - (QREFELT |$| 49)) - (CDR |lv|) - (CDR |ln|) - (QREFELT |$| 52))))) - -(DEFUN |POLYCAT-;monomial;SLLS;8| (|p| |lv| |ln| |$|) - (COND - ((NULL |lv|) - (COND - ((NULL |ln|) |p|) - ((QUOTE T) (|error| "mismatched lists in monomial")))) - ((NULL |ln|) - (|error| "mismatched lists in monomial")) - ((QUOTE T) - (SPADCALL - (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |ln|) (QREFELT |$| 37)) - (CDR |lv|) - (CDR |ln|) - (QREFELT |$| 54))))) - -(DEFUN |POLYCAT-;retract;SVarSet;9| (|p| |$|) - (PROG (#1=#:G101918 |q|) - (RETURN - (SEQ - (LETT |q| - (PROG2 - (LETT #1# - (SPADCALL |p| (QREFELT |$| 42)) - |POLYCAT-;retract;SVarSet;9|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) (QREFELT |$| 9) #1#)) - |POLYCAT-;retract;SVarSet;9|) +(DEFUN |POLYCAT-;eval;SLS;1| (|p| |l| $) + (PROG (#0=#:G1444 #1=#:G1438 #2=#:G1445 #3=#:G1446 |lvar| #4=#:G1447 + |e| #5=#:G1448) + (RETURN + (SEQ + (COND + ((NULL |l|) |p|) + ((QUOTE T) + (SEQ + (SEQ (EXIT - (COND - ((SPADCALL - (SPADCALL |q| (QREFELT |$| 56)) - |p| - (QREFELT |$| 24)) - |q|) - ((QUOTE T) - (|error| "Polynomial is not a single variable")))))))) - -(DEFUN |POLYCAT-;retractIfCan;SU;10| (|p| |$|) - (PROG (|q| #1=#:G101926) - (RETURN - (SEQ - (EXIT - (SEQ - (SEQ - (LETT |q| - (SPADCALL |p| (QREFELT |$| 42)) - |POLYCAT-;retractIfCan;SU;10|) - (EXIT - (COND - ((QEQCAR |q| 0) - (COND - ((SPADCALL - (SPADCALL (QCDR |q|) (QREFELT |$| 56)) - |p| - (QREFELT |$| 24)) - (PROGN - (LETT #1# |q| |POLYCAT-;retractIfCan;SU;10|) - (GO #1#)))))))) - (EXIT (CONS 1 "failed")))) - #1# - (EXIT #1#))))) - -(DEFUN |POLYCAT-;mkPrim| (|p| |$|) - (SPADCALL - (|spadConstant| |$| 34) - (SPADCALL |p| (QREFELT |$| 59)) - (QREFELT |$| 60))) - -(DEFUN |POLYCAT-;primitiveMonomials;SL;12| (|p| |$|) - (PROG (#1=#:G101931 |q| #2=#:G101932) - (RETURN - (SEQ - (PROGN - (LETT #1# NIL |POLYCAT-;primitiveMonomials;SL;12|) + (SEQ + (LETT |e| NIL |POLYCAT-;eval;SLS;1|) + (LETT #0# |l| |POLYCAT-;eval;SLS;1|) + G190 + (COND + ((OR (ATOM #0#) + (PROGN (LETT |e| (CAR #0#) |POLYCAT-;eval;SLS;1|) NIL)) + (GO G191))) (SEQ - (LETT |q| NIL |POLYCAT-;primitiveMonomials;SL;12|) - (LETT #2# - (SPADCALL |p| (QREFELT |$| 28)) - |POLYCAT-;primitiveMonomials;SL;12|) - G190 + (EXIT + (COND + ((QEQCAR + (SPADCALL (SPADCALL |e| (QREFELT $ 11)) (QREFELT $ 13)) 1) + (PROGN + (LETT #1# + (|error| "cannot find a variable to evaluate") + |POLYCAT-;eval;SLS;1|) + (GO #1#)))))) + (LETT #0# (CDR #0#) |POLYCAT-;eval;SLS;1|) + (GO G190) + G191 + (EXIT NIL))) + #1# (EXIT #1#)) + (LETT |lvar| + (PROGN + (LETT #2# NIL |POLYCAT-;eval;SLS;1|) + (SEQ + (LETT |e| NIL |POLYCAT-;eval;SLS;1|) + (LETT #3# |l| |POLYCAT-;eval;SLS;1|) + G190 + (COND + ((OR (ATOM #3#) + (PROGN (LETT |e| (CAR #3#) |POLYCAT-;eval;SLS;1|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #2# + (CONS (SPADCALL (SPADCALL |e| (QREFELT $ 11)) (QREFELT $ 14)) + #2#) + |POLYCAT-;eval;SLS;1|))) + (LETT #3# (CDR #3#) |POLYCAT-;eval;SLS;1|) + (GO G190) + G191 + (EXIT (NREVERSE0 #2#)))) + |POLYCAT-;eval;SLS;1|) + (EXIT + (SPADCALL |p| |lvar| + (PROGN + (LETT #4# NIL |POLYCAT-;eval;SLS;1|) + (SEQ + (LETT |e| NIL |POLYCAT-;eval;SLS;1|) + (LETT #5# |l| |POLYCAT-;eval;SLS;1|) + G190 (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |q| (CAR #2#) |POLYCAT-;primitiveMonomials;SL;12|) - NIL)) + ((OR (ATOM #5#) + (PROGN (LETT |e| (CAR #5#) |POLYCAT-;eval;SLS;1|) NIL)) (GO G191))) (SEQ - (EXIT - (LETT #1# - (CONS - (|POLYCAT-;mkPrim| |q| |$|) - #1#) - |POLYCAT-;primitiveMonomials;SL;12|))) - (LETT #2# (CDR #2#) |POLYCAT-;primitiveMonomials;SL;12|) + (EXIT + (LETT #4# (CONS (SPADCALL |e| (QREFELT $ 15)) #4#) + |POLYCAT-;eval;SLS;1|))) + (LETT #5# (CDR #5#) |POLYCAT-;eval;SLS;1|) (GO G190) G191 - (EXIT (NREVERSE0 #1#)))))))) - -(DEFUN |POLYCAT-;totalDegree;SNni;13| (|p| |$|) - (PROG (#1=#:G101934 |d| |u|) - (RETURN - (SEQ - (COND - ((SPADCALL |p| (QREFELT |$| 62)) 0) - ((QUOTE T) - (SEQ - (LETT |u| - (SPADCALL |p| - (PROG2 - (LETT #1# - (SPADCALL |p| (QREFELT |$| 42)) - |POLYCAT-;totalDegree;SNni;13|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) (QREFELT |$| 9) #1#)) - (QREFELT |$| 47)) - |POLYCAT-;totalDegree;SNni;13|) - (LETT |d| 0 |POLYCAT-;totalDegree;SNni;13|) - (SEQ G190 - (COND - ((NULL - (COND - ((SPADCALL |u| (|spadConstant| |$| 63) (QREFELT |$| 64)) - (QUOTE NIL)) - ((QUOTE T) (QUOTE T)))) (GO G191))) - (SEQ - (LETT |d| - (MAX |d| - (|+| - (SPADCALL |u| (QREFELT |$| 65)) - (SPADCALL - (SPADCALL |u| (QREFELT |$| 66)) - (QREFELT |$| 67)))) - |POLYCAT-;totalDegree;SNni;13|) - (EXIT - (LETT |u| - (SPADCALL |u| (QREFELT |$| 68)) - |POLYCAT-;totalDegree;SNni;13|))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (EXIT |d|)))))))) - -(DEFUN |POLYCAT-;totalDegree;SLNni;14| (|p| |lv| |$|) - (PROG (#1=#:G101942 |v| |w| |d| |u|) - (RETURN - (SEQ - (COND - ((SPADCALL |p| (QREFELT |$| 62)) 0) - ((QUOTE T) - (SEQ - (LETT |u| - (SPADCALL |p| - (LETT |v| - (PROG2 - (LETT #1# - (SPADCALL |p| (QREFELT |$| 42)) - |POLYCAT-;totalDegree;SLNni;14|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) (QREFELT |$| 9) #1#)) - |POLYCAT-;totalDegree;SLNni;14|) - (QREFELT |$| 47)) - |POLYCAT-;totalDegree;SLNni;14|) - (LETT |d| 0 |POLYCAT-;totalDegree;SLNni;14|) - (LETT |w| 0 |POLYCAT-;totalDegree;SLNni;14|) - (COND - ((SPADCALL |v| |lv| (QREFELT |$| 70)) - (LETT |w| 1 |POLYCAT-;totalDegree;SLNni;14|))) - (SEQ G190 - (COND - ((NULL - (COND - ((SPADCALL |u| (|spadConstant| |$| 63) (QREFELT |$| 64)) - (QUOTE NIL)) - ((QUOTE T) (QUOTE T)))) - (GO G191))) - (SEQ - (LETT |d| - (MAX |d| - (|+| - (|*| |w| (SPADCALL |u| (QREFELT |$| 65))) - (SPADCALL - (SPADCALL |u| (QREFELT |$| 66)) - |lv| - (QREFELT |$| 71)))) - |POLYCAT-;totalDegree;SLNni;14|) - (EXIT - (LETT |u| - (SPADCALL |u| (QREFELT |$| 68)) - |POLYCAT-;totalDegree;SLNni;14|))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (EXIT |d|)))))))) - -(DEFUN |POLYCAT-;resultant;2SVarSetS;15| (|p1| |p2| |mvar| |$|) - (SPADCALL - (SPADCALL |p1| |mvar| (QREFELT |$| 47)) - (SPADCALL |p2| |mvar| (QREFELT |$| 47)) - (QREFELT |$| 73))) - -(DEFUN |POLYCAT-;discriminant;SVarSetS;16| (|p| |var| |$|) - (SPADCALL (SPADCALL |p| |var| (QREFELT |$| 47)) (QREFELT |$| 75))) - -(DEFUN |POLYCAT-;allMonoms| (|l| |$|) - (PROG (#1=#:G101954 |p| #2=#:G101955) - (RETURN - (SEQ - (SPADCALL - (SPADCALL - (PROGN - (LETT #1# NIL |POLYCAT-;allMonoms|) - (SEQ - (LETT |p| NIL |POLYCAT-;allMonoms|) - (LETT #2# |l| |POLYCAT-;allMonoms|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN (LETT |p| (CAR #2#) |POLYCAT-;allMonoms|) NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS (SPADCALL |p| (QREFELT |$| 77)) #1#) - |POLYCAT-;allMonoms|))) - (LETT #2# (CDR #2#) |POLYCAT-;allMonoms|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - (QREFELT |$| 79)) - (QREFELT |$| 80)))))) - -(DEFUN |POLYCAT-;P2R| (|p| |b| |n| |$|) - (PROG (|w| |bj| #1=#:G101960 |i| #2=#:G101959) - (RETURN + (EXIT (NREVERSE0 #4#)))) + (QREFELT $ 18)))))))))) + +(DEFUN |POLYCAT-;monomials;SL;2| (|p| $) + (PROG (|ml|) + (RETURN + (SEQ + (LETT |ml| NIL |POLYCAT-;monomials;SL;2|) + (SEQ G190 + (COND + ((NULL + (COND + ((SPADCALL |p| (|spadConstant| $ 21) (QREFELT $ 24)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |ml| + (CONS (SPADCALL |p| (QREFELT $ 25)) |ml|) + |POLYCAT-;monomials;SL;2|) + (EXIT + (LETT |p| (SPADCALL |p| (QREFELT $ 26)) |POLYCAT-;monomials;SL;2|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT (REVERSE |ml|)))))) + +(DEFUN |POLYCAT-;isPlus;SU;3| (|p| $) + (PROG (|l|) + (RETURN + (COND + ((NULL + (CDR (LETT |l| (SPADCALL |p| (QREFELT $ 28)) |POLYCAT-;isPlus;SU;3|))) + (CONS 1 "failed")) + ((QUOTE T) (CONS 0 |l|)))))) + +(DEFUN |POLYCAT-;isTimes;SU;4| (|p| $) + (PROG (|lv| #0=#:G1470 |v| #1=#:G1471 |l| |r|) + (RETURN + (SEQ + (COND + ((OR (NULL + (LETT |lv| (SPADCALL |p| (QREFELT $ 31)) |POLYCAT-;isTimes;SU;4|)) + (NULL (SPADCALL |p| (QREFELT $ 32)))) + (CONS 1 "failed")) + ((QUOTE T) + (SEQ + (LETT |l| + (PROGN + (LETT #0# NIL |POLYCAT-;isTimes;SU;4|) + (SEQ + (LETT |v| NIL |POLYCAT-;isTimes;SU;4|) + (LETT #1# |lv| |POLYCAT-;isTimes;SU;4|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN (LETT |v| (CAR #1#) |POLYCAT-;isTimes;SU;4|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #0# + (CONS + (SPADCALL (|spadConstant| $ 33) |v| + (SPADCALL |p| |v| (QREFELT $ 36)) (QREFELT $ 37)) + #0#) + |POLYCAT-;isTimes;SU;4|))) + (LETT #1# (CDR #1#) |POLYCAT-;isTimes;SU;4|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))) + |POLYCAT-;isTimes;SU;4|) + (LETT |r| (SPADCALL |p| (QREFELT $ 38)) |POLYCAT-;isTimes;SU;4|) + (EXIT + (COND + ((SPADCALL |r| (|spadConstant| $ 34) (QREFELT $ 39)) + (COND + ((NULL (CDR |lv|)) (CONS 1 "failed")) + ((QUOTE T) (CONS 0 |l|)))) + ((QUOTE T) + (CONS 0 (CONS (SPADCALL |r| (QREFELT $ 40)) |l|)))))))))))) + +(DEFUN |POLYCAT-;isExpt;SU;5| (|p| $) + (PROG (|u| |d|) + (RETURN + (SEQ + (LETT |u| (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;isExpt;SU;5|) + (EXIT + (COND + ((OR (QEQCAR |u| 1) + (NULL + (SPADCALL |p| + (SPADCALL (|spadConstant| $ 33) + (QCDR |u|) + (LETT |d| (SPADCALL |p| (QCDR |u|) (QREFELT $ 36)) + |POLYCAT-;isExpt;SU;5|) + (QREFELT $ 37)) + (QREFELT $ 24)))) + (CONS 1 "failed")) + ((QUOTE T) (CONS 0 (CONS (QCDR |u|) |d|))))))))) + +(DEFUN |POLYCAT-;coefficient;SVarSetNniS;6| (|p| |v| |n| $) + (SPADCALL (SPADCALL |p| |v| (QREFELT $ 47)) |n| (QREFELT $ 49))) + +(DEFUN |POLYCAT-;coefficient;SLLS;7| (|p| |lv| |ln| $) + (COND + ((NULL |lv|) + (COND + ((NULL |ln|) |p|) + ((QUOTE T) (|error| "mismatched lists in coefficient")))) + ((NULL |ln|) (|error| "mismatched lists in coefficient")) + ((QUOTE T) + (SPADCALL + (SPADCALL + (SPADCALL |p| (|SPADfirst| |lv|) (QREFELT $ 47)) + (|SPADfirst| |ln|) + (QREFELT $ 49)) + (CDR |lv|) + (CDR |ln|) + (QREFELT $ 52))))) + +(DEFUN |POLYCAT-;monomial;SLLS;8| (|p| |lv| |ln| $) + (COND + ((NULL |lv|) + (COND + ((NULL |ln|) |p|) + ((QUOTE T) (|error| "mismatched lists in monomial")))) + ((NULL |ln|) (|error| "mismatched lists in monomial")) + ((QUOTE T) + (SPADCALL + (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |ln|) (QREFELT $ 37)) + (CDR |lv|) + (CDR |ln|) + (QREFELT $ 54))))) + +(DEFUN |POLYCAT-;retract;SVarSet;9| (|p| $) + (PROG (#0=#:G1496 |q|) + (RETURN + (SEQ + (LETT |q| + (PROG2 + (LETT #0# (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;retract;SVarSet;9|) + (QCDR #0#) + (|check-union| (QEQCAR #0# 0) (QREFELT $ 9) #0#)) + |POLYCAT-;retract;SVarSet;9|) + (EXIT + (COND + ((SPADCALL (SPADCALL |q| (QREFELT $ 56)) |p| (QREFELT $ 24)) |q|) + ((QUOTE T) (|error| "Polynomial is not a single variable")))))))) + +(DEFUN |POLYCAT-;retractIfCan;SU;10| (|p| $) + (PROG (|q| #0=#:G1504) + (RETURN + (SEQ + (EXIT + (SEQ + (SEQ + (LETT |q| (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;retractIfCan;SU;10|) + (EXIT + (COND + ((QEQCAR |q| 0) + (COND + ((SPADCALL (SPADCALL (QCDR |q|) (QREFELT $ 56)) |p| (QREFELT $ 24)) + (PROGN + (LETT #0# |q| |POLYCAT-;retractIfCan;SU;10|) + (GO #0#)))))))) + (EXIT (CONS 1 "failed")))) + #0# + (EXIT #0#))))) + +(DEFUN |POLYCAT-;mkPrim| (|p| $) + (SPADCALL + (|spadConstant| $ 34) + (SPADCALL |p| (QREFELT $ 59)) + (QREFELT $ 60))) + +(DEFUN |POLYCAT-;primitiveMonomials;SL;12| (|p| $) + (PROG (#0=#:G1509 |q| #1=#:G1510) + (RETURN + (SEQ + (PROGN + (LETT #0# NIL |POLYCAT-;primitiveMonomials;SL;12|) + (SEQ + (LETT |q| NIL |POLYCAT-;primitiveMonomials;SL;12|) + (LETT #1# (SPADCALL |p| (QREFELT $ 28)) |POLYCAT-;primitiveMonomials;SL;12|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN + (LETT |q| (CAR #1#) |POLYCAT-;primitiveMonomials;SL;12|) + NIL)) + (GO G191))) (SEQ - (LETT |w| - (SPADCALL |n| (|spadConstant| |$| 22) (QREFELT |$| 82)) - |POLYCAT-;P2R|) + (EXIT + (LETT #0# (CONS (|POLYCAT-;mkPrim| |q| $) #0#) + |POLYCAT-;primitiveMonomials;SL;12|))) + (LETT #1# (CDR #1#) |POLYCAT-;primitiveMonomials;SL;12|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))))))) + +(DEFUN |POLYCAT-;totalDegree;SNni;13| (|p| $) + (PROG (#0=#:G1512 |d| |u|) + (RETURN + (SEQ + (COND + ((SPADCALL |p| (QREFELT $ 62)) 0) + ((QUOTE T) + (SEQ + (LETT |u| + (SPADCALL |p| + (PROG2 + (LETT #0# + (SPADCALL |p| (QREFELT $ 42)) + |POLYCAT-;totalDegree;SNni;13|) + (QCDR #0#) + (|check-union| (QEQCAR #0# 0) (QREFELT $ 9) #0#)) + (QREFELT $ 47)) + |POLYCAT-;totalDegree;SNni;13|) + (LETT |d| 0 |POLYCAT-;totalDegree;SNni;13|) + (SEQ G190 + (COND + ((NULL + (COND + ((SPADCALL |u| (|spadConstant| $ 63) (QREFELT $ 64)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) (GO G191))) + (SEQ + (LETT |d| + (MAX |d| + (+ + (SPADCALL |u| (QREFELT $ 65)) + (SPADCALL (SPADCALL |u| (QREFELT $ 66)) (QREFELT $ 67)))) + |POLYCAT-;totalDegree;SNni;13|) + (EXIT + (LETT |u| + (SPADCALL |u| (QREFELT $ 68)) |POLYCAT-;totalDegree;SNni;13|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |d|)))))))) + +(DEFUN |POLYCAT-;totalDegree;SLNni;14| (|p| |lv| $) + (PROG (#0=#:G1520 |v| |w| |d| |u|) + (RETURN + (SEQ + (COND + ((SPADCALL |p| (QREFELT $ 62)) 0) + ((QUOTE T) + (SEQ + (LETT |u| + (SPADCALL |p| + (LETT |v| + (PROG2 + (LETT #0# + (SPADCALL |p| (QREFELT $ 42)) + |POLYCAT-;totalDegree;SLNni;14|) + (QCDR #0#) + (|check-union| (QEQCAR #0# 0) (QREFELT $ 9) #0#)) + |POLYCAT-;totalDegree;SLNni;14|) + (QREFELT $ 47)) + |POLYCAT-;totalDegree;SLNni;14|) + (LETT |d| 0 |POLYCAT-;totalDegree;SLNni;14|) + (LETT |w| 0 |POLYCAT-;totalDegree;SLNni;14|) + (COND + ((SPADCALL |v| |lv| (QREFELT $ 70)) + (LETT |w| 1 |POLYCAT-;totalDegree;SLNni;14|))) + (SEQ G190 + (COND + ((NULL + (COND + ((SPADCALL |u| (|spadConstant| $ 63) (QREFELT $ 64)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) (GO G191))) + (SEQ + (LETT |d| + (MAX |d| + (+ + (* |w| (SPADCALL |u| (QREFELT $ 65))) + (SPADCALL (SPADCALL |u| (QREFELT $ 66)) |lv| (QREFELT $ 71)))) + |POLYCAT-;totalDegree;SLNni;14|) + (EXIT + (LETT |u| + (SPADCALL |u| (QREFELT $ 68)) + |POLYCAT-;totalDegree;SLNni;14|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |d|)))))))) + +(DEFUN |POLYCAT-;resultant;2SVarSetS;15| (|p1| |p2| |mvar| $) + (SPADCALL + (SPADCALL |p1| |mvar| (QREFELT $ 47)) + (SPADCALL |p2| |mvar| (QREFELT $ 47)) + (QREFELT $ 73))) + +(DEFUN |POLYCAT-;discriminant;SVarSetS;16| (|p| |var| $) + (SPADCALL (SPADCALL |p| |var| (QREFELT $ 47)) (QREFELT $ 75))) + +(DEFUN |POLYCAT-;allMonoms| (|l| $) + (PROG (#0=#:G1532 |p| #1=#:G1533) + (RETURN + (SEQ + (SPADCALL + (SPADCALL + (PROGN + (LETT #0# NIL |POLYCAT-;allMonoms|) + (SEQ + (LETT |p| NIL |POLYCAT-;allMonoms|) + (LETT #1# |l| |POLYCAT-;allMonoms|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |p| (CAR #1#) |POLYCAT-;allMonoms|) NIL)) + (GO G191))) (SEQ - (LETT |bj| NIL |POLYCAT-;P2R|) - (LETT #1# |b| |POLYCAT-;P2R|) - (LETT |i| (SPADCALL |w| (QREFELT |$| 84)) |POLYCAT-;P2R|) - (LETT #2# (QVSIZE |w|) |POLYCAT-;P2R|) + (EXIT + (LETT #0# + (CONS (SPADCALL |p| (QREFELT $ 77)) #0#) + |POLYCAT-;allMonoms|))) + (LETT #1# (CDR #1#) |POLYCAT-;allMonoms|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))) + (QREFELT $ 79)) + (QREFELT $ 80)))))) + +(DEFUN |POLYCAT-;P2R| (|p| |b| |n| $) + (PROG (|w| |bj| #0=#:G1538 |i| #1=#:G1537) + (RETURN + (SEQ + (LETT |w| + (SPADCALL |n| (|spadConstant| $ 22) (QREFELT $ 82)) + |POLYCAT-;P2R|) + (SEQ + (LETT |bj| NIL |POLYCAT-;P2R|) + (LETT #0# |b| |POLYCAT-;P2R|) + (LETT |i| (SPADCALL |w| (QREFELT $ 84)) |POLYCAT-;P2R|) + (LETT #1# (QVSIZE |w|) |POLYCAT-;P2R|) + G190 + (COND + ((OR (> |i| #1#) + (ATOM #0#) + (PROGN (LETT |bj| (CAR #0#) |POLYCAT-;P2R|) NIL)) + (GO G191))) + (SEQ + (EXIT + (SPADCALL |w| |i| (SPADCALL |p| |bj| (QREFELT $ 85)) (QREFELT $ 86)))) + (LETT |i| + (PROG1 (+ |i| 1) (LETT #0# (CDR #0#) |POLYCAT-;P2R|)) |POLYCAT-;P2R|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT |w|))))) + +(DEFUN |POLYCAT-;eq2R| (|l| |b| $) + (PROG (#0=#:G1542 |bj| #1=#:G1543 #2=#:G1544 |p| #3=#:G1545) + (RETURN + (SEQ + (SPADCALL + (PROGN + (LETT #0# NIL |POLYCAT-;eq2R|) + (SEQ + (LETT |bj| NIL |POLYCAT-;eq2R|) + (LETT #1# |b| |POLYCAT-;eq2R|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN (LETT |bj| (CAR #1#) |POLYCAT-;eq2R|) NIL)) (GO G191))) + (SEQ + (EXIT + (LETT #0# + (CONS + (PROGN + (LETT #2# NIL |POLYCAT-;eq2R|) + (SEQ + (LETT |p| NIL |POLYCAT-;eq2R|) + (LETT #3# |l| |POLYCAT-;eq2R|) + G190 + (COND + ((OR (ATOM #3#) (PROGN (LETT |p| (CAR #3#) |POLYCAT-;eq2R|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #2# + (CONS (SPADCALL |p| |bj| (QREFELT $ 85)) #2#) + |POLYCAT-;eq2R|))) + (LETT #3# (CDR #3#) |POLYCAT-;eq2R|) + (GO G190) + G191 + (EXIT (NREVERSE0 #2#)))) + #0#) + |POLYCAT-;eq2R|))) + (LETT #1# (CDR #1#) |POLYCAT-;eq2R|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))) + (QREFELT $ 89)))))) + +(DEFUN |POLYCAT-;reducedSystem;MM;20| (|m| $) + (PROG (#0=#:G1555 |r| #1=#:G1556 |b| #2=#:G1557 |bj| #3=#:G1558 |d| |mm| |l|) + (RETURN + (SEQ + (LETT |l| (SPADCALL |m| (QREFELT $ 92)) |POLYCAT-;reducedSystem;MM;20|) + (LETT |b| + (SPADCALL + (SPADCALL + (PROGN + (LETT #0# NIL |POLYCAT-;reducedSystem;MM;20|) + (SEQ + (LETT |r| NIL |POLYCAT-;reducedSystem;MM;20|) + (LETT #1# |l| |POLYCAT-;reducedSystem;MM;20|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN (LETT |r| (CAR #1#) |POLYCAT-;reducedSystem;MM;20|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #0# + (CONS (|POLYCAT-;allMonoms| |r| $) #0#) + |POLYCAT-;reducedSystem;MM;20|))) + (LETT #1# (CDR #1#) |POLYCAT-;reducedSystem;MM;20|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))) + (QREFELT $ 79)) + (QREFELT $ 80)) + |POLYCAT-;reducedSystem;MM;20|) + (LETT |d| + (PROGN + (LETT #2# NIL |POLYCAT-;reducedSystem;MM;20|) + (SEQ + (LETT |bj| NIL |POLYCAT-;reducedSystem;MM;20|) + (LETT #3# |b| |POLYCAT-;reducedSystem;MM;20|) + G190 + (COND + ((OR (ATOM #3#) + (PROGN (LETT |bj| (CAR #3#) |POLYCAT-;reducedSystem;MM;20|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #2# + (CONS (SPADCALL |bj| (QREFELT $ 59)) #2#) + |POLYCAT-;reducedSystem;MM;20|))) + (LETT #3# (CDR #3#) |POLYCAT-;reducedSystem;MM;20|) + (GO G190) + G191 + (EXIT (NREVERSE0 #2#)))) + |POLYCAT-;reducedSystem;MM;20|) + (LETT |mm| + (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) |POLYCAT-;reducedSystem;MM;20|) + (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MM;20|) + (SEQ G190 + (COND + ((NULL (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) + (SEQ + (LETT |mm| + (SPADCALL |mm| (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) (QREFELT $ 93)) + |POLYCAT-;reducedSystem;MM;20|) + (EXIT (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MM;20|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |mm|))))) + +(DEFUN |POLYCAT-;reducedSystem;MVR;21| (|m| |v| $) + (PROG (#0=#:G1570 |s| #1=#:G1571 |b| #2=#:G1572 |bj| #3=#:G1573 |d| |n| + |mm| |w| |l| |r|) + (RETURN + (SEQ + (LETT |l| (SPADCALL |m| (QREFELT $ 92)) |POLYCAT-;reducedSystem;MVR;21|) + (LETT |r| (SPADCALL |v| (QREFELT $ 97)) |POLYCAT-;reducedSystem;MVR;21|) + (LETT |b| + (SPADCALL + (SPADCALL + (|POLYCAT-;allMonoms| |r| $) + (SPADCALL + (PROGN + (LETT #0# NIL |POLYCAT-;reducedSystem;MVR;21|) + (SEQ + (LETT |s| NIL |POLYCAT-;reducedSystem;MVR;21|) + (LETT #1# |l| |POLYCAT-;reducedSystem;MVR;21|) G190 - (COND - ((OR - (|>| |i| #2#) - (ATOM #1#) - (PROGN (LETT |bj| (CAR #1#) |POLYCAT-;P2R|) NIL)) - (GO G191))) + (COND + ((OR (ATOM #1#) + (PROGN + (LETT |s| (CAR #1#) |POLYCAT-;reducedSystem;MVR;21|) + NIL)) + (GO G191))) (SEQ - (EXIT - (SPADCALL |w| |i| - (SPADCALL |p| |bj| (QREFELT |$| 85)) - (QREFELT |$| 86)))) - (LETT |i| - (PROG1 - (|+| |i| 1) - (LETT #1# (CDR #1#) |POLYCAT-;P2R|)) - |POLYCAT-;P2R|) + (EXIT + (LETT #0# + (CONS (|POLYCAT-;allMonoms| |s| $) #0#) + |POLYCAT-;reducedSystem;MVR;21|))) + (LETT #1# (CDR #1#) |POLYCAT-;reducedSystem;MVR;21|) (GO G190) G191 - (EXIT NIL)) - (EXIT |w|))))) - -(DEFUN |POLYCAT-;eq2R| (|l| |b| |$|) - (PROG (#1=#:G101964 |bj| #2=#:G101965 #3=#:G101966 |p| #4=#:G101967) - (RETURN - (SEQ - (SPADCALL + (EXIT (NREVERSE0 #0#)))) + (QREFELT $ 79)) + (QREFELT $ 98)) + (QREFELT $ 80)) + |POLYCAT-;reducedSystem;MVR;21|) + (LETT |d| + (PROGN + (LETT #2# NIL |POLYCAT-;reducedSystem;MVR;21|) + (SEQ + (LETT |bj| NIL |POLYCAT-;reducedSystem;MVR;21|) + (LETT #3# |b| |POLYCAT-;reducedSystem;MVR;21|) + G190 + (COND + ((OR (ATOM #3#) + (PROGN (LETT |bj| (CAR #3#) |POLYCAT-;reducedSystem;MVR;21|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #2# + (CONS (SPADCALL |bj| (QREFELT $ 59)) #2#) + |POLYCAT-;reducedSystem;MVR;21|))) + (LETT #3# (CDR #3#) |POLYCAT-;reducedSystem;MVR;21|) + (GO G190) + G191 + (EXIT (NREVERSE0 #2#)))) + |POLYCAT-;reducedSystem;MVR;21|) + (LETT |n| (LENGTH |d|) |POLYCAT-;reducedSystem;MVR;21|) + (LETT |mm| + (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) + |POLYCAT-;reducedSystem;MVR;21|) + (LETT |w| + (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| $) + |POLYCAT-;reducedSystem;MVR;21|) + (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MVR;21|) + (LETT |r| (CDR |r|) |POLYCAT-;reducedSystem;MVR;21|) + (SEQ G190 + (COND + ((NULL (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |mm| + (SPADCALL |mm| (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) (QREFELT $ 93)) + |POLYCAT-;reducedSystem;MVR;21|) + (LETT |w| + (SPADCALL |w| + (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| $) + (QREFELT $ 99)) + |POLYCAT-;reducedSystem;MVR;21|) + (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MVR;21|) + (EXIT (LETT |r| (CDR |r|) |POLYCAT-;reducedSystem;MVR;21|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT (CONS |mm| |w|)))))) + +(DEFUN |POLYCAT-;gcdPolynomial;3Sup;22| (|pp| |qq| $) + (SPADCALL |pp| |qq| (QREFELT $ 104))) + +(DEFUN |POLYCAT-;solveLinearPolynomialEquation;LSupU;23| (|lpp| |pp| $) + (SPADCALL |lpp| |pp| (QREFELT $ 109))) + +(DEFUN |POLYCAT-;factorPolynomial;SupF;24| (|pp| $) + (SPADCALL |pp| (QREFELT $ 114))) + +(DEFUN |POLYCAT-;factorSquareFreePolynomial;SupF;25| (|pp| $) + (SPADCALL |pp| (QREFELT $ 117))) + +(DEFUN |POLYCAT-;factor;SF;26| (|p| $) + (PROG (|v| |ansR| #0=#:G1615 |w| #1=#:G1616 |up| |ansSUP| #2=#:G1617 + |ww| #3=#:G1618) + (RETURN + (SEQ + (LETT |v| (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;factor;SF;26|) + (EXIT + (COND + ((QEQCAR |v| 1) + (SEQ + (LETT |ansR| + (SPADCALL (SPADCALL |p| (QREFELT $ 38)) (QREFELT $ 120)) + |POLYCAT-;factor;SF;26|) + (EXIT + (SPADCALL + (SPADCALL (SPADCALL |ansR| (QREFELT $ 122)) (QREFELT $ 40)) (PROGN - (LETT #1# NIL |POLYCAT-;eq2R|) + (LETT #0# NIL |POLYCAT-;factor;SF;26|) + (SEQ + (LETT |w| NIL |POLYCAT-;factor;SF;26|) + (LETT #1# + (SPADCALL |ansR| (QREFELT $ 126)) + |POLYCAT-;factor;SF;26|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN (LETT |w| (CAR #1#) |POLYCAT-;factor;SF;26|) NIL)) + (GO G191))) (SEQ - (LETT |bj| NIL |POLYCAT-;eq2R|) - (LETT #2# |b| |POLYCAT-;eq2R|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN (LETT |bj| (CAR #2#) |POLYCAT-;eq2R|) NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS - (PROGN - (LETT #3# NIL |POLYCAT-;eq2R|) - (SEQ - (LETT |p| NIL |POLYCAT-;eq2R|) - (LETT #4# |l| |POLYCAT-;eq2R|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |p| (CAR #4#) |POLYCAT-;eq2R|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #3# - (CONS (SPADCALL |p| |bj| (QREFELT |$| 85)) #3#) - |POLYCAT-;eq2R|))) - (LETT #4# (CDR #4#) |POLYCAT-;eq2R|) - (GO G190) - G191 - (EXIT (NREVERSE0 #3#)))) - #1#) - |POLYCAT-;eq2R|))) - (LETT #2# (CDR #2#) |POLYCAT-;eq2R|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - (QREFELT |$| 89)))))) - -(DEFUN |POLYCAT-;reducedSystem;MM;20| (|m| |$|) - (PROG (#1=#:G101979 |r| #2=#:G101980 |b| #3=#:G101977 - |bj| #4=#:G101978 |d| |mm| |l|) - (RETURN - (SEQ - (LETT |l| - (SPADCALL |m| (QREFELT |$| 92)) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |b| + (EXIT + (LETT #0# + (CONS + (VECTOR (QVELT |w| 0) + (SPADCALL (QVELT |w| 1) (QREFELT $ 40)) (QVELT |w| 2)) + #0#) + |POLYCAT-;factor;SF;26|))) + (LETT #1# (CDR #1#) |POLYCAT-;factor;SF;26|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))) + (QREFELT $ 130))))) + ((QUOTE T) + (SEQ + (LETT |up| + (SPADCALL |p| (QCDR |v|) (QREFELT $ 47)) |POLYCAT-;factor;SF;26|) + (LETT |ansSUP| (SPADCALL |up| (QREFELT $ 114)) |POLYCAT-;factor;SF;26|) + (EXIT + (SPADCALL (SPADCALL - (SPADCALL - (PROGN - (LETT #1# NIL |POLYCAT-;reducedSystem;MM;20|) - (SEQ - (LETT |r| NIL |POLYCAT-;reducedSystem;MM;20|) - (LETT #2# |l| |POLYCAT-;reducedSystem;MM;20|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |r| (CAR #2#) |POLYCAT-;reducedSystem;MM;20|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS (|POLYCAT-;allMonoms| |r| |$|) #1#) - |POLYCAT-;reducedSystem;MM;20|))) - (LETT #2# (CDR #2#) |POLYCAT-;reducedSystem;MM;20|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - (QREFELT |$| 79)) - (QREFELT |$| 80)) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |d| + (SPADCALL |ansSUP| (QREFELT $ 131)) (QCDR |v|) (QREFELT $ 132)) (PROGN - (LETT #3# NIL |POLYCAT-;reducedSystem;MM;20|) + (LETT #2# NIL |POLYCAT-;factor;SF;26|) + (SEQ + (LETT |ww| NIL |POLYCAT-;factor;SF;26|) + (LETT #3# + (SPADCALL |ansSUP| (QREFELT $ 135)) + |POLYCAT-;factor;SF;26|) + G190 + (COND + ((OR (ATOM #3#) + (PROGN (LETT |ww| (CAR #3#) |POLYCAT-;factor;SF;26|) NIL)) + (GO G191))) (SEQ - (LETT |bj| NIL |POLYCAT-;reducedSystem;MM;20|) - (LETT #4# |b| |POLYCAT-;reducedSystem;MM;20|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |bj| (CAR #4#) |POLYCAT-;reducedSystem;MM;20|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #3# - (CONS (SPADCALL |bj| (QREFELT |$| 59)) #3#) - |POLYCAT-;reducedSystem;MM;20|))) - (LETT #4# (CDR #4#) |POLYCAT-;reducedSystem;MM;20|) - (GO G190) - G191 - (EXIT (NREVERSE0 #3#)))) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |mm| - (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| |$|) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MM;20|) - (SEQ G190 - (COND - ((NULL (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) + (EXIT + (LETT #2# + (CONS + (VECTOR (QVELT |ww| 0) (SPADCALL (QVELT |ww| 1) (QCDR |v|) + (QREFELT $ 132)) (QVELT |ww| 2)) + #2#) + |POLYCAT-;factor;SF;26|))) + (LETT #3# (CDR #3#) |POLYCAT-;factor;SF;26|) + (GO G190) + G191 + (EXIT (NREVERSE0 #2#)))) + (QREFELT $ 130))))))))))) + +(DEFUN |POLYCAT-;conditionP;MU;27| (|mat| $) + (PROG (|ll| #0=#:G1653 |z| #1=#:G1654 |ch| |l| #2=#:G1655 #3=#:G1656 + #4=#:G1625 #5=#:G1623 #6=#:G1624 #7=#:G1657 |vars| |degs| + #8=#:G1658 |d| #9=#:G1659 |nd| #10=#:G1652 #11=#:G1632 |deg1| + |redmons| #12=#:G1660 |v| #13=#:G1662 |u| #14=#:G1661 |llR| + |monslist| |ans| #15=#:G1663 #16=#:G1664 |mons| #17=#:G1665 |m| + #18=#:G1666 |i| #19=#:G1648 #20=#:G1646 #21=#:G1647) + (RETURN + (SEQ + (EXIT + (SEQ + (LETT |ll| + (SPADCALL (SPADCALL |mat| (QREFELT $ 137)) (QREFELT $ 92)) + |POLYCAT-;conditionP;MU;27|) + (LETT |llR| + (PROGN + (LETT #0# NIL |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |z| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #1# (|SPADfirst| |ll|) |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #1#) + (PROGN (LETT |z| (CAR #1#) |POLYCAT-;conditionP;MU;27|) NIL)) + (GO G191))) + (SEQ (EXIT (LETT #0# (CONS NIL #0#) |POLYCAT-;conditionP;MU;27|))) + (LETT #1# (CDR #1#) |POLYCAT-;conditionP;MU;27|) + (GO G190) + G191 + (EXIT (NREVERSE0 #0#)))) + |POLYCAT-;conditionP;MU;27|) + (LETT |monslist| NIL |POLYCAT-;conditionP;MU;27|) + (LETT |ch| (SPADCALL (QREFELT $ 138)) |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |l| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #2# |ll| |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #2#) + (PROGN (LETT |l| (CAR #2#) |POLYCAT-;conditionP;MU;27|) NIL)) + (GO G191))) + (SEQ + (LETT |mons| + (PROGN + (LETT #6# NIL |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |u| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #3# |l| |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #3#) + (PROGN (LETT |u| (CAR #3#) |POLYCAT-;conditionP;MU;27|) NIL)) (GO G191))) - (SEQ - (LETT |mm| - (SPADCALL |mm| - (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| |$|) (QREFELT |$| 93)) - |POLYCAT-;reducedSystem;MM;20|) - (EXIT (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MM;20|))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (EXIT |mm|))))) - -(DEFUN |POLYCAT-;reducedSystem;MVR;21| (|m| |v| |$|) - (PROG (#1=#:G101994 |s| #2=#:G101995 |b| #3=#:G101992 |bj| #4=#:G101993 - |d| |n| |mm| |w| |l| |r|) - (RETURN - (SEQ - (LETT |l| (SPADCALL |m| (QREFELT |$| 92)) |POLYCAT-;reducedSystem;MVR;21|) - (LETT |r| (SPADCALL |v| (QREFELT |$| 97)) |POLYCAT-;reducedSystem;MVR;21|) - (LETT |b| - (SPADCALL - (SPADCALL - (|POLYCAT-;allMonoms| |r| |$|) - (SPADCALL + (SEQ + (EXIT + (PROGN + (LETT #4# + (SPADCALL |u| (QREFELT $ 77)) + |POLYCAT-;conditionP;MU;27|) + (COND + (#6# + (LETT #5# + (SPADCALL #5# #4# (QREFELT $ 139)) + |POLYCAT-;conditionP;MU;27|)) + ((QUOTE T) (PROGN - (LETT #1# NIL |POLYCAT-;reducedSystem;MVR;21|) - (SEQ - (LETT |s| NIL |POLYCAT-;reducedSystem;MVR;21|) - (LETT #2# |l| |POLYCAT-;reducedSystem;MVR;21|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |s| (CAR #2#) |POLYCAT-;reducedSystem;MVR;21|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS (|POLYCAT-;allMonoms| |s| |$|) #1#) - |POLYCAT-;reducedSystem;MVR;21|))) - (LETT #2# (CDR #2#) |POLYCAT-;reducedSystem;MVR;21|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - (QREFELT |$| 79)) - (QREFELT |$| 98)) - (QREFELT |$| 80)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |d| - (PROGN - (LETT #3# NIL |POLYCAT-;reducedSystem;MVR;21|) - (SEQ - (LETT |bj| NIL |POLYCAT-;reducedSystem;MVR;21|) - (LETT #4# |b| |POLYCAT-;reducedSystem;MVR;21|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |bj| (CAR #4#) |POLYCAT-;reducedSystem;MVR;21|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #3# - (CONS (SPADCALL |bj| (QREFELT |$| 59)) #3#) - |POLYCAT-;reducedSystem;MVR;21|))) - (LETT #4# (CDR #4#) |POLYCAT-;reducedSystem;MVR;21|) - (GO G190) - G191 - (EXIT (NREVERSE0 #3#)))) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |n| (LENGTH |d|) |POLYCAT-;reducedSystem;MVR;21|) - (LETT |mm| - (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| |$|) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |w| - (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| |$|) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MVR;21|) - (LETT |r| (CDR |r|) |POLYCAT-;reducedSystem;MVR;21|) - (SEQ G190 - (COND - ((NULL (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) - (GO G191))) - (SEQ - (LETT |mm| - (SPADCALL |mm| - (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| |$|) - (QREFELT |$| 93)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |w| - (SPADCALL |w| - (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| |$|) - (QREFELT |$| 99)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MVR;21|) - (EXIT (LETT |r| (CDR |r|) |POLYCAT-;reducedSystem;MVR;21|))) - NIL + (LETT #5# #4# |POLYCAT-;conditionP;MU;27|) + (LETT #6# (QUOTE T) |POLYCAT-;conditionP;MU;27|))))))) + (LETT #3# (CDR #3#) |POLYCAT-;conditionP;MU;27|) (GO G190) G191 (EXIT NIL)) - (EXIT (CONS |mm| |w|)))))) - -(DEFUN |POLYCAT-;gcdPolynomial;3Sup;22| (|pp| |qq| |$|) - (SPADCALL |pp| |qq| (QREFELT |$| 104))) - -(DEFUN |POLYCAT-;solveLinearPolynomialEquation;LSupU;23| (|lpp| |pp| |$|) - (SPADCALL |lpp| |pp| (QREFELT |$| 109))) - -(DEFUN |POLYCAT-;factorPolynomial;SupF;24| (|pp| |$|) - (SPADCALL |pp| (QREFELT |$| 114))) - -(DEFUN |POLYCAT-;factorSquareFreePolynomial;SupF;25| (|pp| |$|) - (SPADCALL |pp| (QREFELT |$| 117))) - -(DEFUN |POLYCAT-;factor;SF;26| (|p| |$|) - (PROG (|v| |ansR| #1=#:G102039 |w| #2=#:G102040 |up| |ansSUP| - #3=#:G102037 |ww| #4=#:G102038) - (RETURN - (SEQ - (LETT |v| (SPADCALL |p| (QREFELT |$| 42)) |POLYCAT-;factor;SF;26|) - (EXIT - (COND - ((QEQCAR |v| 1) - (SEQ - (LETT |ansR| - (SPADCALL (SPADCALL |p| (QREFELT |$| 38)) (QREFELT |$| 120)) - |POLYCAT-;factor;SF;26|) - (EXIT - (SPADCALL - (SPADCALL - (SPADCALL |ansR| (QREFELT |$| 122)) - (QREFELT |$| 40)) - (PROGN - (LETT #1# NIL |POLYCAT-;factor;SF;26|) - (SEQ - (LETT |w| NIL |POLYCAT-;factor;SF;26|) - (LETT #2# - (SPADCALL |ansR| (QREFELT |$| 126)) - |POLYCAT-;factor;SF;26|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |w| (CAR #2#) |POLYCAT-;factor;SF;26|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# - (CONS - (VECTOR - (QVELT |w| 0) - (SPADCALL (QVELT |w| 1) (QREFELT |$| 40)) - (QVELT |w| 2)) - #1#) - |POLYCAT-;factor;SF;26|))) - (LETT #2# (CDR #2#) |POLYCAT-;factor;SF;26|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - (QREFELT |$| 130))))) - ((QUOTE T) - (SEQ - (LETT |up| - (SPADCALL |p| (QCDR |v|) (QREFELT |$| 47)) - |POLYCAT-;factor;SF;26|) - (LETT |ansSUP| - (SPADCALL |up| (QREFELT |$| 114)) - |POLYCAT-;factor;SF;26|) - (EXIT - (SPADCALL - (SPADCALL - (SPADCALL |ansSUP| (QREFELT |$| 131)) - (QCDR |v|) - (QREFELT |$| 132)) - (PROGN - (LETT #3# NIL |POLYCAT-;factor;SF;26|) - (SEQ - (LETT |ww| NIL |POLYCAT-;factor;SF;26|) - (LETT #4# - (SPADCALL |ansSUP| (QREFELT |$| 135)) - |POLYCAT-;factor;SF;26|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |ww| (CAR #4#) |POLYCAT-;factor;SF;26|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #3# - (CONS - (VECTOR - (QVELT |ww| 0) - (SPADCALL - (QVELT |ww| 1) - (QCDR |v|) - (QREFELT |$| 132)) - (QVELT |ww| 2)) - #3#) - |POLYCAT-;factor;SF;26|))) - (LETT #4# (CDR #4#) |POLYCAT-;factor;SF;26|) - (GO G190) - G191 - (EXIT (NREVERSE0 #3#)))) - (QREFELT |$| 130))))))))))) - -(DEFUN |POLYCAT-;conditionP;MU;27| (|mat| |$|) - (PROG (|ll| #1=#:G102087 |z| #2=#:G102088 |ch| |l| #3=#:G102079 - #4=#:G102086 #5=#:G102047 #6=#:G102045 #7=#:G102046 #8=#:G102080 - |vars| |degs| #9=#:G102084 |d| #10=#:G102085 |nd| #11=#:G102074 - #12=#:G102054 |deg1| |redmons| #13=#:G102081 |v| #14=#:G102083 |u| - #15=#:G102082 |llR| |monslist| |ans| #16=#:G102075 #17=#:G102076 - |mons| #18=#:G102077 |m| #19=#:G102078 |i| #20=#:G102070 - #21=#:G102068 #22=#:G102069) - (RETURN - (SEQ - (EXIT - (SEQ - (LETT |ll| - (SPADCALL (SPADCALL |mat| (QREFELT |$| 137)) (QREFELT |$| 92)) - |POLYCAT-;conditionP;MU;27|) - (LETT |llR| - (PROGN (LETT #1# NIL |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |z| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #2# (|SPADfirst| |ll|) |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #2#) - (PROGN - (LETT |z| (CAR #2#) |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #1# (CONS NIL #1#) |POLYCAT-;conditionP;MU;27|))) - (LETT #2# (CDR #2#) |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT (NREVERSE0 #1#)))) - |POLYCAT-;conditionP;MU;27|) - (LETT |monslist| NIL |POLYCAT-;conditionP;MU;27|) - (LETT |ch| - (SPADCALL (QREFELT |$| 138)) - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |l| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #3# |ll| |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #3#) - (PROGN - (LETT |l| (CAR #3#) |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (LETT |mons| - (PROGN - (LETT #7# NIL |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |u| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #4# |l| |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #4#) - (PROGN - (LETT |u| (CAR #4#) |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (PROGN - (LETT #5# - (SPADCALL |u| (QREFELT |$| 77)) - |POLYCAT-;conditionP;MU;27|) - (COND - (#7# - (LETT #6# - (SPADCALL #6# #5# (QREFELT |$| 139)) - |POLYCAT-;conditionP;MU;27|)) - ((QUOTE T) - (PROGN - (LETT #6# #5# |POLYCAT-;conditionP;MU;27|) - (LETT #7# - (QUOTE T) - |POLYCAT-;conditionP;MU;27|))))))) - (LETT #4# (CDR #4#) |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT NIL)) - (COND - (#7# #6#) - ((QUOTE T) (|IdentityError| (QUOTE |setUnion|))))) - |POLYCAT-;conditionP;MU;27|) - (LETT |redmons| NIL |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |m| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #8# |mons| |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #8#) - (PROGN - (LETT |m| (CAR #8#) |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (LETT |vars| - (SPADCALL |m| (QREFELT |$| 31)) - |POLYCAT-;conditionP;MU;27|) - (LETT |degs| - (SPADCALL |m| |vars| (QREFELT |$| 140)) - |POLYCAT-;conditionP;MU;27|) - (LETT |deg1| - (PROGN - (LETT #9# NIL |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |d| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #10# |degs| |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #10#) - (PROGN - (LETT |d| - (CAR #10#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #9# - (CONS - (SEQ - (LETT |nd| - (SPADCALL |d| |ch| (QREFELT |$| 142)) - |POLYCAT-;conditionP;MU;27|) - (EXIT - (COND - ((QEQCAR |nd| 1) - (PROGN - (LETT #11# - (CONS 1 "failed") - |POLYCAT-;conditionP;MU;27|) - (GO #11#))) - ((QUOTE T) - (PROG1 - (LETT #12# - (QCDR |nd|) - |POLYCAT-;conditionP;MU;27|) - (|check-subtype| - (|>=| #12# 0) - (QUOTE (|NonNegativeInteger|)) - #12#)))))) - #9#) - |POLYCAT-;conditionP;MU;27|))) - (LETT #10# (CDR #10#) |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT (NREVERSE0 #9#)))) - |POLYCAT-;conditionP;MU;27|) - (LETT |redmons| - (CONS - (SPADCALL - (|spadConstant| |$| 33) - |vars| - |deg1| - (QREFELT |$| 54)) - |redmons|) - |POLYCAT-;conditionP;MU;27|) - (EXIT - (LETT |llR| - (PROGN - (LETT #13# NIL |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |v| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #14# |llR| |POLYCAT-;conditionP;MU;27|) - (LETT |u| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #15# |l| |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #15#) - (PROGN - (LETT |u| - (CAR #15#) - |POLYCAT-;conditionP;MU;27|) - NIL) - (ATOM #14#) - (PROGN - (LETT |v| - (CAR #14#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #13# - (CONS - (CONS - (SPADCALL - (SPADCALL - |u| - |vars| - |degs| - (QREFELT |$| 52)) - (QREFELT |$| 143)) - |v|) - #13#) - |POLYCAT-;conditionP;MU;27|))) - (LETT #15# - (PROG1 - (CDR #15#) - (LETT #14# - (CDR #14#) - |POLYCAT-;conditionP;MU;27|)) - |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT (NREVERSE0 #13#)))) - |POLYCAT-;conditionP;MU;27|))) - (LETT #8# (CDR #8#) |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT NIL)) - (EXIT - (LETT |monslist| - (CONS |redmons| |monslist|) - |POLYCAT-;conditionP;MU;27|))) - (LETT #3# (CDR #3#) |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT NIL)) - (LETT |ans| - (SPADCALL - (SPADCALL - (SPADCALL |llR| (QREFELT |$| 89)) - (QREFELT |$| 144)) - (QREFELT |$| 146)) - |POLYCAT-;conditionP;MU;27|) - (EXIT - (COND - ((QEQCAR |ans| 1) (CONS 1 "failed")) - ((QUOTE T) - (SEQ - (LETT |i| 0 |POLYCAT-;conditionP;MU;27|) - (EXIT - (CONS - 0 - (PRIMVEC2ARR - (PROGN - (LETT #16# - (GETREFV (SIZE |monslist|)) - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT #17# 0 |POLYCAT-;conditionP;MU;27|) - (LETT |mons| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #18# - |monslist| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #18#) - (PROGN - (LETT |mons| - (CAR #18#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (SETELT - #16# - #17# - (PROGN - (LETT #22# - NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |m| - NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #19# - |mons| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR - (ATOM #19#) - (PROGN - (LETT |m| - (CAR #19#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (PROGN - (LETT #20# - (SPADCALL |m| - (SPADCALL - (SPADCALL - (QCDR |ans|) - (LETT |i| - (|+| |i| 1) - |POLYCAT-;conditionP;MU;27|) - (QREFELT |$| 147)) - (QREFELT |$| 40)) - (QREFELT |$| 148)) - |POLYCAT-;conditionP;MU;27|) - (COND - (#22# - (LETT #21# - (SPADCALL #21# #20# - (QREFELT |$| 149)) - |POLYCAT-;conditionP;MU;27|)) - ((QUOTE T) - (PROGN - (LETT #21# #20# - |POLYCAT-;conditionP;MU;27|) - (LETT #22# (QUOTE T) - |POLYCAT-;conditionP;MU;27|))))))) - (LETT #19# (CDR #19#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT NIL)) - (COND - (#22# #21#) - ((QUOTE T) - (|spadConstant| |$| 21))))))) - (LETT #18# - (PROG1 - (CDR #18#) - (LETT #17# - (QSADD1 #17#) - |POLYCAT-;conditionP;MU;27|)) - |POLYCAT-;conditionP;MU;27|) - (GO G190) - G191 - (EXIT NIL)) - #16#)))))))))) - #11# - (EXIT #11#))))) - -(DEFUN |POLYCAT-;charthRoot;SU;28| (|p| |$|) - (PROG (|vars| |ans| |ch|) - (RETURN - (SEQ - (LETT |vars| - (SPADCALL |p| (QREFELT |$| 31)) |POLYCAT-;charthRoot;SU;28|) - (EXIT - (COND - ((NULL |vars|) - (SEQ - (LETT |ans| - (SPADCALL - (SPADCALL |p| (QREFELT |$| 143)) - (QREFELT |$| 151)) - |POLYCAT-;charthRoot;SU;28|) - (EXIT - (COND - ((QEQCAR |ans| 1) - (CONS 1 "failed")) - ((QUOTE T) - (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT |$| 40)))))))) - ((QUOTE T) - (SEQ - (LETT |ch| - (SPADCALL (QREFELT |$| 138)) - |POLYCAT-;charthRoot;SU;28|) - (EXIT (|POLYCAT-;charthRootlv| |p| |vars| |ch| |$|)))))))))) - -(DEFUN |POLYCAT-;charthRootlv| (|p| |vars| |ch| |$|) - (PROG (|v| |dd| |cp| |d| #1=#:G102109 |ans| |ansx| #2=#:G102116) - (RETURN - (SEQ - (EXIT - (COND - ((NULL |vars|) + (COND (#6# #5#) ((QUOTE T) (|IdentityError| (QUOTE |setUnion|))))) + |POLYCAT-;conditionP;MU;27|) + (LETT |redmons| NIL |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |m| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #7# |mons| |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #7#) + (PROGN (LETT |m| (CAR #7#) |POLYCAT-;conditionP;MU;27|) NIL)) + (GO G191))) + (SEQ + (LETT |vars| + (SPADCALL |m| (QREFELT $ 31)) + |POLYCAT-;conditionP;MU;27|) + (LETT |degs| + (SPADCALL |m| |vars| (QREFELT $ 140)) + |POLYCAT-;conditionP;MU;27|) + (LETT |deg1| + (PROGN + (LETT #8# NIL |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |d| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #9# |degs| |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #9#) + (PROGN + (LETT |d| (CAR #9#) |POLYCAT-;conditionP;MU;27|) + NIL)) + (GO G191))) (SEQ - (LETT |ans| - (SPADCALL (SPADCALL |p| (QREFELT |$| 143)) (QREFELT |$| 151)) - |POLYCAT-;charthRootlv|) - (EXIT - (COND - ((QEQCAR |ans| 1) (CONS 1 "failed")) - ((QUOTE T) - (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT |$| 40)))))))) - ((QUOTE T) - (SEQ - (LETT |v| (|SPADfirst| |vars|) |POLYCAT-;charthRootlv|) - (LETT |vars| (CDR |vars|) |POLYCAT-;charthRootlv|) - (LETT |d| - (SPADCALL |p| |v| (QREFELT |$| 36)) - |POLYCAT-;charthRootlv|) - (LETT |ans| (|spadConstant| |$| 21) |POLYCAT-;charthRootlv|) - (SEQ G190 - (COND ((NULL (|<| 0 |d|)) (GO G191))) - (SEQ - (LETT |dd| - (SPADCALL |d| |ch| (QREFELT |$| 142)) - |POLYCAT-;charthRootlv|) - (EXIT - (COND - ((QEQCAR |dd| 1) - (PROGN - (LETT #2# - (CONS 1 "failed") - |POLYCAT-;charthRootlv|) - (GO #2#))) - ((QUOTE T) - (SEQ - (LETT |cp| - (SPADCALL |p| |v| |d| (QREFELT |$| 154)) - |POLYCAT-;charthRootlv|) - (LETT |p| - (SPADCALL |p| - (SPADCALL |cp| |v| |d| (QREFELT |$| 37)) - (QREFELT |$| 155)) - |POLYCAT-;charthRootlv|) - (LETT |ansx| - (|POLYCAT-;charthRootlv| |cp| |vars| |ch| |$|) - |POLYCAT-;charthRootlv|) - (EXIT - (COND - ((QEQCAR |ansx| 1) - (PROGN - (LETT #2# - (CONS 1 "failed") - |POLYCAT-;charthRootlv|) - (GO #2#))) - ((QUOTE T) - (SEQ - (LETT |d| - (SPADCALL |p| |v| (QREFELT |$| 36)) - |POLYCAT-;charthRootlv|) - (EXIT - (LETT |ans| - (SPADCALL |ans| - (SPADCALL - (QCDR |ansx|) - |v| - (PROG1 - (LETT #1# - (QCDR |dd|) - |POLYCAT-;charthRootlv|) - (|check-subtype| - (|>=| #1# 0) - (QUOTE (|NonNegativeInteger|)) - #1#)) - (QREFELT |$| 37)) - (QREFELT |$| 149)) - |POLYCAT-;charthRootlv|))))))))))) - NIL - (GO G190) - G191 - (EXIT NIL)) - (LETT |ansx| - (|POLYCAT-;charthRootlv| |p| |vars| |ch| |$|) - |POLYCAT-;charthRootlv|) - (EXIT - (COND - ((QEQCAR |ansx| 1) - (PROGN - (LETT #2# (CONS 1 "failed") |POLYCAT-;charthRootlv|) - (GO #2#))) + (EXIT + (LETT #8# + (CONS + (SEQ + (LETT |nd| + (SPADCALL |d| |ch| (QREFELT $ 142)) + |POLYCAT-;conditionP;MU;27|) + (EXIT + (COND + ((QEQCAR |nd| 1) + (PROGN + (LETT #10# + (CONS 1 "failed") |POLYCAT-;conditionP;MU;27|) + (GO #10#))) ((QUOTE T) - (PROGN - (LETT #2# - (CONS - 0 - (SPADCALL |ans| (QCDR |ansx|) (QREFELT |$| 149))) - |POLYCAT-;charthRootlv|) - (GO #2#))))))))) - #2# - (EXIT #2#))))) - -(DEFUN |POLYCAT-;monicDivide;2SVarSetR;30| (|p1| |p2| |mvar| |$|) - (PROG (|result|) - (RETURN - (SEQ - (LETT |result| - (SPADCALL - (SPADCALL |p1| |mvar| (QREFELT |$| 47)) - (SPADCALL |p2| |mvar| (QREFELT |$| 47)) - (QREFELT |$| 157)) - |POLYCAT-;monicDivide;2SVarSetR;30|) - (EXIT - (CONS - (SPADCALL (QCAR |result|) |mvar| (QREFELT |$| 132)) - (SPADCALL (QCDR |result|) |mvar| (QREFELT |$| 132)))))))) - -(DEFUN |POLYCAT-;squareFree;SF;31| (|p| |$|) - (SPADCALL |p| (QREFELT |$| 160))) - -(DEFUN |POLYCAT-;squareFree;SF;32| (|p| |$|) - (SPADCALL |p| (QREFELT |$| 163))) - -(DEFUN |POLYCAT-;squareFree;SF;33| (|p| |$|) - (SPADCALL |p| (QREFELT |$| 163))) - -(DEFUN |POLYCAT-;squareFreePart;2S;34| (|p| |$|) - (PROG (|s| |f| #1=#:G102132 #2=#:G102130 #3=#:G102128 #4=#:G102129) - (RETURN - (SEQ - (SPADCALL - (SPADCALL - (LETT |s| - (SPADCALL |p| (QREFELT |$| 164)) - |POLYCAT-;squareFreePart;2S;34|) - (QREFELT |$| 165)) - (PROGN - (LETT #4# NIL |POLYCAT-;squareFreePart;2S;34|) - (SEQ - (LETT |f| NIL |POLYCAT-;squareFreePart;2S;34|) - (LETT #1# - (SPADCALL |s| (QREFELT |$| 168)) - |POLYCAT-;squareFreePart;2S;34|) + (PROG1 + (LETT #11# (QCDR |nd|) |POLYCAT-;conditionP;MU;27|) + (|check-subtype| + (>= #11# 0) (QUOTE (|NonNegativeInteger|)) #11#)))))) + #8#) + |POLYCAT-;conditionP;MU;27|))) + (LETT #9# (CDR #9#) |POLYCAT-;conditionP;MU;27|) + (GO G190) + G191 + (EXIT (NREVERSE0 #8#)))) + |POLYCAT-;conditionP;MU;27|) + (LETT |redmons| + (CONS + (SPADCALL (|spadConstant| $ 33) |vars| |deg1| (QREFELT $ 54)) + |redmons|) + |POLYCAT-;conditionP;MU;27|) + (EXIT + (LETT |llR| + (PROGN + (LETT #12# NIL |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |v| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #13# |llR| |POLYCAT-;conditionP;MU;27|) + (LETT |u| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #14# |l| |POLYCAT-;conditionP;MU;27|) G190 - (COND - ((OR - (ATOM #1#) - (PROGN - (LETT |f| (CAR #1#) |POLYCAT-;squareFreePart;2S;34|) - NIL)) - (GO G191))) + (COND + ((OR (ATOM #14#) + (PROGN + (LETT |u| (CAR #14#) |POLYCAT-;conditionP;MU;27|) + NIL) + (ATOM #13#) + (PROGN (LETT |v| (CAR #13#) |POLYCAT-;conditionP;MU;27|) NIL)) + (GO G191))) (SEQ - (EXIT - (PROGN - (LETT #2# (QCAR |f|) |POLYCAT-;squareFreePart;2S;34|) - (COND - (#4# - (LETT #3# - (SPADCALL #3# #2# (QREFELT |$| 148)) - |POLYCAT-;squareFreePart;2S;34|)) - ((QUOTE T) - (PROGN - (LETT #3# #2# |POLYCAT-;squareFreePart;2S;34|) - (LETT #4# - (QUOTE T) - |POLYCAT-;squareFreePart;2S;34|))))))) - (LETT #1# (CDR #1#) |POLYCAT-;squareFreePart;2S;34|) + (EXIT + (LETT #12# + (CONS + (CONS + (SPADCALL + (SPADCALL |u| |vars| |degs| (QREFELT $ 52)) + (QREFELT $ 143)) + |v|) + #12#) + |POLYCAT-;conditionP;MU;27|))) + (LETT #14# + (PROG1 + (CDR #14#) + (LETT #13# (CDR #13#) |POLYCAT-;conditionP;MU;27|)) + |POLYCAT-;conditionP;MU;27|) (GO G190) G191 - (EXIT NIL)) - (COND - (#4# #3#) - ((QUOTE T) (|spadConstant| |$| 33)))) - (QREFELT |$| 148)))))) - -(DEFUN |POLYCAT-;content;SVarSetS;35| (|p| |v| |$|) - (SPADCALL (SPADCALL |p| |v| (QREFELT |$| 47)) (QREFELT |$| 170))) - -(DEFUN |POLYCAT-;primitivePart;2S;36| (|p| |$|) - (PROG (#1=#:G102135) - (RETURN - (QVELT - (SPADCALL - (PROG2 - (LETT #1# - (SPADCALL |p| (SPADCALL |p| (QREFELT |$| 172)) (QREFELT |$| 173)) - |POLYCAT-;primitivePart;2S;36|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) (QREFELT |$| 6) #1#)) - (QREFELT |$| 175)) - 1)))) - -(DEFUN |POLYCAT-;primitivePart;SVarSetS;37| (|p| |v| |$|) - (PROG (#1=#:G102141) - (RETURN - (QVELT - (SPADCALL - (PROG2 - (LETT #1# - (SPADCALL |p| - (SPADCALL |p| |v| (QREFELT |$| 177)) - (QREFELT |$| 178)) - |POLYCAT-;primitivePart;SVarSetS;37|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) (QREFELT |$| 6) #1#)) - (QREFELT |$| 175)) 1)))) - -(DEFUN |POLYCAT-;<;2SB;38| (|p| |q| |$|) - (PROG (|dp| |dq|) - (RETURN - (SEQ - (LETT |dp| (SPADCALL |p| (QREFELT |$| 59)) |POLYCAT-;<;2SB;38|) - (LETT |dq| (SPADCALL |q| (QREFELT |$| 59)) |POLYCAT-;<;2SB;38|) - (EXIT - (COND - ((SPADCALL |dp| |dq| (QREFELT |$| 180)) - (SPADCALL - (|spadConstant| |$| 22) - (SPADCALL |q| (QREFELT |$| 38)) - (QREFELT |$| 181))) - ((SPADCALL |dq| |dp| (QREFELT |$| 180)) - (SPADCALL - (SPADCALL |p| (QREFELT |$| 38)) - (|spadConstant| |$| 22) - (QREFELT |$| 181))) - ((QUOTE T) - (SPADCALL - (SPADCALL - (SPADCALL |p| |q| (QREFELT |$| 155)) - (QREFELT |$| 38)) - (|spadConstant| |$| 22) - (QREFELT |$| 181))))))))) - -(DEFUN |POLYCAT-;patternMatch;SP2Pmr;39| (|p| |pat| |l| |$|) - (SPADCALL |p| |pat| |l| (QREFELT |$| 186))) - -(DEFUN |POLYCAT-;patternMatch;SP2Pmr;40| (|p| |pat| |l| |$|) - (SPADCALL |p| |pat| |l| (QREFELT |$| 192))) - -(DEFUN |POLYCAT-;convert;SP;41| (|x| |$|) - (SPADCALL (ELT |$| 195) (ELT |$| 196) |x| (QREFELT |$| 200))) - -(DEFUN |POLYCAT-;convert;SP;42| (|x| |$|) - (SPADCALL (ELT |$| 202) (ELT |$| 203) |x| (QREFELT |$| 207))) - -(DEFUN |POLYCAT-;convert;SIf;43| (|p| |$|) - (SPADCALL (ELT |$| 210) (ELT |$| 211) |p| (QREFELT |$| 215))) - -(DEFUN |PolynomialCategory&| (|#1| |#2| |#3| |#4|) - (PROG (|DV$1| |DV$2| |DV$3| |DV$4| |dv$| |$| |pv$|) - (RETURN - (PROGN - (LETT |DV$1| (|devaluate| |#1|) . #1=(|PolynomialCategory&|)) - (LETT |DV$2| (|devaluate| |#2|) . #1#) - (LETT |DV$3| (|devaluate| |#3|) . #1#) - (LETT |DV$4| (|devaluate| |#4|) . #1#) - (LETT |dv$| - (LIST - (QUOTE |PolynomialCategory&|) |DV$1| |DV$2| |DV$3| |DV$4|) . #1#) - (LETT |$| (GETREFV 225) . #1#) - (QSETREFV |$| 0 |dv$|) - (QSETREFV |$| 3 - (LETT |pv$| - (|buildPredVector| 0 0 - (LIST - (|HasCategory| |#2| - (QUOTE (|PolynomialFactorizationExplicit|))) - (|HasAttribute| |#2| (QUOTE |canonicalUnitNormal|)) - (|HasCategory| |#2| (QUOTE (|GcdDomain|))) - (|HasCategory| |#2| (QUOTE (|CommutativeRing|))) - (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Float|)))) - (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Float|)))) - (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Integer|)))) - (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Integer|)))) - (|HasCategory| |#4| - (QUOTE (|ConvertibleTo| (|Pattern| (|Float|))))) - (|HasCategory| |#2| - (QUOTE (|ConvertibleTo| (|Pattern| (|Float|))))) - (|HasCategory| |#4| - (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|))))) - (|HasCategory| |#2| - (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|))))) - (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|InputForm|)))) - (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|)))) - (|HasCategory| |#2| (QUOTE (|OrderedSet|))))) . #1#)) - (|stuffDomainSlots| |$|) - (QSETREFV |$| 6 |#1|) - (QSETREFV |$| 7 |#2|) - (QSETREFV |$| 8 |#3|) - (QSETREFV |$| 9 |#4|) - (COND - ((|testBitVector| |pv$| 4) - (PROGN - (QSETREFV |$| 74 - (CONS - (|dispatchFunction| |POLYCAT-;resultant;2SVarSetS;15|) - |$|)) - (QSETREFV |$| 76 - (CONS - (|dispatchFunction| |POLYCAT-;discriminant;SVarSetS;16|) - |$|))))) - (COND - ((|HasCategory| |#2| (QUOTE (|IntegralDomain|))) - (PROGN - (QSETREFV |$| 95 - (CONS (|dispatchFunction| |POLYCAT-;reducedSystem;MM;20|) |$|)) - (QSETREFV |$| 102 - (CONS - (|dispatchFunction| |POLYCAT-;reducedSystem;MVR;21|) - |$|))))) - (COND - ((|testBitVector| |pv$| 1) - (PROGN - (QSETREFV |$| 105 - (CONS - (|dispatchFunction| |POLYCAT-;gcdPolynomial;3Sup;22|) - |$|)) - (QSETREFV |$| 112 - (CONS - (|dispatchFunction| - |POLYCAT-;solveLinearPolynomialEquation;LSupU;23|) - |$|)) - (QSETREFV |$| 116 - (CONS - (|dispatchFunction| |POLYCAT-;factorPolynomial;SupF;24|) - |$|)) - (QSETREFV |$| 118 - (CONS - (|dispatchFunction| - |POLYCAT-;factorSquareFreePolynomial;SupF;25|) - |$|)) - (QSETREFV |$| 136 - (CONS - (|dispatchFunction| |POLYCAT-;factor;SF;26|) |$|)) - (COND - ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|))) + (EXIT (NREVERSE0 #12#)))) + |POLYCAT-;conditionP;MU;27|))) + (LETT #7# (CDR #7#) |POLYCAT-;conditionP;MU;27|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (LETT |monslist| + (CONS |redmons| |monslist|) + |POLYCAT-;conditionP;MU;27|))) + (LETT #2# (CDR #2#) |POLYCAT-;conditionP;MU;27|) + (GO G190) + G191 + (EXIT NIL)) + (LETT |ans| + (SPADCALL (SPADCALL (SPADCALL |llR| (QREFELT $ 89)) (QREFELT $ 144)) + (QREFELT $ 146)) + |POLYCAT-;conditionP;MU;27|) + (EXIT + (COND + ((QEQCAR |ans| 1) (CONS 1 "failed")) + ((QUOTE T) + (SEQ + (LETT |i| 0 |POLYCAT-;conditionP;MU;27|) + (EXIT + (CONS 0 + (PRIMVEC2ARR + (PROGN + (LETT #15# (GETREFV (SIZE |monslist|)) + |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT #16# 0 |POLYCAT-;conditionP;MU;27|) + (LETT |mons| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #17# |monslist| |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #17#) + (PROGN + (LETT |mons| (CAR #17#) |POLYCAT-;conditionP;MU;27|) + NIL)) + (GO G191))) + (SEQ + (EXIT + (SETELT #15# #16# + (PROGN + (LETT #21# NIL |POLYCAT-;conditionP;MU;27|) + (SEQ + (LETT |m| NIL |POLYCAT-;conditionP;MU;27|) + (LETT #18# |mons| |POLYCAT-;conditionP;MU;27|) + G190 + (COND + ((OR (ATOM #18#) + (PROGN + (LETT |m| (CAR #18#) |POLYCAT-;conditionP;MU;27|) + NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #19# + (SPADCALL |m| + (SPADCALL + (SPADCALL + (QCDR |ans|) + (LETT |i| (+ |i| 1) |POLYCAT-;conditionP;MU;27|) + (QREFELT $ 147)) + (QREFELT $ 40)) + (QREFELT $ 148)) + |POLYCAT-;conditionP;MU;27|) + (COND + (#21# + (LETT #20# + (SPADCALL #20# #19# (QREFELT $ 149)) + |POLYCAT-;conditionP;MU;27|)) + ((QUOTE T) + (PROGN + (LETT #20# #19# |POLYCAT-;conditionP;MU;27|) + (LETT #21# + (QUOTE T) + |POLYCAT-;conditionP;MU;27|))))))) + (LETT #18# (CDR #18#) |POLYCAT-;conditionP;MU;27|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#21# #20#) ((QUOTE T) (|spadConstant| $ 21))))))) + (LETT #17# + (PROG1 + (CDR #17#) + (LETT #16# (QSADD1 #16#) |POLYCAT-;conditionP;MU;27|)) + |POLYCAT-;conditionP;MU;27|) + (GO G190) + G191 + (EXIT NIL)) + #15#)))))))))) + #10# + (EXIT #10#))))) + +(DEFUN |POLYCAT-;charthRoot;SU;28| (|p| $) + (PROG (|vars| |ans| |ch|) + (RETURN + (SEQ + (LETT |vars| (SPADCALL |p| (QREFELT $ 31)) |POLYCAT-;charthRoot;SU;28|) + (EXIT + (COND + ((NULL |vars|) + (SEQ + (LETT |ans| + (SPADCALL (SPADCALL |p| (QREFELT $ 143)) (QREFELT $ 151)) + |POLYCAT-;charthRoot;SU;28|) + (EXIT + (COND + ((QEQCAR |ans| 1) (CONS 1 "failed")) + ((QUOTE T) (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT $ 40)))))))) + ((QUOTE T) + (SEQ + (LETT |ch| (SPADCALL (QREFELT $ 138)) |POLYCAT-;charthRoot;SU;28|) + (EXIT (|POLYCAT-;charthRootlv| |p| |vars| |ch| $)))))))))) + +(DEFUN |POLYCAT-;charthRootlv| (|p| |vars| |ch| $) + (PROG (|v| |dd| |cp| |d| #0=#:G1687 |ans| |ansx| #1=#:G1694) + (RETURN + (SEQ + (EXIT + (COND + ((NULL |vars|) + (SEQ + (LETT |ans| + (SPADCALL (SPADCALL |p| (QREFELT $ 143)) (QREFELT $ 151)) + |POLYCAT-;charthRootlv|) + (EXIT + (COND + ((QEQCAR |ans| 1) (CONS 1 "failed")) + ((QUOTE T) (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT $ 40)))))))) + ((QUOTE T) + (SEQ + (LETT |v| (|SPADfirst| |vars|) |POLYCAT-;charthRootlv|) + (LETT |vars| (CDR |vars|) |POLYCAT-;charthRootlv|) + (LETT |d| (SPADCALL |p| |v| (QREFELT $ 36)) |POLYCAT-;charthRootlv|) + (LETT |ans| (|spadConstant| $ 21) |POLYCAT-;charthRootlv|) + (SEQ G190 + (COND ((NULL (< 0 |d|)) (GO G191))) + (SEQ + (LETT |dd| + (SPADCALL |d| |ch| (QREFELT $ 142)) + |POLYCAT-;charthRootlv|) + (EXIT + (COND + ((QEQCAR |dd| 1) + (PROGN + (LETT #1# (CONS 1 "failed") |POLYCAT-;charthRootlv|) + (GO #1#))) + ((QUOTE T) + (SEQ + (LETT |cp| + (SPADCALL |p| |v| |d| (QREFELT $ 154)) + |POLYCAT-;charthRootlv|) + (LETT |p| + (SPADCALL |p| + (SPADCALL |cp| |v| |d| (QREFELT $ 37)) + (QREFELT $ 155)) + |POLYCAT-;charthRootlv|) + (LETT |ansx| + (|POLYCAT-;charthRootlv| |cp| |vars| |ch| $) + |POLYCAT-;charthRootlv|) + (EXIT + (COND + ((QEQCAR |ansx| 1) (PROGN - (QSETREFV |$| 150 - (CONS - (|dispatchFunction| |POLYCAT-;conditionP;MU;27|) - |$|)))))))) - (COND - ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|))) - (PROGN - (QSETREFV |$| 152 - (CONS - (|dispatchFunction| |POLYCAT-;charthRoot;SU;28|) - |$|))))) - (COND - ((|testBitVector| |pv$| 3) - (PROGN - (COND - ((|HasCategory| |#2| (QUOTE (|EuclideanDomain|))) - (COND - ((|HasCategory| |#2| (QUOTE (|CharacteristicZero|))) - (QSETREFV |$| 161 - (CONS - (|dispatchFunction| |POLYCAT-;squareFree;SF;31|) - |$|))) - ((QUOTE T) - (QSETREFV |$| 161 - (CONS - (|dispatchFunction| |POLYCAT-;squareFree;SF;32|) - |$|))))) + (LETT #1# (CONS 1 "failed") |POLYCAT-;charthRootlv|) + (GO #1#))) ((QUOTE T) - (QSETREFV |$| 161 - (CONS - (|dispatchFunction| |POLYCAT-;squareFree;SF;33|) |$|)))) - (QSETREFV |$| 169 - (CONS - (|dispatchFunction| |POLYCAT-;squareFreePart;2S;34|) |$|)) - (QSETREFV |$| 171 - (CONS (|dispatchFunction| |POLYCAT-;content;SVarSetS;35|) |$|)) - (QSETREFV |$| 176 - (CONS (|dispatchFunction| |POLYCAT-;primitivePart;2S;36|) |$|)) - (QSETREFV |$| 179 - (CONS - (|dispatchFunction| |POLYCAT-;primitivePart;SVarSetS;37|) |$|))))) - (COND - ((|testBitVector| |pv$| 15) - (PROGN - (QSETREFV |$| 182 - (CONS (|dispatchFunction| |POLYCAT-;<;2SB;38|) |$|)) - (COND - ((|testBitVector| |pv$| 8) - (COND - ((|testBitVector| |pv$| 7) - (QSETREFV |$| 188 - (CONS - (|dispatchFunction| - |POLYCAT-;patternMatch;SP2Pmr;39|) - |$|)))))) - (COND - ((|testBitVector| |pv$| 6) - (COND - ((|testBitVector| |pv$| 5) - (QSETREFV |$| 194 - (CONS - (|dispatchFunction| - |POLYCAT-;patternMatch;SP2Pmr;40|) - |$|))))))))) - (COND - ((|testBitVector| |pv$| 12) - (COND - ((|testBitVector| |pv$| 11) - (QSETREFV |$| 201 - (CONS (|dispatchFunction| |POLYCAT-;convert;SP;41|) |$|)))))) - (COND - ((|testBitVector| |pv$| 10) - (COND - ((|testBitVector| |pv$| 9) - (QSETREFV |$| 208 - (CONS (|dispatchFunction| |POLYCAT-;convert;SP;42|) |$|)))))) - (COND - ((|testBitVector| |pv$| 14) - (COND - ((|testBitVector| |pv$| 13) - (QSETREFV |$| 216 - (CONS - (|dispatchFunction| |POLYCAT-;convert;SIf;43|) - |$|)))))) - |$|)))) - -(MAKEPROP - (QUOTE |PolynomialCategory&|) - (QUOTE |infovec|) - (LIST - (QUOTE - #(NIL NIL NIL NIL NIL NIL - (|local| |#1|) - (|local| |#2|) - (|local| |#3|) - (|local| |#4|) - (|Equation| 6) - (0 . |lhs|) - (|Union| 9 (QUOTE "failed")) - (5 . |retractIfCan|) - (10 . |retract|) - (15 . |rhs|) - (|List| 9) - (|List| |$|) - (20 . |eval|) - (|List| 220) - |POLYCAT-;eval;SLS;1| - (27 . |Zero|) - (31 . |Zero|) - (|Boolean|) - (35 . |=|) - (41 . |leadingMonomial|) - (46 . |reductum|) - |POLYCAT-;monomials;SL;2| - (51 . |monomials|) - (|Union| 17 (QUOTE "failed")) - |POLYCAT-;isPlus;SU;3| - (56 . |variables|) - (61 . |monomial?|) - (66 . |One|) - (70 . |One|) - (|NonNegativeInteger|) - (74 . |degree|) - (80 . |monomial|) - (87 . |leadingCoefficient|) - (92 . |one?|) - (97 . |coerce|) - |POLYCAT-;isTimes;SU;4| - (102 . |mainVariable|) - (|Record| (|:| |var| 9) (|:| |exponent| 35)) - (|Union| 43 (QUOTE "failed")) - |POLYCAT-;isExpt;SU;5| - (|SparseUnivariatePolynomial| |$|) - (107 . |univariate|) - (|SparseUnivariatePolynomial| 6) - (113 . |coefficient|) - |POLYCAT-;coefficient;SVarSetNniS;6| - (|List| 35) - (119 . |coefficient|) - |POLYCAT-;coefficient;SLLS;7| - (126 . |monomial|) - |POLYCAT-;monomial;SLLS;8| - (133 . |coerce|) - |POLYCAT-;retract;SVarSet;9| - |POLYCAT-;retractIfCan;SU;10| - (138 . |degree|) - (143 . |monomial|) - |POLYCAT-;primitiveMonomials;SL;12| - (149 . |ground?|) - (154 . |Zero|) - (158 . |=|) - (164 . |degree|) - (169 . |leadingCoefficient|) - (174 . |totalDegree|) - (179 . |reductum|) - |POLYCAT-;totalDegree;SNni;13| - (184 . |member?|) - (190 . |totalDegree|) - |POLYCAT-;totalDegree;SLNni;14| - (196 . |resultant|) - (202 . |resultant|) - (209 . |discriminant|) - (214 . |discriminant|) - (220 . |primitiveMonomials|) - (|List| 6) - (225 . |concat|) - (230 . |removeDuplicates!|) - (|Vector| 7) - (235 . |new|) - (|Integer|) - (241 . |minIndex|) - (246 . |coefficient|) - (252 . |qsetelt!|) - (|List| 219) - (|Matrix| 7) - (259 . |matrix|) - (|List| 78) - (|Matrix| 6) - (264 . |listOfLists|) - (269 . |vertConcat|) - (|Matrix| |$|) - (275 . |reducedSystem|) - (|Vector| 6) - (280 . |entries|) - (285 . |concat|) - (291 . |concat|) - (|Record| (|:| |mat| 88) (|:| |vec| 81)) - (|Vector| |$|) - (297 . |reducedSystem|) - (|GeneralPolynomialGcdPackage| 8 9 7 6) - (303 . |gcdPolynomial|) - (309 . |gcdPolynomial|) - (|Union| 107 (QUOTE "failed")) - (|List| 48) - (|PolynomialFactorizationByRecursion| 7 8 9 6) - (315 . |solveLinearPolynomialEquationByRecursion|) - (|Union| 111 (QUOTE "failed")) - (|List| 46) - (321 . |solveLinearPolynomialEquation|) - (|Factored| 48) - (327 . |factorByRecursion|) - (|Factored| 46) - (332 . |factorPolynomial|) - (337 . |factorSquareFreeByRecursion|) - (342 . |factorSquareFreePolynomial|) - (|Factored| |$|) - (347 . |factor|) - (|Factored| 7) - (352 . |unit|) - (|Union| (QUOTE "nil") (QUOTE "sqfr") (QUOTE "irred") (QUOTE "prime")) - (|Record| (|:| |flg| 123) (|:| |fctr| 7) (|:| |xpnt| 83)) - (|List| 124) - (357 . |factorList|) - (|Record| (|:| |flg| 123) (|:| |fctr| 6) (|:| |xpnt| 83)) - (|List| 127) - (|Factored| 6) - (362 . |makeFR|) - (368 . |unit|) - (373 . |multivariate|) - (|Record| (|:| |flg| 123) (|:| |fctr| 48) (|:| |xpnt| 83)) - (|List| 133) - (379 . |factorList|) - (384 . |factor|) - (389 . |transpose|) - (394 . |characteristic|) - (398 . |setUnion|) - (404 . |degree|) - (|Union| |$| (QUOTE "failed")) - (410 . |exquo|) - (416 . |ground|) - (421 . |transpose|) - (|Union| 101 (QUOTE "failed")) - (426 . |conditionP|) - (431 . |elt|) - (437 . |*|) - (443 . |+|) - (449 . |conditionP|) - (454 . |charthRoot|) - (459 . |charthRoot|) - (464 . |Zero|) - (468 . |coefficient|) - (475 . |-|) - (|Record| (|:| |quotient| |$|) (|:| |remainder| |$|)) - (481 . |monicDivide|) - |POLYCAT-;monicDivide;2SVarSetR;30| - (|MultivariateSquareFree| 8 9 7 6) - (487 . |squareFree|) - (492 . |squareFree|) - (|PolynomialSquareFree| 9 8 7 6) - (497 . |squareFree|) - (502 . |squareFree|) - (507 . |unit|) - (|Record| (|:| |factor| 6) (|:| |exponent| 83)) - (|List| 166) - (512 . |factors|) - (517 . |squareFreePart|) - (522 . |content|) - (527 . |content|) - (533 . |content|) - (538 . |exquo|) - (|Record| (|:| |unit| |$|) (|:| |canonical| |$|) (|:| |associate| |$|)) - (544 . |unitNormal|) - (549 . |primitivePart|) - (554 . |content|) - (560 . |exquo|) - (566 . |primitivePart|) - (572 . |<|) - (578 . |<|) - (584 . |<|) - (|PatternMatchResult| 83 6) - (|Pattern| 83) - (|PatternMatchPolynomialCategory| 83 8 9 7 6) - (590 . |patternMatch|) - (|PatternMatchResult| 83 |$|) - (597 . |patternMatch|) - (|PatternMatchResult| (|Float|) 6) - (|Pattern| (|Float|)) - (|PatternMatchPolynomialCategory| (|Float|) 8 9 7 6) - (604 . |patternMatch|) - (|PatternMatchResult| (|Float|) |$|) - (611 . |patternMatch|) - (618 . |convert|) - (623 . |convert|) - (|Mapping| 184 9) - (|Mapping| 184 7) - (|PolynomialCategoryLifting| 8 9 7 6 184) - (628 . |map|) - (635 . |convert|) - (640 . |convert|) - (645 . |convert|) - (|Mapping| 190 9) - (|Mapping| 190 7) - (|PolynomialCategoryLifting| 8 9 7 6 190) - (650 . |map|) - (657 . |convert|) - (|InputForm|) - (662 . |convert|) - (667 . |convert|) - (|Mapping| 209 9) - (|Mapping| 209 7) - (|PolynomialCategoryLifting| 8 9 7 6 209) - (672 . |map|) - (679 . |convert|) - (|Record| (|:| |mat| 218) (|:| |vec| (|Vector| 83))) - (|Matrix| 83) - (|List| 7) - (|Equation| |$|) - (|Union| 83 (QUOTE "failed")) - (|Union| 223 (QUOTE "failed")) - (|Fraction| 83) - (|Union| 7 (QUOTE "failed")))) - (QUOTE - #(|totalDegree| 684 |squareFreePart| 695 |squareFree| 700 - |solveLinearPolynomialEquation| 705 |retractIfCan| 711 |retract| 716 - |resultant| 721 |reducedSystem| 728 |primitivePart| 739 - |primitiveMonomials| 750 |patternMatch| 755 |monomials| 769 - |monomial| 774 |monicDivide| 781 |isTimes| 788 |isPlus| 793 - |isExpt| 798 |gcdPolynomial| 803 |factorSquareFreePolynomial| 809 - |factorPolynomial| 814 |factor| 819 |eval| 824 |discriminant| 830 - |convert| 836 |content| 851 |conditionP| 857 |coefficient| 862 - |charthRoot| 876 |<| 881)) - (QUOTE NIL) - (CONS - (|makeByteWordVec2| 1 (QUOTE NIL)) - (CONS - (QUOTE #()) + (SEQ + (LETT |d| + (SPADCALL |p| |v| (QREFELT $ 36)) + |POLYCAT-;charthRootlv|) + (EXIT + (LETT |ans| + (SPADCALL |ans| + (SPADCALL (QCDR |ansx|) |v| + (PROG1 + (LETT #0# (QCDR |dd|) |POLYCAT-;charthRootlv|) + (|check-subtype| (>= #0# 0) + (QUOTE (|NonNegativeInteger|)) #0#)) + (QREFELT $ 37)) + (QREFELT $ 149)) + |POLYCAT-;charthRootlv|))))))))))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (LETT |ansx| + (|POLYCAT-;charthRootlv| |p| |vars| |ch| $) + |POLYCAT-;charthRootlv|) + (EXIT + (COND + ((QEQCAR |ansx| 1) + (PROGN + (LETT #1# (CONS 1 "failed") |POLYCAT-;charthRootlv|) + (GO #1#))) + ((QUOTE T) + (PROGN + (LETT #1# + (CONS 0 (SPADCALL |ans| (QCDR |ansx|) (QREFELT $ 149))) + |POLYCAT-;charthRootlv|) + (GO #1#))))))))) + #1# + (EXIT #1#))))) + +(DEFUN |POLYCAT-;monicDivide;2SVarSetR;30| (|p1| |p2| |mvar| $) + (PROG (|result|) + (RETURN + (SEQ + (LETT |result| + (SPADCALL + (SPADCALL |p1| |mvar| (QREFELT $ 47)) + (SPADCALL |p2| |mvar| (QREFELT $ 47)) + (QREFELT $ 157)) + |POLYCAT-;monicDivide;2SVarSetR;30|) + (EXIT + (CONS + (SPADCALL (QCAR |result|) |mvar| (QREFELT $ 132)) + (SPADCALL (QCDR |result|) |mvar| (QREFELT $ 132)))))))) + +(DEFUN |POLYCAT-;squareFree;SF;31| (|p| $) + (SPADCALL |p| (QREFELT $ 160))) + +(DEFUN |POLYCAT-;squareFree;SF;32| (|p| $) + (SPADCALL |p| (QREFELT $ 163))) + +(DEFUN |POLYCAT-;squareFree;SF;33| (|p| $) + (SPADCALL |p| (QREFELT $ 163))) + +(DEFUN |POLYCAT-;squareFreePart;2S;34| (|p| $) + (PROG (|s| |f| #0=#:G1710 #1=#:G1708 #2=#:G1706 #3=#:G1707) + (RETURN + (SEQ + (SPADCALL + (SPADCALL + (LETT |s| (SPADCALL |p| (QREFELT $ 164)) |POLYCAT-;squareFreePart;2S;34|) + (QREFELT $ 165)) + (PROGN + (LETT #3# NIL |POLYCAT-;squareFreePart;2S;34|) + (SEQ + (LETT |f| NIL |POLYCAT-;squareFreePart;2S;34|) + (LETT #0# (SPADCALL |s| (QREFELT $ 168)) |POLYCAT-;squareFreePart;2S;34|) + G190 + (COND + ((OR (ATOM #0#) + (PROGN (LETT |f| (CAR #0#) |POLYCAT-;squareFreePart;2S;34|) NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #1# (QCAR |f|) |POLYCAT-;squareFreePart;2S;34|) + (COND + (#3# + (LETT #2# + (SPADCALL #2# #1# (QREFELT $ 148)) + |POLYCAT-;squareFreePart;2S;34|)) + ((QUOTE T) + (PROGN + (LETT #2# #1# |POLYCAT-;squareFreePart;2S;34|) + (LETT #3# (QUOTE T) |POLYCAT-;squareFreePart;2S;34|))))))) + (LETT #0# (CDR #0#) |POLYCAT-;squareFreePart;2S;34|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#3# #2#) ((QUOTE T) (|spadConstant| $ 33)))) + (QREFELT $ 148)))))) + +(DEFUN |POLYCAT-;content;SVarSetS;35| (|p| |v| $) + (SPADCALL (SPADCALL |p| |v| (QREFELT $ 47)) (QREFELT $ 170))) + +(DEFUN |POLYCAT-;primitivePart;2S;36| (|p| $) + (PROG (#0=#:G1713) + (RETURN + (COND + ((SPADCALL |p| (QREFELT $ 172)) |p|) + ((QUOTE T) + (QVELT + (SPADCALL + (PROG2 + (LETT #0# + (SPADCALL |p| (SPADCALL |p| (QREFELT $ 173)) (QREFELT $ 174)) + |POLYCAT-;primitivePart;2S;36|) + (QCDR #0#) + (|check-union| (QEQCAR #0# 0) (QREFELT $ 6) #0#)) + (QREFELT $ 176)) + 1)))))) + +(DEFUN |POLYCAT-;primitivePart;SVarSetS;37| (|p| |v| $) + (PROG (#0=#:G1720) + (RETURN + (COND + ((SPADCALL |p| (QREFELT $ 172)) |p|) + ((QUOTE T) + (QVELT + (SPADCALL + (PROG2 + (LETT #0# + (SPADCALL |p| (SPADCALL |p| |v| (QREFELT $ 178)) (QREFELT $ 179)) + |POLYCAT-;primitivePart;SVarSetS;37|) + (QCDR #0#) + (|check-union| (QEQCAR #0# 0) (QREFELT $ 6) #0#)) + (QREFELT $ 176)) + 1)))))) + +(DEFUN |POLYCAT-;<;2SB;38| (|p| |q| $) + (PROG (|dp| |dq|) + (RETURN + (SEQ + (LETT |dp| (SPADCALL |p| (QREFELT $ 59)) |POLYCAT-;<;2SB;38|) + (LETT |dq| (SPADCALL |q| (QREFELT $ 59)) |POLYCAT-;<;2SB;38|) + (EXIT + (COND + ((SPADCALL |dp| |dq| (QREFELT $ 181)) + (SPADCALL + (|spadConstant| $ 22) + (SPADCALL |q| (QREFELT $ 38)) + (QREFELT $ 182))) + ((SPADCALL |dq| |dp| (QREFELT $ 181)) + (SPADCALL + (SPADCALL |p| (QREFELT $ 38)) + (|spadConstant| $ 22) + (QREFELT $ 182))) + ((QUOTE T) + (SPADCALL + (SPADCALL (SPADCALL |p| |q| (QREFELT $ 155)) (QREFELT $ 38)) + (|spadConstant| $ 22) + (QREFELT $ 182))))))))) + +(DEFUN |POLYCAT-;patternMatch;SP2Pmr;39| (|p| |pat| |l| $) + (SPADCALL |p| |pat| |l| (QREFELT $ 187))) + +(DEFUN |POLYCAT-;patternMatch;SP2Pmr;40| (|p| |pat| |l| $) + (SPADCALL |p| |pat| |l| (QREFELT $ 193))) + +(DEFUN |POLYCAT-;convert;SP;41| (|x| $) + (SPADCALL (ELT $ 196) (ELT $ 197) |x| (QREFELT $ 201))) + +(DEFUN |POLYCAT-;convert;SP;42| (|x| $) + (SPADCALL (ELT $ 203) (ELT $ 204) |x| (QREFELT $ 208))) + +(DEFUN |POLYCAT-;convert;SIf;43| (|p| $) + (SPADCALL (ELT $ 211) (ELT $ 212) |p| (QREFELT $ 216))) + +(DEFUN |PolynomialCategory&| (|#1| |#2| |#3| |#4|) + (PROG (DV$1 DV$2 DV$3 DV$4 |dv$| $ |pv$|) + (RETURN + (PROGN + (LETT DV$1 (|devaluate| |#1|) . #0=(|PolynomialCategory&|)) + (LETT DV$2 (|devaluate| |#2|) . #0#) + (LETT DV$3 (|devaluate| |#3|) . #0#) + (LETT DV$4 (|devaluate| |#4|) . #0#) + (LETT |dv$| (LIST (QUOTE |PolynomialCategory&|) DV$1 DV$2 DV$3 DV$4) . #0#) + (LETT $ (GETREFV 226) . #0#) + (QSETREFV $ 0 |dv$|) + (QSETREFV $ 3 + (LETT |pv$| + (|buildPredVector| 0 0 + (LIST + (|HasCategory| |#2| (QUOTE (|PolynomialFactorizationExplicit|))) + (|HasAttribute| |#2| (QUOTE |canonicalUnitNormal|)) + (|HasCategory| |#2| (QUOTE (|GcdDomain|))) + (|HasCategory| |#2| (QUOTE (|CommutativeRing|))) + (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Float|)))) + (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Float|)))) + (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Integer|)))) + (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Integer|)))) + (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|Pattern| (|Float|))))) + (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|Pattern| (|Float|))))) + (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|))))) + (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|))))) + (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|InputForm|)))) + (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|)))) + (|HasCategory| |#2| (QUOTE (|OrderedSet|))))) + . #0#)) + (|stuffDomainSlots| $) + (QSETREFV $ 6 |#1|) + (QSETREFV $ 7 |#2|) + (QSETREFV $ 8 |#3|) + (QSETREFV $ 9 |#4|) + (COND + ((|testBitVector| |pv$| 4) + (PROGN + (QSETREFV $ 74 + (CONS (|dispatchFunction| |POLYCAT-;resultant;2SVarSetS;15|) $)) + (QSETREFV $ 76 + (CONS (|dispatchFunction| |POLYCAT-;discriminant;SVarSetS;16|) $))))) + (COND + ((|HasCategory| |#2| (QUOTE (|IntegralDomain|))) + (PROGN + (QSETREFV $ 95 + (CONS (|dispatchFunction| |POLYCAT-;reducedSystem;MM;20|) $)) + (QSETREFV $ 102 + (CONS (|dispatchFunction| |POLYCAT-;reducedSystem;MVR;21|) $))))) + (COND + ((|testBitVector| |pv$| 1) + (PROGN + (QSETREFV $ 105 + (CONS (|dispatchFunction| |POLYCAT-;gcdPolynomial;3Sup;22|) $)) + (QSETREFV $ 112 + (CONS + (|dispatchFunction| + |POLYCAT-;solveLinearPolynomialEquation;LSupU;23|) + $)) + (QSETREFV $ 116 + (CONS (|dispatchFunction| |POLYCAT-;factorPolynomial;SupF;24|) $)) + (QSETREFV $ 118 + (CONS + (|dispatchFunction| |POLYCAT-;factorSquareFreePolynomial;SupF;25|) + $)) + (QSETREFV $ 136 (CONS (|dispatchFunction| |POLYCAT-;factor;SF;26|) $)) + (COND + ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|))) + (PROGN + (QSETREFV $ 150 + (CONS (|dispatchFunction| |POLYCAT-;conditionP;MU;27|) $)))))))) + (COND + ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|))) + (PROGN + (QSETREFV $ 152 + (CONS (|dispatchFunction| |POLYCAT-;charthRoot;SU;28|) $))))) + (COND + ((|testBitVector| |pv$| 3) + (PROGN + (COND + ((|HasCategory| |#2| (QUOTE (|EuclideanDomain|))) + (COND + ((|HasCategory| |#2| (QUOTE (|CharacteristicZero|))) + (QSETREFV $ 161 + (CONS (|dispatchFunction| |POLYCAT-;squareFree;SF;31|) $))) + ((QUOTE T) + (QSETREFV $ 161 + (CONS (|dispatchFunction| |POLYCAT-;squareFree;SF;32|) $))))) + ((QUOTE T) + (QSETREFV $ 161 + (CONS (|dispatchFunction| |POLYCAT-;squareFree;SF;33|) $)))) + (QSETREFV $ 169 + (CONS (|dispatchFunction| |POLYCAT-;squareFreePart;2S;34|) $)) + (QSETREFV $ 171 + (CONS (|dispatchFunction| |POLYCAT-;content;SVarSetS;35|) $)) + (QSETREFV $ 177 + (CONS (|dispatchFunction| |POLYCAT-;primitivePart;2S;36|) $)) + (QSETREFV $ 180 + (CONS (|dispatchFunction| |POLYCAT-;primitivePart;SVarSetS;37|) $))))) + (COND + ((|testBitVector| |pv$| 15) + (PROGN + (QSETREFV $ 183 (CONS (|dispatchFunction| |POLYCAT-;<;2SB;38|) $)) + (COND + ((|testBitVector| |pv$| 8) + (COND + ((|testBitVector| |pv$| 7) + (QSETREFV $ 189 + (CONS + (|dispatchFunction| |POLYCAT-;patternMatch;SP2Pmr;39|) + $)))))) + (COND + ((|testBitVector| |pv$| 6) + (COND + ((|testBitVector| |pv$| 5) + (QSETREFV $ 195 (CONS - (QUOTE #()) - (|makeByteWordVec2| 216 - (QUOTE - (1 10 6 0 11 1 6 12 0 13 1 6 9 0 14 1 10 6 0 15 3 6 0 0 16 - 17 18 0 6 0 21 0 7 0 22 2 6 23 0 0 24 1 6 0 0 25 1 6 0 0 - 26 1 6 17 0 28 1 6 16 0 31 1 6 23 0 32 0 6 0 33 0 7 0 34 2 - 6 35 0 9 36 3 6 0 0 9 35 37 1 6 7 0 38 1 7 23 0 39 1 6 0 7 - 40 1 6 12 0 42 2 6 46 0 9 47 2 48 6 0 35 49 3 6 0 0 16 51 - 52 3 6 0 0 16 51 54 1 6 0 9 56 1 6 8 0 59 2 6 0 7 8 60 1 6 - 23 0 62 0 48 0 63 2 48 23 0 0 64 1 48 35 0 65 1 48 6 0 66 - 1 6 35 0 67 1 48 0 0 68 2 16 23 9 0 70 2 6 35 0 16 71 2 48 - 6 0 0 73 3 0 0 0 0 9 74 1 48 6 0 75 2 0 0 0 9 76 1 6 17 0 - 77 1 78 0 17 79 1 78 0 0 80 2 81 0 35 7 82 1 81 83 0 84 2 - 6 7 0 8 85 3 81 7 0 83 7 86 1 88 0 87 89 1 91 90 0 92 2 88 - 0 0 0 93 1 0 88 94 95 1 96 78 0 97 2 78 0 0 0 98 2 81 0 0 - 0 99 2 0 100 94 101 102 2 103 48 48 48 104 2 0 46 46 46 - 105 2 108 106 107 48 109 2 0 110 111 46 112 1 108 113 48 - 114 1 0 115 46 116 1 108 113 48 117 1 0 115 46 118 1 7 119 - 0 120 1 121 7 0 122 1 121 125 0 126 2 129 0 6 128 130 1 113 - 48 0 131 2 6 0 46 9 132 1 113 134 0 135 1 0 119 0 136 1 91 - 0 0 137 0 6 35 138 2 78 0 0 0 139 2 6 51 0 16 140 2 83 141 - 0 0 142 1 6 7 0 143 1 88 0 0 144 1 7 145 94 146 2 81 7 0 - 83 147 2 6 0 0 0 148 2 6 0 0 0 149 1 0 145 94 150 1 7 141 - 0 151 1 0 141 0 152 0 8 0 153 3 6 0 0 9 35 154 2 6 0 0 0 - 155 2 48 156 0 0 157 1 159 129 6 160 1 0 119 0 161 1 162 - 129 6 163 1 6 119 0 164 1 129 6 0 165 1 129 167 0 168 1 0 - 0 0 169 1 48 6 0 170 2 0 0 0 9 171 1 6 7 0 172 2 6 141 0 7 - 173 1 6 174 0 175 1 0 0 0 176 2 6 0 0 9 177 2 6 141 0 0 - 178 2 0 0 0 9 179 2 8 23 0 0 180 2 7 23 0 0 181 2 0 23 0 0 - 182 3 185 183 6 184 183 186 3 0 187 0 184 187 188 3 191 189 - 6 190 189 192 3 0 193 0 190 193 194 1 9 184 0 195 1 7 184 - 0 196 3 199 184 197 198 6 200 1 0 184 0 201 1 9 190 0 202 - 1 7 190 0 203 3 206 190 204 205 6 207 1 0 190 0 208 1 9 - 209 0 210 1 7 209 0 211 3 214 209 212 213 6 215 1 0 209 0 - 216 2 0 35 0 16 72 1 0 35 0 69 1 0 0 0 169 1 0 119 0 161 2 - 0 110 111 46 112 1 0 12 0 58 1 0 9 0 57 3 0 0 0 0 9 74 1 0 - 88 94 95 2 0 100 94 101 102 2 0 0 0 9 179 1 0 0 0 176 1 0 - 17 0 61 3 0 187 0 184 187 188 3 0 193 0 190 193 194 1 0 17 - 0 27 3 0 0 0 16 51 55 3 0 156 0 0 9 158 1 0 29 0 41 1 0 29 - 0 30 1 0 44 0 45 2 0 46 46 46 105 1 0 115 46 118 1 0 115 - 46 116 1 0 119 0 136 2 0 0 0 19 20 2 0 0 0 9 76 1 0 209 0 - 216 1 0 184 0 201 1 0 190 0 208 2 0 0 0 9 171 1 0 145 94 - 150 3 0 0 0 16 51 53 3 0 0 0 9 35 50 1 0 141 0 152 2 0 - 23 0 0 182)))))) - (QUOTE |lookupComplete|))) + (|dispatchFunction| |POLYCAT-;patternMatch;SP2Pmr;40|) + $))))))))) + (COND + ((|testBitVector| |pv$| 12) + (COND + ((|testBitVector| |pv$| 11) + (QSETREFV $ 202 + (CONS (|dispatchFunction| |POLYCAT-;convert;SP;41|) $)))))) + (COND + ((|testBitVector| |pv$| 10) + (COND + ((|testBitVector| |pv$| 9) + (QSETREFV $ 209 + (CONS (|dispatchFunction| |POLYCAT-;convert;SP;42|) $)))))) + (COND + ((|testBitVector| |pv$| 14) + (COND + ((|testBitVector| |pv$| 13) + (QSETREFV $ 217 + (CONS (|dispatchFunction| |POLYCAT-;convert;SIf;43|) $)))))) + $)))) + +(MAKEPROP + (QUOTE |PolynomialCategory&|) + (QUOTE |infovec|) + (LIST (QUOTE + #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|local| |#3|) + (|local| |#4|) (|Equation| 6) (0 . |lhs|) (|Union| 9 (QUOTE "failed")) + (5 . |retractIfCan|) (10 . |retract|) (15 . |rhs|) (|List| 9) (|List| $) + (20 . |eval|) (|List| 221) |POLYCAT-;eval;SLS;1| (27 . |Zero|) + (31 . |Zero|) (|Boolean|) (35 . =) (41 . |leadingMonomial|) + (46 . |reductum|) |POLYCAT-;monomials;SL;2| (51 . |monomials|) + (|Union| 17 (QUOTE "failed")) |POLYCAT-;isPlus;SU;3| (56 . |variables|) + (61 . |monomial?|) (66 . |One|) (70 . |One|) (|NonNegativeInteger|) + (74 . |degree|) (80 . |monomial|) (87 . |leadingCoefficient|) (92 . =) + (98 . |coerce|) |POLYCAT-;isTimes;SU;4| (103 . |mainVariable|) + (|Record| (|:| |var| 9) (|:| |exponent| 35)) + (|Union| 43 (QUOTE "failed")) |POLYCAT-;isExpt;SU;5| + (|SparseUnivariatePolynomial| $) (108 . |univariate|) + (|SparseUnivariatePolynomial| 6) (114 . |coefficient|) + |POLYCAT-;coefficient;SVarSetNniS;6| (|List| 35) (120 . |coefficient|) + |POLYCAT-;coefficient;SLLS;7| (127 . |monomial|) + |POLYCAT-;monomial;SLLS;8| (134 . |coerce|) + |POLYCAT-;retract;SVarSet;9| |POLYCAT-;retractIfCan;SU;10| + (139 . |degree|) (144 . |monomial|) |POLYCAT-;primitiveMonomials;SL;12| + (150 . |ground?|) (155 . |Zero|) (159 . =) (165 . |degree|) + (170 . |leadingCoefficient|) (175 . |totalDegree|) (180 . |reductum|) + |POLYCAT-;totalDegree;SNni;13| (185 . |member?|) (191 . |totalDegree|) + |POLYCAT-;totalDegree;SLNni;14| (197 . |resultant|) (203 . |resultant|) + (210 . |discriminant|) (215 . |discriminant|) (221 . |primitiveMonomials|) + (|List| 6) (226 . |concat|) (231 . |removeDuplicates!|) (|Vector| 7) + (236 . |new|) (|Integer|) (242 . |minIndex|) (247 . |coefficient|) + (253 . |qsetelt!|) (|List| 220) (|Matrix| 7) (260 . |matrix|) + (|List| 78) (|Matrix| 6) (265 . |listOfLists|) (270 . |vertConcat|) + (|Matrix| $) (276 . |reducedSystem|) (|Vector| 6) (281 . |entries|) + (286 . |concat|) (292 . |concat|) + (|Record| (|:| |mat| 88) (|:| |vec| 81)) (|Vector| $) + (298 . |reducedSystem|) (|GeneralPolynomialGcdPackage| 8 9 7 6) + (304 . |gcdPolynomial|) (310 . |gcdPolynomial|) + (|Union| 107 (QUOTE "failed")) (|List| 48) + (|PolynomialFactorizationByRecursion| 7 8 9 6) + (316 . |solveLinearPolynomialEquationByRecursion|) + (|Union| 111 (QUOTE "failed")) (|List| 46) + (322 . |solveLinearPolynomialEquation|) (|Factored| 48) + (328 . |factorByRecursion|) (|Factored| 46) (333 . |factorPolynomial|) + (338 . |factorSquareFreeByRecursion|) + (343 . |factorSquareFreePolynomial|) (|Factored| $) (348 . |factor|) + (|Factored| 7) (353 . |unit|) + (|Union| (QUOTE "nil") (QUOTE "sqfr") (QUOTE "irred") (QUOTE "prime")) + (|Record| (|:| |flg| 123) (|:| |fctr| 7) (|:| |xpnt| 83)) + (|List| 124) (358 . |factorList|) + (|Record| (|:| |flg| 123) (|:| |fctr| 6) (|:| |xpnt| 83)) + (|List| 127) (|Factored| 6) (363 . |makeFR|) (369 . |unit|) + (374 . |multivariate|) + (|Record| (|:| |flg| 123) (|:| |fctr| 48) (|:| |xpnt| 83)) + (|List| 133) (380 . |factorList|) (385 . |factor|) (390 . |transpose|) + (395 . |characteristic|) (399 . |setUnion|) (405 . |degree|) + (|Union| $ (QUOTE "failed")) (411 . |exquo|) (417 . |ground|) + (422 . |transpose|) (|Union| 101 (QUOTE "failed")) (427 . |conditionP|) + (432 . |elt|) (438 . *) (444 . +) (450 . |conditionP|) + (455 . |charthRoot|) (460 . |charthRoot|) (465 . |Zero|) + (469 . |coefficient|) (476 . -) + (|Record| (|:| |quotient| $) (|:| |remainder| $)) + (482 . |monicDivide|) |POLYCAT-;monicDivide;2SVarSetR;30| + (|MultivariateSquareFree| 8 9 7 6) (488 . |squareFree|) + (493 . |squareFree|) (|PolynomialSquareFree| 9 8 7 6) + (498 . |squareFree|) (503 . |squareFree|) (508 . |unit|) + (|Record| (|:| |factor| 6) (|:| |exponent| 83)) (|List| 166) + (513 . |factors|) (518 . |squareFreePart|) (523 . |content|) + (528 . |content|) (534 . |zero?|) (539 . |content|) (544 . |exquo|) + (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $)) + (550 . |unitNormal|) (555 . |primitivePart|) (560 . |content|) + (566 . |exquo|) (572 . |primitivePart|) (578 . <) (584 . <) (590 . <) + (|PatternMatchResult| 83 6) (|Pattern| 83) + (|PatternMatchPolynomialCategory| 83 8 9 7 6) (596 . |patternMatch|) + (|PatternMatchResult| 83 $) (603 . |patternMatch|) + (|PatternMatchResult| (|Float|) 6) (|Pattern| (|Float|)) + (|PatternMatchPolynomialCategory| (|Float|) 8 9 7 6) + (610 . |patternMatch|) (|PatternMatchResult| (|Float|) $) + (617 . |patternMatch|) (624 . |convert|) (629 . |convert|) + (|Mapping| 185 9) (|Mapping| 185 7) + (|PolynomialCategoryLifting| 8 9 7 6 185) (634 . |map|) + (641 . |convert|) (646 . |convert|) (651 . |convert|) (|Mapping| 191 9) + (|Mapping| 191 7) (|PolynomialCategoryLifting| 8 9 7 6 191) + (656 . |map|) (663 . |convert|) (|InputForm|) (668 . |convert|) + (673 . |convert|) (|Mapping| 210 9) (|Mapping| 210 7) + (|PolynomialCategoryLifting| 8 9 7 6 210) (678 . |map|) + (685 . |convert|) (|Record| (|:| |mat| 219) (|:| |vec| (|Vector| 83))) + (|Matrix| 83) (|List| 7) (|Equation| $) (|Union| 83 (QUOTE "failed")) + (|Union| 224 (QUOTE "failed")) (|Fraction| 83) + (|Union| 7 (QUOTE "failed")))) + (QUOTE #(|totalDegree| 690 |squareFreePart| 701 |squareFree| 706 + |solveLinearPolynomialEquation| 711 |retractIfCan| 717 |retract| 722 + |resultant| 727 |reducedSystem| 734 |primitivePart| 745 + |primitiveMonomials| 756 |patternMatch| 761 |monomials| 775 + |monomial| 780 |monicDivide| 787 |isTimes| 794 |isPlus| 799 + |isExpt| 804 |gcdPolynomial| 809 |factorSquareFreePolynomial| 815 + |factorPolynomial| 820 |factor| 825 |eval| 830 |discriminant| 836 + |convert| 842 |content| 857 |conditionP| 863 |coefficient| 868 + |charthRoot| 882 < 887)) + (QUOTE NIL) + (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS (QUOTE #()) + (CONS (QUOTE #()) + (|makeByteWordVec2| 217 (QUOTE + (1 10 6 0 11 1 6 12 0 13 1 6 9 0 14 1 10 6 0 15 3 6 0 0 16 17 18 0 6 0 + 21 0 7 0 22 2 6 23 0 0 24 1 6 0 0 25 1 6 0 0 26 1 6 17 0 28 1 6 16 0 + 31 1 6 23 0 32 0 6 0 33 0 7 0 34 2 6 35 0 9 36 3 6 0 0 9 35 37 1 6 7 + 0 38 2 7 23 0 0 39 1 6 0 7 40 1 6 12 0 42 2 6 46 0 9 47 2 48 6 0 35 + 49 3 6 0 0 16 51 52 3 6 0 0 16 51 54 1 6 0 9 56 1 6 8 0 59 2 6 0 7 8 + 60 1 6 23 0 62 0 48 0 63 2 48 23 0 0 64 1 48 35 0 65 1 48 6 0 66 1 6 + 35 0 67 1 48 0 0 68 2 16 23 9 0 70 2 6 35 0 16 71 2 48 6 0 0 73 3 0 + 0 0 0 9 74 1 48 6 0 75 2 0 0 0 9 76 1 6 17 0 77 1 78 0 17 79 1 78 0 + 0 80 2 81 0 35 7 82 1 81 83 0 84 2 6 7 0 8 85 3 81 7 0 83 7 86 1 88 + 0 87 89 1 91 90 0 92 2 88 0 0 0 93 1 0 88 94 95 1 96 78 0 97 2 78 0 + 0 0 98 2 81 0 0 0 99 2 0 100 94 101 102 2 103 48 48 48 104 2 0 46 46 + 46 105 2 108 106 107 48 109 2 0 110 111 46 112 1 108 113 48 114 1 0 + 115 46 116 1 108 113 48 117 1 0 115 46 118 1 7 119 0 120 1 121 7 0 + 122 1 121 125 0 126 2 129 0 6 128 130 1 113 48 0 131 2 6 0 46 9 132 + 1 113 134 0 135 1 0 119 0 136 1 91 0 0 137 0 6 35 138 2 78 0 0 0 139 + 2 6 51 0 16 140 2 83 141 0 0 142 1 6 7 0 143 1 88 0 0 144 1 7 145 94 + 146 2 81 7 0 83 147 2 6 0 0 0 148 2 6 0 0 0 149 1 0 145 94 150 1 7 + 141 0 151 1 0 141 0 152 0 8 0 153 3 6 0 0 9 35 154 2 6 0 0 0 155 2 + 48 156 0 0 157 1 159 129 6 160 1 0 119 0 161 1 162 129 6 163 1 6 119 + 0 164 1 129 6 0 165 1 129 167 0 168 1 0 0 0 169 1 48 6 0 170 2 0 0 0 + 9 171 1 6 23 0 172 1 6 7 0 173 2 6 141 0 7 174 1 6 175 0 176 1 0 0 0 + 177 2 6 0 0 9 178 2 6 141 0 0 179 2 0 0 0 9 180 2 8 23 0 0 181 2 7 23 + 0 0 182 2 0 23 0 0 183 3 186 184 6 185 184 187 3 0 188 0 185 188 189 + 3 192 190 6 191 190 193 3 0 194 0 191 194 195 1 9 185 0 196 1 7 185 + 0 197 3 200 185 198 199 6 201 1 0 185 0 202 1 9 191 0 203 1 7 191 0 + 204 3 207 191 205 206 6 208 1 0 191 0 209 1 9 210 0 211 1 7 210 0 + 212 3 215 210 213 214 6 216 1 0 210 0 217 2 0 35 0 16 72 1 0 35 0 69 + 1 0 0 0 169 1 0 119 0 161 2 0 110 111 46 112 1 0 12 0 58 1 0 9 0 57 + 3 0 0 0 0 9 74 1 0 88 94 95 2 0 100 94 101 102 2 0 0 0 9 180 1 0 0 0 + 177 1 0 17 0 61 3 0 188 0 185 188 189 3 0 194 0 191 194 195 1 0 17 0 + 27 3 0 0 0 16 51 55 3 0 156 0 0 9 158 1 0 29 0 41 1 0 29 0 30 1 0 44 + 0 45 2 0 46 46 46 105 1 0 115 46 118 1 0 115 46 116 1 0 119 0 136 2 + 0 0 0 19 20 2 0 0 0 9 76 1 0 210 0 217 1 0 185 0 202 1 0 191 0 209 2 + 0 0 0 9 171 1 0 145 94 150 3 0 0 0 16 51 53 3 0 0 0 9 35 50 1 0 141 + 0 152 2 0 23 0 0 183)))))) + (QUOTE |lookupComplete|))) @ \section{package POLYLIFT PolynomialCategoryLifting} diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet index 92c1dc5..b286aa6 100644 --- a/src/input/Makefile.pamphlet +++ b/src/input/Makefile.pamphlet @@ -287,7 +287,7 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress alist.regress \ arrows.regress assign.regress atansqrt.regress \ asec.regress bags.regress bbtree.regress \ binary.regress bop.regress bstree.regress bouquet.regress \ - bug100.regress bug10069.regress \ + bug100.regress bug103.regress bug10069.regress \ bugs.regress bug10312.regress bug6357.regress bug9057.regress \ calcprob.regress \ calculus2.regress calculus.regress cardinal.regress card.regress \ @@ -502,7 +502,7 @@ FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input ${OUT}/algfacob.input \ ${OUT}/bags.input ${OUT}/bbtree.input ${OUT}/bern.input \ ${OUT}/bernpoly.input ${OUT}/binary.input ${OUT}/bop.input \ ${OUT}/bouquet.input ${OUT}/bstree.input ${OUT}/bug6357.input \ - ${OUT}/bug9057.input ${OUT}/bug100.input \ + ${OUT}/bug9057.input ${OUT}/bug100.input ${OUT}/bug103.input \ ${OUT}/bug10069.input ${OUT}/bug10312.input \ ${OUT}/calcprob.input ${OUT}/calculus.input \ ${OUT}/cardinal.input ${OUT}/card.input ${OUT}/carten.input \ @@ -678,7 +678,7 @@ DOCFILES= \ ${DOC}/bernpoly.input.dvi ${DOC}/binary.input.dvi \ ${DOC}/bop.input.dvi ${DOC}/bouquet.input.dvi \ ${DOC}/bstree.input.dvi ${DOC}/bug10069.input.dvi \ - ${DOC}/bug100.input.dvi \ + ${DOC}/bug100.input.dvi ${DOC}/bug103.input.dvi \ ${DOC}/bug10312.input.dvi ${DOC}/bug6357.input.dvi \ ${DOC}/bug9057.input.dvi ${DOC}/bugs.input.dvi \ ${DOC}/c02aff.input.dvi ${DOC}/c02agf.input.dvi \ diff --git a/src/input/bug103.input.pamphlet b/src/input/bug103.input.pamphlet new file mode 100644 index 0000000..59e6838 --- /dev/null +++ b/src/input/bug103.input.pamphlet @@ -0,0 +1,82 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input bug103.input} +\author{Timothy Daly} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +@ +The call +\begin{verbatim} + solve(z=z,z) +\end{verbatim} +fails with: + \begin{verbatim} + >> Error detected within library code: + (1 . failed) cannot be coerced to mode (Polynomial (Integer)) +\end{verbatim} + +The bug fix, proposed by William, changes {\tt exquo} in EuclideanDomain +to add the {\tt zero? x} test. +\begin{verbatim} + x exquo y == + zero? x => 0 + zero? y => "failed" + qr:=divide(x,y) + zero?(qr.remainder) => qr.quotient + "failed" +\end{verbatim} +This change was made but does not affect the behavior of the bug. + +This fix, proposed by Martin, changes {\tt primitePart} in +{\tt PolynomialCategory} to add the {\tt zero?} test. +\begin{verbatim} + primitivePart p == + zero? p => p + unitNormal((p exquo content p) ::%).canonical + primitivePart(p,v) == + zero? p => p + unitNormal((p exquo content(p,v)) ::%).canonical +\end{verbatim} +succeeds with: + \begin{verbatim} + [0= 0] + Type: List Equation Fraction Polynomial Integer +\end{verbatim} +<<*>>= +)spool bug103.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +solve(z=z,z) +--R +--R +--R (1) [0= 0] +--R Type: List Equation Fraction Polynomial Integer +--E 1 +@ +If we substitute z for %I we get: +\begin{verbatim} + z + ++ a b + | (z + 1) dz + ++ + +\end{verbatim} +which is the original input integral. +<<*>>= +)spool +)lisp (bye) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document}