axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] 20070916.01.tpd.patch (bug 103 fix)


From: daly
Subject: [Axiom-developer] 20070916.01.tpd.patch (bug 103 fix)
Date: Sun, 16 Sep 2007 17:52:37 -0500

The call

  solve(z=z,z)

fails with:

   >> Error detected within library code:
   (1 . failed) cannot be coerced to mode (Polynomial (Integer))


The bug fix, proposed by William, changes exquo in EuclideanDomain
to add the zero? x test.

      x exquo y ==
         zero? x => 0
         zero? y => "failed"
         qr:=divide(x,y)
         zero?(qr.remainder) => qr.quotient
         "failed"

This change was made but does not affect the behavior of the bug.

This fix, proposed by Martin, changes primitivePart in 
PolynomialCategory to add the zero? test.

      primitivePart p ==
        zero? p => p
        unitNormal((p exquo content p) ::%).canonical
      primitivePart(p,v) ==
        zero? p => p
        unitNormal((p exquo content(p,v)) ::%).canonical

succeeds with:

  [0= 0]
                Type: List Equation Fraction Polynomial Integer
========================================================================
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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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}
 <<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\&}
 <<EuclideanDomainAmp>>=
-(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}
 <<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|))) 
 
 @
 <<EUCDOM-.lsp BOOTSTRAP>>=
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.
 
 <<POLYCAT.lsp BOOTSTRAP>>=
 
-(|/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}




reply via email to

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