
(/VERSIONCHECK 2) 

(DEFUN |FSPRMELT;F2P| (|f| |l| $)
  (SPADCALL
      (SPADCALL (SPADCALL (SPADCALL |f| (QREFELT $ 9)) (QREFELT $ 10))
          (QREFELT $ 11))
      (SPADCALL (CONS #'|FSPRMELT;F2P!0| (VECTOR $ |l|))
          (CONS #'|FSPRMELT;F2P!1| $) (SPADCALL |f| (QREFELT $ 15))
          (QREFELT $ 20))
      (QREFELT $ 21))) 

(DEFUN |FSPRMELT;F2P!1| (|#1| $)
  (SPADCALL (SPADCALL |#1| (QREFELT $ 12)) (QREFELT $ 14))) 

(DEFUN |FSPRMELT;F2P!0| (|#1| $$)
  (|FSPRMELT;K2P| |#1| (QREFELT $$ 1) (QREFELT $$ 0))) 

(DEFUN |FSPRMELT;K2P| (|k| |l| $)
  (PROG (|v| #0=#:G1831)
    (RETURN
      (SEQ (EXIT (SEQ (SEQ (LETT |v| (SPADCALL |k| (QREFELT $ 24))
                                 . #1=(|FSPRMELT;K2P|))
                           (EXIT (COND
                                   ((QEQCAR |v| 0)
                                    (COND
                                      ((SPADCALL (QCDR |v|) |l|
                                        (QREFELT $ 28))
                                       (PROGN
                                         (LETT #0#
                                          (SPADCALL (QCDR |v|)
                                           (QREFELT $ 29)) . #1#)
                                         (GO #0#))))))))
                      (EXIT (SPADCALL (SPADCALL |k| (QREFELT $ 31))
                                (QREFELT $ 14)))))
           #0# (EXIT #0#))))) 

(DEFUN |FSPRMELT;primitiveElement;LR;3| (|l| $)
  (PROG (|uu| |u| #0=#:G1846 |i| #1=#:G1847 |vars| #2=#:G1848
              #3=#:G1849 |vv| #4=#:G1850 #5=#:G1851 |kers| #6=#:G1852
              |v| #7=#:G1854 |k| #8=#:G1853 |pols| |rec| |a| #9=#:G1856
              |c| #10=#:G1855 #11=#:G1842 #12=#:G1840 #13=#:G1841)
    (RETURN
      (SEQ (LETT |u|
                 (SPADCALL
                     (LETT |uu| (SPADCALL (QREFELT $ 32))
                           . #14=(|FSPRMELT;primitiveElement;LR;3|))
                     (QREFELT $ 34)) . #14#)
           (LETT |vars|
                 (PROGN
                   (LETT #0# NIL . #14#)
                   (SEQ (LETT |i| 1 . #14#)
                        (LETT #1# (LENGTH |l|) . #14#) G190
                        (COND ((QSGREATERP |i| #1#) #15=(GO G191)))
                        (SEQ (EXIT (LETT #0#
                                    (CONS
                                     (SPADCALL
                                      (STRCONC |u| (STRINGIMAGE |i|))
                                      (QREFELT $ 35))
                                     #0#) . #14#)))
                        (LETT |i| (QSADD1 |i|) . #14#) #16=(GO G190)
                        G191 (EXIT (NREVERSE0 #0#)))) . #14#)
           (LETT |vv|
                 (PROGN
                   (LETT #2# NIL . #14#)
                   (SEQ (LETT |v| NIL . #14#) (LETT #3# |vars| . #14#)
                        G190
                        (COND
                          ((OR (ATOM #3#)
                               (PROGN (LETT |v| (CAR #3#) . #14#) NIL))
                           #15#))
                        (SEQ (EXIT (LETT #2#
                                    (CONS
                                     (SPADCALL
                                      (SPADCALL |v| (QREFELT $ 36))
                                      (QREFELT $ 31))
                                     #2#) . #14#)))
                        (LETT #3# (CDR #3#) . #14#) #16# G191
                        (EXIT (NREVERSE0 #2#)))) . #14#)
           (LETT |kers|
                 (PROGN
                   (LETT #4# NIL . #14#)
                   (SEQ (LETT |a| NIL . #14#) (LETT #5# |l| . #14#)
                        G190
                        (COND
                          ((OR (ATOM #5#)
                               (PROGN (LETT |a| (CAR #5#) . #14#) NIL))
                           #15#))
                        (SEQ (EXIT (LETT #4#
                                    (CONS (SPADCALL |a| (QREFELT $ 37))
                                     #4#) . #14#)))
                        (LETT #5# (CDR #5#) . #14#) #16# G191
                        (EXIT (NREVERSE0 #4#)))) . #14#)
           (LETT |pols|
                 (PROGN
                   (LETT #6# NIL . #14#)
                   (SEQ (LETT |v| NIL . #14#) (LETT #7# |vv| . #14#)
                        (LETT |k| NIL . #14#) (LETT #8# |kers| . #14#)
                        G190
                        (COND
                          ((OR (ATOM #8#)
                               (PROGN (LETT |k| (CAR #8#) . #14#) NIL)
                               (ATOM #7#)
                               (PROGN (LETT |v| (CAR #7#) . #14#) NIL))
                           #15#))
                        (SEQ (EXIT (LETT #6#
                                    (CONS
                                     (|FSPRMELT;F2P|
                                      (SPADCALL
                                       (SPADCALL
                                        (SPADCALL
                                         (SPADCALL |k| (QREFELT $ 39))
                                         |v| (QREFELT $ 41))
                                        |kers| (QREFELT $ 44))
                                       |kers| |vv| (QREFELT $ 47))
                                      |vars| $)
                                     #6#) . #14#)))
                        (LETT #8#
                              (PROG1 (CDR #8#)
                                (LETT #7# (CDR #7#) . #14#)) . #14#)
                        #16# G191 (EXIT (NREVERSE0 #6#)))) . #14#)
           (LETT |rec|
                 (SPADCALL |pols| |vars| |uu| (QREFELT $ 51)) . #14#)
           (EXIT (VECTOR (PROGN
                           (LETT #13# NIL . #14#)
                           (SEQ (LETT |a| NIL . #14#)
                                (LETT #9# |l| . #14#)
                                (LETT |c| NIL . #14#)
                                (LETT #10# (QVELT |rec| 0) . #14#) G190
                                (COND
                                  ((OR (ATOM #10#)
                                    (PROGN
                                      (LETT |c| (CAR #10#) . #14#)
                                      NIL)
                                    (ATOM #9#)
                                    (PROGN
                                      (LETT |a| (CAR #9#) . #14#)
                                      NIL))
                                   #15#))
                                (SEQ (EXIT
                                      (PROGN
                                        (LETT #11#
                                         (SPADCALL |c| |a|
                                          (QREFELT $ 53)) . #14#)
                                        (COND
                                          (#13#
                                           (LETT #12#
                                            (SPADCALL #12# #11#
                                             (QREFELT $ 54)) . #14#))
                                          ('T
                                           (PROGN
                                             (LETT #12# #11# . #14#)
                                             (LETT #13# 'T . #14#)))))))
                                (LETT #10#
                                      (PROG1 (CDR #10#)
                                        (LETT #9# (CDR #9#) . #14#)) . #14#)
                                #16# G191 (EXIT NIL))
                           (COND
                             (#13# #12#)
                             ('T (|spadConstant| $ 55))))
                         (QVELT |rec| 1) (QVELT |rec| 2))))))) 

(DEFUN |FSPRMELT;F2UP| (|p| |k| |q| $)
  (PROG (|f| |ans|)
    (RETURN
      (SEQ (LETT |ans| (|spadConstant| $ 59) . #0=(|FSPRMELT;F2UP|))
           (SEQ G190
                (COND
                  ((NULL (COND
                           ((SPADCALL |p| (QREFELT $ 60)) 'NIL)
                           ('T 'T)))
                   (GO G191)))
                (SEQ (LETT |f|
                           (SPADCALL (SPADCALL |p| (QREFELT $ 61)) |k|
                               (QREFELT $ 63)) . #0#)
                     (LETT |ans|
                           (SPADCALL |ans|
                               (SPADCALL
                                   (SPADCALL
                                    (SPADCALL |f| (QREFELT $ 65)) |q|
                                    (QREFELT $ 66))
                                   (SPADCALL
                                    (SPADCALL
                                     (SPADCALL
                                      (SPADCALL |f| (QREFELT $ 67))
                                      (QREFELT $ 68))
                                     (QREFELT $ 11))
                                    (SPADCALL |p| (QREFELT $ 70))
                                    (QREFELT $ 71))
                                   (QREFELT $ 72))
                               (QREFELT $ 73)) . #0#)
                     (EXIT (LETT |p|
                                 (SPADCALL |p| (QREFELT $ 74)) . #0#)))
                NIL (GO G190) G191 (EXIT NIL))
           (EXIT |ans|))))) 

(DEFUN |FSPRMELT;primitiveElement;2FR;5| (|a1| |a2| $)
  (PROG (|aa| |a| |bb| |b| |l| |k1| |p1| |p2| |rec| |w| |g| |c2g| |ic1|
              |gg| |kg| |r| |q|)
    (RETURN
      (SEQ (LETT |a|
                 (SPADCALL
                     (LETT |aa| (SPADCALL (QREFELT $ 32))
                           . #0=(|FSPRMELT;primitiveElement;2FR;5|))
                     (QREFELT $ 75)) . #0#)
           (LETT |b|
                 (SPADCALL (LETT |bb| (SPADCALL (QREFELT $ 32)) . #0#)
                     (QREFELT $ 75)) . #0#)
           (LETT |l| (LIST |aa| |bb|) . #0#)
           (LETT |p1|
                 (SPADCALL
                     (LETT |k1| (SPADCALL |a1| (QREFELT $ 37)) . #0#)
                     (QREFELT $ 39)) . #0#)
           (LETT |p2|
                 (SPADCALL
                     (CONS #'|FSPRMELT;primitiveElement;2FR;5!0|
                           (VECTOR |a| $ |k1|))
                     (SPADCALL (SPADCALL |a2| (QREFELT $ 37))
                         (QREFELT $ 39))
                     (QREFELT $ 77)) . #0#)
           (LETT |rec|
                 (SPADCALL
                     (|FSPRMELT;F2P| (SPADCALL |p1| |a| (QREFELT $ 41))
                         |l| $)
                     |aa|
                     (|FSPRMELT;F2P| (SPADCALL |p2| |b| (QREFELT $ 41))
                         |l| $)
                     |bb| (QREFELT $ 79)) . #0#)
           (LETT |w|
                 (SPADCALL
                     (SPADCALL (QVELT |rec| 0) |a1| (QREFELT $ 53))
                     (SPADCALL (QVELT |rec| 1) |a2| (QREFELT $ 53))
                     (QREFELT $ 54)) . #0#)
           (LETT |g| (SPADCALL (QVELT |rec| 2) (QREFELT $ 80)) . #0#)
           (EXIT (COND
                   ((ZEROP (QVELT |rec| 0))
                    (SEQ (LETT |c2g|
                               (SPADCALL
                                   (SPADCALL
                                    (SPADCALL (QVELT |rec| 1)
                                     (QREFELT $ 81))
                                    (QREFELT $ 11))
                                   |g| (QREFELT $ 82)) . #0#)
                         (LETT |r|
                               (SPADCALL |p1|
                                   (SPADCALL
                                    (SPADCALL |p2| |c2g|
                                     (QREFELT $ 41))
                                    (SPADCALL |a| (QREFELT $ 37)) |p1|
                                    (QREFELT $ 84))
                                   (QREFELT $ 85)) . #0#)
                         (LETT |q|
                               (|FSPRMELT;getpoly| |r| |g| $) . #0#)
                         (EXIT (VECTOR |w| |q|
                                       (SPADCALL (QVELT |rec| 1)
                                        (SPADCALL (|spadConstant| $ 87)
                                         1 (QREFELT $ 71))
                                        (QREFELT $ 88))
                                       (QVELT |rec| 2)))))
                   ('T
                    (SEQ (LETT |ic1|
                               (SPADCALL
                                   (SPADCALL (QVELT |rec| 0)
                                    (QREFELT $ 81))
                                   (QREFELT $ 11)) . #0#)
                         (LETT |gg|
                               (SPADCALL
                                   (SPADCALL
                                    (SPADCALL |ic1| |g| (QREFELT $ 82))
                                    (QREFELT $ 89))
                                   (SPADCALL
                                    (SPADCALL (QVELT |rec| 1) |ic1|
                                     (QREFELT $ 53))
                                    1 (QREFELT $ 71))
                                   (QREFELT $ 90)) . #0#)
                         (LETT |kg|
                               (SPADCALL |g| (QREFELT $ 37)) . #0#)
                         (LETT |r|
                               (SPADCALL
                                   (SPADCALL |p1| |gg| (QREFELT $ 66))
                                   (|FSPRMELT;F2UP| |p2|
                                    (SPADCALL |a| (QREFELT $ 37)) |gg|
                                    $)
                                   (QREFELT $ 85)) . #0#)
                         (LETT |q|
                               (|FSPRMELT;getpoly| |r| |g| $) . #0#)
                         (EXIT (VECTOR |w|
                                       (SPADCALL
                                        (SPADCALL |ic1| 1
                                         (QREFELT $ 71))
                                        (SPADCALL
                                         (SPADCALL (QVELT |rec| 1)
                                          |ic1| (QREFELT $ 53))
                                         |q| (QREFELT $ 91))
                                        (QREFELT $ 90))
                                       |q| (QVELT |rec| 2))))))))))) 

(DEFUN |FSPRMELT;primitiveElement;2FR;5!0| (|#1| $$)
  (PROG (|k1| $)
    (LETT |k1| (QREFELT $$ 2) . #0=(|FSPRMELT;primitiveElement;2FR;5|))
    (LETT $ (QREFELT $$ 1) . #0#)
    (RETURN
      (PROGN
        (SPADCALL (SPADCALL |#1| (LIST |k1|) (QREFELT $ 44))
            (LIST |k1|) (LIST (QREFELT $$ 0)) (QREFELT $ 47)))))) 

(DEFUN |FSPRMELT;getpoly| (|r| |g| $)
  (PROG (|k|)
    (RETURN
      (SEQ (COND
             ((EQL (SPADCALL |r| (QREFELT $ 70)) 1)
              (SEQ (LETT |k| (SPADCALL |g| (QREFELT $ 37))
                         |FSPRMELT;getpoly|)
                   (EXIT (SPADCALL
                             (SPADCALL
                                 (SPADCALL
                                     (SPADCALL |r| 0 (QREFELT $ 95))
                                     (SPADCALL |r| (QREFELT $ 61))
                                     (QREFELT $ 96))
                                 (QREFELT $ 97))
                             |k| (SPADCALL |k| (QREFELT $ 39))
                             (QREFELT $ 84)))))
             ('T (|error| "GCD not of degree 1"))))))) 

(DEFUN |FunctionSpacePrimitiveElement| (&REST #0=#:G1874)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1875)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (|devaluateList| #0#)
                       (HGET |$ConstructorCache|
                             '|FunctionSpacePrimitiveElement|)
                       '|domainEqualList|)
                   . #2=(|FunctionSpacePrimitiveElement|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (APPLY (|function|
                                 |FunctionSpacePrimitiveElement;|)
                             #0#)
                 (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache|
                        '|FunctionSpacePrimitiveElement|))))))))))) 

(DEFUN |FunctionSpacePrimitiveElement;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|FunctionSpacePrimitiveElement|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT |dv$|
              (LIST '|FunctionSpacePrimitiveElement| DV$1 DV$2) . #0#)
        (LETT $ (GETREFV 98) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| |#2|
                                '(|AlgebraicallyClosedField|)))) . #0#))
        (|haddProp| |$ConstructorCache|
            '|FunctionSpacePrimitiveElement| (LIST DV$1 DV$2)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (COND
          ((|testBitVector| |pv$| 1)
           (PROGN
             (QSETREFV $ 93
                 (CONS (|dispatchFunction|
                           |FSPRMELT;primitiveElement;2FR;5|)
                       $)))))
        $)))) 

(MAKEPROP '|FunctionSpacePrimitiveElement| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|SparseMultivariatePolynomial| 6 30) (0 . |denom|)
             (5 . |coerce|) (10 . |inv|) (15 . |coerce|)
             (|Polynomial| 7) (20 . |coerce|) (25 . |numer|)
             (|Mapping| 13 23) (|Mapping| 13 6)
             (|SparseMultivariatePolynomial| 6 23)
             (|PolynomialCategoryLifting| (|IndexedExponents| 23) 23 6
                 18 13)
             (30 . |map|) (37 . *) (|Union| 26 '"failed") (|Kernel| 7)
             (43 . |symbolIfCan|) (|Boolean|) (|Symbol|) (|List| 26)
             (48 . |member?|) (54 . |coerce|) (|Kernel| $)
             (59 . |coerce|) (64 . |new|) (|String|) (68 . |string|)
             (73 . |coerce|) (78 . |kernel|) (83 . |retract|)
             (|SparseUnivariatePolynomial| $) (88 . |minPoly|)
             (|SparseUnivariatePolynomial| 7) (93 . |elt|) (|List| 23)
             (|AlgebraicManipulations| 6 7) (99 . |ratDenom|)
             (|List| 30) (|List| $) (105 . |subst|)
             (|Record| (|:| |coef| (|List| 52))
                 (|:| |poly| (|List| 40)) (|:| |prim| 40))
             (|List| 13) (|PrimitiveElement| 7)
             (112 . |primitiveElement|) (|Integer|) (119 . *) (125 . +)
             (131 . |Zero|)
             (|Record| (|:| |primelt| 7) (|:| |poly| (|List| 40))
                 (|:| |prim| 40))
             (|List| 7) |FSPRMELT;primitiveElement;LR;3| (135 . |Zero|)
             (139 . |zero?|) (144 . |leadingCoefficient|)
             (|Fraction| 38) (149 . |univariate|) (|Fraction| 40)
             (155 . |numer|) (160 . |elt|) (166 . |denom|)
             (171 . |retract|) (|NonNegativeInteger|) (176 . |degree|)
             (181 . |monomial|) (187 . *) (193 . +) (199 . |reductum|)
             (204 . |coerce|) (|Mapping| 7 7) (209 . |map|)
             (|Record| (|:| |coef1| 52) (|:| |coef2| 52)
                 (|:| |prim| 40))
             (215 . |primitiveElement|) (223 . |rootOf|)
             (228 . |coerce|) (233 . *)
             (|PolynomialCategoryQuotientFunctions|
                 (|IndexedExponents| 23) 23 6 18 7)
             (239 . |univariate|) (246 . |gcd|) (252 . |One|)
             (256 . |One|) (260 . *) (266 . |coerce|) (271 . -)
             (277 . *)
             (|Record| (|:| |primelt| 7) (|:| |pol1| 40)
                 (|:| |pol2| 40) (|:| |prim| 40))
             (283 . |primitiveElement|) (289 . |Zero|)
             (293 . |coefficient|) (299 . /) (305 . -))
          '#(|primitiveElement| 310) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 97
                                '(1 7 8 0 9 1 7 0 8 10 1 7 0 0 11 1 7 0
                                  6 12 1 13 0 7 14 1 7 8 0 15 3 19 13
                                  16 17 18 20 2 13 0 7 0 21 1 23 22 0
                                  24 2 27 25 26 0 28 1 13 0 26 29 1 7 0
                                  30 31 0 26 0 32 1 26 33 0 34 1 26 0
                                  33 35 1 23 0 26 36 1 7 30 0 37 1 7 38
                                  30 39 2 40 7 0 7 41 2 43 7 7 42 44 3
                                  7 0 0 45 46 47 3 50 48 49 27 26 51 2
                                  7 0 52 0 53 2 7 0 0 0 54 0 7 0 55 0
                                  40 0 59 1 40 25 0 60 1 40 7 0 61 2 7
                                  62 0 30 63 1 64 40 0 65 2 40 0 0 0 66
                                  1 64 40 0 67 1 40 7 0 68 1 40 69 0 70
                                  2 40 0 7 69 71 2 40 0 0 0 72 2 40 0 0
                                  0 73 1 40 0 0 74 1 7 0 26 75 2 40 0
                                  76 0 77 4 50 78 13 26 13 26 79 1 7 0
                                  38 80 1 7 0 52 81 2 7 0 0 0 82 3 83
                                  40 7 23 40 84 2 40 0 0 0 85 0 6 0 86
                                  0 7 0 87 2 40 0 52 0 88 1 40 0 7 89 2
                                  40 0 0 0 90 2 40 0 7 0 91 2 0 92 7 7
                                  93 0 6 0 94 2 40 7 0 69 95 2 7 0 0 0
                                  96 1 7 0 0 97 2 1 92 7 7 93 1 0 56 57
                                  58)))))
          '|lookupComplete|)) 
