
(/VERSIONCHECK 2) 

(DEFUN |MODMON;setPoly;2Rep;1| (|mon| $)
  (PROG (#1=#:G687 |i| #2=#:G674 |copymon| |oldm|)
    (RETURN
     (SEQ
      (COND ((SPADCALL |mon| (QREFELT $ 12) (QREFELT $ 27)) |mon|)
            ('T
             (SEQ (LETT |oldm| (QREFELT $ 12) . #3=(|MODMON;setPoly;2Rep;1|))
                  (COND
                   ((NULL
                     (SPADCALL (SPADCALL |mon| (QREFELT $ 28))
                               (|spadConstant| $ 9) (QREFELT $ 29)))
                    (EXIT (|error| "polynomial must be monic"))))
                  (LETT |copymon| (|spadConstant| $ 20) . #3#)
                  (SEQ G190
                       (COND
                        ((NULL
                          (COND ((SPADCALL |mon| (QREFELT $ 30)) 'NIL)
                                ('T 'T)))
                         #4=(GO G191)))
                       (SEQ
                        (LETT |copymon|
                              (SPADCALL
                               (SPADCALL (SPADCALL |mon| (QREFELT $ 28))
                                         (SPADCALL |mon| (QREFELT $ 31))
                                         (QREFELT $ 11))
                               |copymon| (QREFELT $ 32))
                              . #3#)
                        (EXIT
                         (LETT |mon| (SPADCALL |mon| (QREFELT $ 33)) . #3#)))
                       NIL #5=(GO G190) G191 (EXIT NIL))
                  (SETELT $ 12 |copymon|)
                  (SETELT $ 14 (SPADCALL (QREFELT $ 12) (QREFELT $ 13)))
                  (SETELT $ 15
                          (PROG1 (LETT #2# (- (QREFELT $ 14) 1) . #3#)
                            (|check-subtype| (>= #2# 0) '(|NonNegativeInteger|)
                                             #2#)))
                  (SETELT $ 18
                          (+ (SPADCALL 2 (QREFELT $ 15) (QREFELT $ 17)) 1))
                  (SETELT $ 24 (SPADCALL (QREFELT $ 35)))
                  (COND
                   ((QREFELT $ 19)
                    (SEQ
                     (COND
                      ((< 1 (SPADCALL |oldm| (QREFELT $ 31)))
                       (COND
                        ((NULL
                          (QEQCAR
                           (SPADCALL |oldm| (QREFELT $ 12) (QREFELT $ 37)) 1))
                         (EXIT
                          (SEQ (LETT |i| 1 . #3#)
                               (LETT #1# (QREFELT $ 15) . #3#) G190
                               (COND ((QSGREATERP |i| #1#) #4#))
                               (SEQ
                                (EXIT
                                 (SPADCALL (QREFELT $ 25) |i|
                                           (SPADCALL
                                            (SPADCALL
                                             (SPADCALL (QREFELT $ 25) |i|
                                                       (QREFELT $ 39))
                                             (QREFELT $ 40))
                                            (QREFELT $ 41))
                                           (QREFELT $ 42))))
                               (LETT |i| (QSADD1 |i|) . #3#) #5# G191
                               (EXIT NIL)))))))
                     (EXIT
                      (SETELT $ 25 (|MODMON;computeFrobeniusPowers| $))))))
                  (EXIT (QREFELT $ 12))))))))) 

(DEFUN |MODMON;modulus;Rep;2| ($) (QREFELT $ 12)) 

(DEFUN |MODMON;size;Nni;3| ($) (* (QREFELT $ 14) (SPADCALL (QREFELT $ 45)))) 

(DEFUN |MODMON;random;$;4| ($)
  (PROG (#1=#:G693 |i| #2=#:G692)
    (RETURN
     (SEQ
      (SPADCALL
       (PROGN
        (LETT #2# (GETREFV (QSADD1 #3=(QREFELT $ 15)))
              . #4=(|MODMON;random;$;4|))
        (SEQ (LETT |i| 0 . #4#) (LETT #1# #3# . #4#) G190
             (COND ((QSGREATERP |i| #1#) (GO G191)))
             (SEQ (EXIT (SETELT #2# |i| (SPADCALL (QREFELT $ 47)))))
             (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
        #2#)
       (QREFELT $ 49)))))) 

(DEFUN |MODMON;Zero;$;5| ($) (|spadConstant| $ 51)) 

(DEFUN |MODMON;One;$;6| ($) (|spadConstant| $ 52)) 

(DEFUN |MODMON;*;R2$;7| (|c| |x| $) (SPADCALL |c| |x| (QREFELT $ 53))) 

(DEFUN |MODMON;*;I2$;8| (|n| |x| $)
  (SPADCALL (SPADCALL |n| (QREFELT $ 55)) |x| (QREFELT $ 53))) 

(DEFUN |MODMON;coerce;R$;9| (|c| $) (SPADCALL |c| 0 (QREFELT $ 11))) 

(DEFUN |MODMON;coerce;$Of;10| (|x| $) (SPADCALL |x| (QREFELT $ 59))) 

(DEFUN |MODMON;coefficient;$NniR;11| (|x| |e| $)
  (SPADCALL |x| |e| (QREFELT $ 61))) 

(DEFUN |MODMON;reductum;2$;12| (|x| $) (SPADCALL |x| (QREFELT $ 63))) 

(DEFUN |MODMON;leadingCoefficient;$R;13| (|x| $) (SPADCALL |x| (QREFELT $ 64))) 

(DEFUN |MODMON;degree;$Nni;14| (|x| $) (SPADCALL |x| (QREFELT $ 13))) 

(PUT '|MODMON;lift;$Rep;15| '|SPADreplace| '(XLAM (|x|) |x|)) 

(DEFUN |MODMON;lift;$Rep;15| (|x| $) |x|) 

(DEFUN |MODMON;reduce;Rep$;16| (|p| $)
  (QCDR (SPADCALL |p| (QREFELT $ 12) (QREFELT $ 66)))) 

(DEFUN |MODMON;coerce;Rep$;17| (|p| $) (SPADCALL |p| (QREFELT $ 41))) 

(DEFUN |MODMON;=;2$B;18| (|x| |y| $) (SPADCALL |x| |y| (QREFELT $ 27))) 

(DEFUN |MODMON;+;3$;19| (|x| |y| $) (SPADCALL |x| |y| (QREFELT $ 69))) 

(DEFUN |MODMON;-;2$;20| (|x| $) (SPADCALL |x| (QREFELT $ 70))) 

(DEFUN |MODMON;*;3$;21| (|x| |y| $)
  (PROG (|p| |ans| |n|)
    (RETURN
     (SEQ (LETT |p| (SPADCALL |x| |y| (QREFELT $ 72)) . #1=(|MODMON;*;3$;21|))
          (LETT |ans| (|spadConstant| $ 51) . #1#)
          (SEQ G190
               (COND
                ((NULL
                  (< (QREFELT $ 15)
                     (LETT |n| (SPADCALL |p| (QREFELT $ 31)) . #1#)))
                 (GO G191)))
               (SEQ
                (LETT |ans|
                      (SPADCALL |ans|
                                (SPADCALL (SPADCALL |p| (QREFELT $ 28))
                                          (SPADCALL (QREFELT $ 24)
                                                    (- |n| (QREFELT $ 14))
                                                    (QREFELT $ 39))
                                          (QREFELT $ 54))
                                (QREFELT $ 32))
                      . #1#)
                (EXIT (LETT |p| (SPADCALL |p| (QREFELT $ 33)) . #1#)))
               NIL (GO G190) G191 (EXIT NIL))
          (EXIT (SPADCALL |ans| |p| (QREFELT $ 32))))))) 

(DEFUN |MODMON;Vectorise;$V;22| (|x| $)
  (PROG (#1=#:G719 |i| #2=#:G718)
    (RETURN
     (SEQ
      (PROGN
       (LETT #2# (GETREFV (QSADD1 #3=(QREFELT $ 15)))
             . #4=(|MODMON;Vectorise;$V;22|))
       (SEQ (LETT |i| 0 . #4#) (LETT #1# #3# . #4#) G190
            (COND ((QSGREATERP |i| #1#) (GO G191)))
            (SEQ
             (EXIT
              (SETELT #2# |i|
                      (SPADCALL (SPADCALL |x| (QREFELT $ 40)) |i|
                                (QREFELT $ 62)))))
            (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
       #2#))))) 

(DEFUN |MODMON;UnVectorise;V$;23| (|vect| $)
  (PROG (#1=#:G721 #2=#:G720 #3=#:G722 #4=#:G724 |i|)
    (RETURN
     (SEQ
      (SPADCALL
       (PROGN
        (LETT #1# NIL . #5=(|MODMON;UnVectorise;V$;23|))
        (SEQ (LETT |i| 0 . #5#) (LETT #4# (QREFELT $ 15) . #5#) G190
             (COND ((QSGREATERP |i| #4#) (GO G191)))
             (SEQ
              (EXIT
               (PROGN
                (LETT #3#
                      (SPADCALL (SPADCALL |vect| (+ |i| 1) (QREFELT $ 75)) |i|
                                (QREFELT $ 76))
                      . #5#)
                (COND (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 32)) . #5#))
                      ('T (PROGN (LETT #2# #3# . #5#) (LETT #1# 'T . #5#)))))))
             (LETT |i| (QSADD1 |i|) . #5#) (GO G190) G191 (EXIT NIL))
        (COND (#1# #2#) ('T (|spadConstant| $ 20))))
       (QREFELT $ 41)))))) 

(DEFUN |MODMON;computePowers;Pa;24| ($)
  (PROG (#1=#:G729 |i| |w| |mat|)
    (RETURN
     (SEQ
      (LETT |mat|
            (SPADCALL (QREFELT $ 14) (|spadConstant| $ 20) (QREFELT $ 23))
            . #2=(|MODMON;computePowers;Pa;24|))
      (SPADCALL |mat| 0
                (SPADCALL (SPADCALL (QREFELT $ 12) (QREFELT $ 71))
                          (QREFELT $ 63))
                (QREFELT $ 42))
      (LETT |w| (SPADCALL (|spadConstant| $ 9) 1 (QREFELT $ 11)) . #2#)
      (SEQ (LETT |i| 1 . #2#) (LETT #1# (QREFELT $ 15) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (SPADCALL |mat| |i|
                      (SPADCALL |w| (SPADCALL |mat| (- |i| 1) (QREFELT $ 39))
                                (QREFELT $ 72))
                      (QREFELT $ 42))
            (EXIT
             (COND
              ((EQL
                (SPADCALL (SPADCALL |mat| |i| (QREFELT $ 39)) (QREFELT $ 31))
                (QREFELT $ 14))
               (SPADCALL |mat| |i|
                         (SPADCALL
                          (SPADCALL (SPADCALL |mat| |i| (QREFELT $ 39))
                                    (QREFELT $ 33))
                          (SPADCALL
                           (SPADCALL (SPADCALL |mat| |i| (QREFELT $ 39))
                                     (QREFELT $ 28))
                           (SPADCALL |mat| 0 (QREFELT $ 39)) (QREFELT $ 54))
                          (QREFELT $ 32))
                         (QREFELT $ 42))))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |mat|))))) 

(DEFUN |MODMON;computeFrobeniusPowers| ($)
  (PROG (#1=#:G733 |i| |mult| |mat|)
    (RETURN
     (SEQ
      (LETT |mat| (SPADCALL (QREFELT $ 14) (|spadConstant| $ 8) (QREFELT $ 23))
            . #2=(|MODMON;computeFrobeniusPowers|))
      (SPADCALL |mat| 1
                (LETT |mult|
                      (SPADCALL (|spadConstant| $ 9) (SPADCALL (QREFELT $ 45))
                                (QREFELT $ 76))
                      . #2#)
                (QREFELT $ 42))
      (SEQ (LETT |i| 2 . #2#) (LETT #1# (QREFELT $ 15) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (SPADCALL |mat| |i|
                       (SPADCALL |mult|
                                 (SPADCALL |mat| (- |i| 1) (QREFELT $ 39))
                                 (QREFELT $ 73))
                       (QREFELT $ 42))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |mat|))))) 

(DEFUN |MODMON;frobenius;2$;26| (|a| $)
  (PROG (|aq|)
    (RETURN
     (SEQ (LETT |aq| (|spadConstant| $ 20) . #1=(|MODMON;frobenius;2$;26|))
          (SEQ G190
               (COND
                ((NULL
                  (COND
                   ((SPADCALL |a| (|spadConstant| $ 20) (QREFELT $ 68)) 'NIL)
                   ('T 'T)))
                 (GO G191)))
               (SEQ
                (LETT |aq|
                      (SPADCALL |aq|
                                (SPADCALL (SPADCALL |a| (QREFELT $ 28))
                                          (SPADCALL (QREFELT $ 25)
                                                    (SPADCALL |a|
                                                              (QREFELT $ 31))
                                                    (QREFELT $ 39))
                                          (QREFELT $ 54))
                                (QREFELT $ 32))
                      . #1#)
                (EXIT (LETT |a| (SPADCALL |a| (QREFELT $ 33)) . #1#)))
               NIL (GO G190) G191 (EXIT NIL))
          (EXIT |aq|))))) 

(DEFUN |MODMON;pow;Pa;27| ($) (QREFELT $ 24)) 

(DEFUN |MODMON;monomial;RNni$;28| (|c| |e| $)
  (PROG (|k2| #1=#:G739 |k1|)
    (RETURN
     (SEQ
      (COND ((< |e| (QREFELT $ 14)) (SPADCALL |c| |e| (QREFELT $ 11)))
            ((< (QREFELT $ 18) |e|)
             (SEQ
              (LETT |k1| (QUOTIENT2 |e| (QREFELT $ 18))
                    . #2=(|MODMON;monomial;RNni$;28|))
              (LETT |k2|
                    (PROG1 (LETT #1# (- |e| (* |k1| (QREFELT $ 18))) . #2#)
                      (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|) #1#))
                    . #2#)
              (EXIT
               (SPADCALL
                (SPADCALL
                 (SPADCALL
                  (SPADCALL (QREFELT $ 24) (QREFELT $ 15) (QREFELT $ 39)) |k1|
                  (QREFELT $ 79))
                 (SPADCALL |c| |k2| (QREFELT $ 76)) (QREFELT $ 73))
                (QREFELT $ 41)))))
            ('T
             (SPADCALL |c|
                       (SPADCALL (QREFELT $ 24) (- |e| (QREFELT $ 14))
                                 (QREFELT $ 39))
                       (QREFELT $ 54)))))))) 

(DEFUN |MODMON;exquo;2$U;29| (|x| |y| $)
  (PROG (#1=#:G754 |uv|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |uv| (SPADCALL |y| (SPADCALL (QREFELT $ 44)) |x| (QREFELT $ 82))
              . #2=(|MODMON;exquo;2$U;29|))
        (EXIT
         (COND ((QEQCAR |uv| 1) (CONS 1 "failed"))
               ('T
                (PROGN
                 (LETT #1#
                       (CONS 0 (SPADCALL (QCAR (QCDR |uv|)) (QREFELT $ 41)))
                       . #2#)
                 (GO #1#)))))))
      #1# (EXIT #1#))))) 

(DEFUN |MODMON;recip;$U;30| (|y| $)
  (SPADCALL (|spadConstant| $ 8) |y| (QREFELT $ 83))) 

(DEFUN |MODMON;divide;2$R;31| (|x| |y| $)
  (PROG (|q|)
    (RETURN
     (SEQ (LETT |q| (SPADCALL |x| |y| (QREFELT $ 83)) |MODMON;divide;2$R;31|)
          (EXIT
           (COND ((QEQCAR |q| 1) (|error| "not divisible"))
                 ('T (CONS (QCDR |q|) (|spadConstant| $ 20))))))))) 

(DEFUN |ModMonic| (|#1| |#2|)
  (PROG (#1=#:G669 |pv$| #2=#:G802 $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #3=(|ModMonic|))
      (LETT DV$2 (|devaluate| |#2|) . #3#)
      (LETT |dv$| (LIST '|ModMonic| DV$1 DV$2) . #3#)
      (LETT $ (GETREFV 132) . #3#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#1|
                                                         '(|PolynomialFactorizationExplicit|))
                                          (|HasCategory| |#1|
                                                         '(|CommutativeRing|))
                                          (|HasCategory| |#1|
                                                         '(|IntegralDomain|))
                                          (OR
                                           (|HasCategory| |#1|
                                                          '(|CommutativeRing|))
                                           (|HasCategory| |#1|
                                                          '(|IntegralDomain|)))
                                          (|HasCategory| |#1|
                                                         '(|canonicalUnitNormal|))
                                          (AND
                                           (|HasCategory|
                                            (|SingletonAsOrderedSet|)
                                            '(|PatternMatchable| (|Float|)))
                                           (|HasCategory| |#1|
                                                          '(|PatternMatchable|
                                                            (|Float|))))
                                          (AND
                                           (|HasCategory|
                                            (|SingletonAsOrderedSet|)
                                            '(|PatternMatchable| (|Integer|)))
                                           (|HasCategory| |#1|
                                                          '(|PatternMatchable|
                                                            (|Integer|))))
                                          (AND
                                           (|HasCategory|
                                            (|SingletonAsOrderedSet|)
                                            '(|ConvertibleTo|
                                              (|Pattern| (|Float|))))
                                           (|HasCategory| |#1|
                                                          '(|ConvertibleTo|
                                                            (|Pattern|
                                                             (|Float|)))))
                                          (AND
                                           (|HasCategory|
                                            (|SingletonAsOrderedSet|)
                                            '(|ConvertibleTo|
                                              (|Pattern| (|Integer|))))
                                           (|HasCategory| |#1|
                                                          '(|ConvertibleTo|
                                                            (|Pattern|
                                                             (|Integer|)))))
                                          (AND
                                           (|HasCategory|
                                            (|SingletonAsOrderedSet|)
                                            '(|ConvertibleTo| (|InputForm|)))
                                           (|HasCategory| |#1|
                                                          '(|ConvertibleTo|
                                                            (|InputForm|))))
                                          (|HasCategory| |#1| '(|Comparable|))
                                          (|HasCategory| |#1|
                                                         '(|LinearlyExplicitRingOver|
                                                           (|Integer|)))
                                          (|HasCategory| |#1|
                                                         '(|Algebra|
                                                           (|Fraction|
                                                            (|Integer|))))
                                          (|HasCategory| |#1|
                                                         '(|CharacteristicNonZero|))
                                          (|HasCategory| |#1|
                                                         '(|CharacteristicZero|))
                                          (|HasCategory| |#1|
                                                         '(|RetractableTo|
                                                           (|Integer|)))
                                          (|HasCategory| |#1|
                                                         '(|RetractableTo|
                                                           (|Fraction|
                                                            (|Integer|))))
                                          (|HasCategory| |#1| '(|Field|))
                                          (|HasCategory| |#1| '(|StepThrough|))
                                          (|HasCategory| |#1|
                                                         '(|PartialDifferentialRing|
                                                           (|Symbol|)))
                                          (|HasCategory| |#1| '(|Finite|))
                                          (|HasCategory| |#1|
                                                         '(|FiniteFieldCategory|))
                                          (OR
                                           (|HasCategory| |#1|
                                                          '(|RetractableTo|
                                                            (|Fraction|
                                                             (|Integer|))))
                                           (|HasCategory| |#1|
                                                          '(|Algebra|
                                                            (|Fraction|
                                                             (|Integer|)))))
                                          (|HasCategory| |#1|
                                                         '(|DifferentialRing|))
                                          (LETT #2#
                                                (|HasCategory| |#1|
                                                               '(|GcdDomain|))
                                                . #3#)
                                          (OR
                                           (|HasCategory| |#1|
                                                          '(|CommutativeRing|))
                                           (|HasCategory| |#1| '(|Field|)) #2#
                                           (|HasCategory| |#1|
                                                          '(|IntegralDomain|))
                                           (|HasCategory| |#1|
                                                          '(|PolynomialFactorizationExplicit|)))
                                          (OR (|HasCategory| |#1| '(|Field|))
                                              #2#
                                              (|HasCategory| |#1|
                                                             '(|IntegralDomain|))
                                              (|HasCategory| |#1|
                                                             '(|PolynomialFactorizationExplicit|)))
                                          (OR (|HasCategory| |#1| '(|Field|))
                                              #2#
                                              (|HasCategory| |#1|
                                                             '(|PolynomialFactorizationExplicit|)))))
                      . #3#))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (AND (|HasCategory| $ '(|CharacteristicNonZero|))
           (|HasCategory| |#1| '(|PolynomialFactorizationExplicit|))
           (|augmentPredVector| $ 268435456))
      (AND
       (OR
        (AND (|HasCategory| $ '(|CharacteristicNonZero|))
             (|HasCategory| |#1| '(|PolynomialFactorizationExplicit|)))
        (|HasCategory| |#1| '(|CharacteristicNonZero|)))
       (|augmentPredVector| $ 536870912))
      (QSETREFV $ 12 (SPADCALL (|spadConstant| $ 9) 1 (QREFELT $ 11)))
      (QSETREFV $ 14 (SPADCALL (QREFELT $ 12) (QREFELT $ 13)))
      (QSETREFV $ 15
                (PROG1 (LETT #1# (- (QREFELT $ 14) 1) . #3#)
                  (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|) #1#)))
      (QSETREFV $ 18 (+ (SPADCALL 2 (QREFELT $ 15) (QREFELT $ 17)) 1))
      (QSETREFV $ 19 (|HasCategory| |#1| '(|FiniteFieldCategory|)))
      (QSETREFV $ 24 (SPADCALL 0 (|spadConstant| $ 20) (QREFELT $ 23)))
      (QSETREFV $ 25 (SPADCALL 0 (|spadConstant| $ 20) (QREFELT $ 23)))
      (COND
       ((|testBitVector| |pv$| 21)
        (PROGN
         (QSETREFV $ 46 (CONS (|dispatchFunction| |MODMON;size;Nni;3|) $))
         (QSETREFV $ 50 (CONS (|dispatchFunction| |MODMON;random;$;4|) $)))))
      (COND
       ((QREFELT $ 19)
        (PROGN
         (QSETREFV $ 77
                   (CONS (|dispatchFunction| |MODMON;frobenius;2$;26|) $)))))
      (COND
       ((|testBitVector| |pv$| 18)
        (PROGN
         (QSETREFV $ 83 (CONS (|dispatchFunction| |MODMON;exquo;2$U;29|) $))
         (QSETREFV $ 84 (CONS (|dispatchFunction| |MODMON;recip;$U;30|) $))
         (QSETREFV $ 85
                   (CONS (|dispatchFunction| |MODMON;divide;2$R;31|) $)))))
      $)))) 

(MAKEPROP '|ModMonic| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (CONS IDENTITY (FUNCALL (|dispatchFunction| |MODMON;One;$;6|) $))
              (0 . |One|) (|NonNegativeInteger|) (4 . |monomial|) '|m|
              (10 . |degree|) '|d| '|d1| (|PositiveInteger|) (15 . *) '|twod|
              '|frobenius?|
              (CONS IDENTITY
                    (FUNCALL (|dispatchFunction| |MODMON;Zero;$;5|) $))
              (21 . |Zero|) (|PrimitiveArray| $$) (25 . |new|) '|power|
              '|frobeniusPower| (|Boolean|) (31 . =)
              |MODMON;leadingCoefficient;$R;13| (37 . =) (43 . |zero?|)
              |MODMON;degree;$Nni;14| |MODMON;+;3$;19| |MODMON;reductum;2$;12|
              (|PrimitiveArray| $) |MODMON;computePowers;Pa;24|
              (|Union| $ '"failed") (48 . |exquo|) (|Integer|) (54 . |elt|)
              |MODMON;lift;$Rep;15| |MODMON;reduce;Rep$;16| (60 . |setelt|)
              |MODMON;setPoly;2Rep;1| |MODMON;modulus;Rep;2| (67 . |size|)
              (71 . |size|) (75 . |random|) (|Vector| 6)
              |MODMON;UnVectorise;V$;23| (79 . |random|) (83 . |Zero|)
              (87 . |One|) (91 . *) |MODMON;*;R2$;7| (97 . |coerce|)
              |MODMON;*;I2$;8| |MODMON;coerce;R$;9| (|OutputForm|)
              (102 . |coerce|) |MODMON;coerce;$Of;10| (107 . |coefficient|)
              |MODMON;coefficient;$NniR;11| (113 . |reductum|)
              (118 . |leadingCoefficient|)
              (|Record| (|:| |quotient| $) (|:| |remainder| $))
              (123 . |monicDivide|) |MODMON;coerce;Rep$;17| |MODMON;=;2$B;18|
              (129 . +) (135 . -) |MODMON;-;2$;20| (140 . *) |MODMON;*;3$;21|
              |MODMON;Vectorise;$V;22| (146 . |elt|) |MODMON;monomial;RNni$;28|
              (152 . |frobenius|) |MODMON;pow;Pa;27| (157 . ^)
              (|Record| (|:| |coef1| $) (|:| |coef2| $)) (|Union| 80 '"failed")
              (163 . |extendedEuclidean|) (170 . |exquo|) (176 . |recip|)
              (181 . |divide|) (|InputForm|) (|Pattern| (|Float|))
              (|Pattern| 38) (|PatternMatchResult| (|Float|) $)
              (|PatternMatchResult| 38 $) (|Union| 108 '#1="failed")
              (|Matrix| $) (|Fraction| 38) (|SingletonAsOrderedSet|)
              (|Record| (|:| |coef| 96) (|:| |generator| $)) (|List| $)
              (|Union| 96 '"failed")
              (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $))
              (|Fraction| $) (|Factored| $) (|SparseUnivariatePolynomial| $)
              (|Record| (|:| |primePart| $) (|:| |commonPart| $))
              (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
              (|Record| (|:| |coef| 6) (|:| |quotient| $) (|:| |remainder| $))
              (|Union| 99 '"failed") (|Matrix| 38)
              (|Record| (|:| |mat| 106) (|:| |vec| (|Vector| 38))) (|Vector| $)
              (|Symbol|) (|List| 109) (|List| 10) (|Factored| 101)
              (|Union| 114 '#1#) (|List| 101) (|Union| 93 '#2="failed")
              (|Union| 38 '#2#) (|Mapping| 6 6)
              (|SparseUnivariatePolynomial| 6) (|List| 94)
              (|Record| (|:| |var| 94) (|:| |exponent| 10))
              (|Union| 120 '#3="failed") (|Union| 94 '#3#) (|Matrix| 6)
              (|Record| (|:| |mat| 123) (|:| |vec| 48)) (|List| 6)
              (|Equation| $) (|List| 126) (|Union| 6 '#2#) (|Mapping| 10 10)
              (|String|) (|SingleInteger|))
           '#(~= 187 |zero?| 193 |vectorise| 198 |variables| 204 |unmakeSUP|
              209 |univariate| 214 |unitNormal| 225 |unitCanonical| 230 |unit?|
              235 |totalDegree| 240 |subtractIfCan| 251 |subResultantGcd| 257
              |squareFreePolynomial| 263 |squareFreePart| 268 |squareFree| 273
              |solveLinearPolynomialEquation| 278 |smaller?| 284 |sizeLess?|
              290 |size| 296 |shiftRight| 300 |shiftLeft| 306 |setPoly| 312
              |separate| 317 |sample| 323 |retractIfCan| 327 |retract| 347
              |resultant| 367 |rem| 380 |reductum| 386 |reducedSystem| 391
              |reduce| 413 |recip| 418 |random| 423 |quo| 427 |pseudoRemainder|
              433 |pseudoQuotient| 439 |pseudoDivide| 445 |principalIdeal| 451
              |primitivePart| 456 |primitiveMonomials| 467 |prime?| 472 |pow|
              477 |pomopo!| 481 |patternMatch| 489 |order| 503 |one?| 509
              |numberOfMonomials| 514 |nextItem| 519 |multivariate| 524
              |multiplyExponents| 536 |multiEuclidean| 542 |monomials| 548
              |monomial?| 553 |monomial| 558 |monicDivide| 578 |modulus| 591
              |minimumDegree| 595 |mapExponents| 612 |map| 618 |makeSUP| 624
              |mainVariable| 629 |lookup| 634 |lift| 639 |leadingMonomial| 644
              |leadingCoefficient| 649 |lcm| 654 |latex| 665 |karatsubaDivide|
              670 |isTimes| 676 |isPlus| 681 |isExpt| 686 |integrate| 691
              |init| 696 |index| 700 |hash| 705 |ground?| 710 |ground| 715
              |gcdPolynomial| 720 |gcd| 726 |frobenius| 737
              |factorSquareFreePolynomial| 742 |factorPolynomial| 747 |factor|
              752 |extendedEuclidean| 757 |exquo| 770 |expressIdealMember| 782
              |eval| 788 |euclideanSize| 842 |enumerate| 847 |elt| 851
              |divideExponents| 881 |divide| 887 |discriminant| 893
              |differentiate| 904 |degree| 987 |convert| 1004 |content| 1019
              |conditionP| 1030 |computePowers| 1035 |composite| 1039 |coerce|
              1051 |coefficients| 1086 |coefficient| 1091 |charthRoot| 1111
              |characteristic| 1116 |binomThmExpt| 1120 |associates?| 1127 ^
              1133 |Zero| 1145 |Vectorise| 1149 |UnVectorise| 1154 |One| 1159 D
              1163 |An| 1239 = 1244 / 1250 - 1256 + 1267 * 1273)
           'NIL
           (CONS
            (|makeByteWordVec2| 28
                                '(0 0 1 18 0 1 18 0 28 27 0 0 3 13 2 0 0 0 3 3
                                  12 13 14 15 2 26 20 0 0 4 13 0 0 0 0 2 13 13
                                  0 0 0 0 0 0 0 0 6 7 11 19 21 0 0 0 0 0 0 0 0
                                  0 0 0 0 0 2 3 5 8 9 10 16 17 18 3))
            (CONS
             '#(|UnivariatePolynomialCategory&| |PolynomialCategory&|
                |PolynomialFactorizationExplicit&| |EuclideanDomain&|
                |FiniteAbelianMonoidRing&| |UniqueFactorizationDomain&| NIL
                |AbelianMonoidRing&| |GcdDomain&| |IntegralDomain&|
                |DifferentialExtension&| |FullyLinearlyExplicitRingOver&|
                |Algebra&| |Algebra&| |Algebra&| |PartialDifferentialRing&|
                |DifferentialRing&| NIL |Module&| NIL NIL |Module&| NIL NIL
                |Module&| NIL |PartialDifferentialRing&| NIL |Ring&| NIL NIL
                NIL NIL NIL NIL NIL NIL NIL |AbelianGroup&| NIL NIL
                |AbelianMonoid&| |Monoid&| NIL |SemiGroup&| |AbelianSemiGroup&|
                NIL NIL NIL NIL |Finite&| |Evalable&| |FullyRetractableTo&|
                |SetCategory&| NIL NIL |RetractableTo&| |InnerEvalable&|
                |InnerEvalable&| |InnerEvalable&| |RetractableTo&| NIL
                |BasicType&| NIL NIL NIL NIL NIL NIL NIL |RetractableTo&|
                |RetractableTo&| NIL NIL)
             (CONS
              '#((|UnivariatePolynomialCategory| 6)
                 (|PolynomialCategory| 6 10 94)
                 (|PolynomialFactorizationExplicit|) (|EuclideanDomain|)
                 (|FiniteAbelianMonoidRing| 6 10) (|UniqueFactorizationDomain|)
                 (|PrincipalIdealDomain|) (|AbelianMonoidRing| 6 10)
                 (|GcdDomain|) (|IntegralDomain|) (|DifferentialExtension| 6)
                 (|FullyLinearlyExplicitRingOver| 6) (|Algebra| $$)
                 (|Algebra| 93) (|Algebra| 6) (|PartialDifferentialRing| 94)
                 (|DifferentialRing|) (|LinearlyExplicitRingOver| 6)
                 (|Module| $$) (|EntireRing|) (|LinearlyExplicitRingOver| 38)
                 (|Module| 93) (|CharacteristicNonZero|) (|CharacteristicZero|)
                 (|Module| 6) (|CommutativeRing|)
                 (|PartialDifferentialRing| 109) (|BiModule| 6 6) (|Ring|)
                 (|BiModule| $$ $$) (|BiModule| 93 93) (|LeftModule| 6) (|Rng|)
                 (|RightModule| 6) (|LeftModule| $$) (|RightModule| $$)
                 (|LeftModule| 93) (|RightModule| 93) (|AbelianGroup|)
                 (|CancellationAbelianMonoid|) (|SemiRing|) (|AbelianMonoid|)
                 (|Monoid|) (|SemiRng|) (|SemiGroup|) (|AbelianSemiGroup|)
                 (|PatternMatchable| (|Float|)) (|PatternMatchable| 38)
                 (|Comparable|) (|StepThrough|) (|Finite|) (|Evalable| $$)
                 (|FullyRetractableTo| 6) (|SetCategory|) (|Eltable| $$ $$)
                 (|Eltable| 6 6) (|RetractableTo| 94) (|InnerEvalable| 94 $$)
                 (|InnerEvalable| 94 6) (|InnerEvalable| $$ $$)
                 (|RetractableTo| 6) (|unitsKnown|) (|BasicType|)
                 (|CoercibleTo| 58) (|CommutativeStar|) (|noZeroDivisors|)
                 (|canonicalUnitNormal|) (|ConvertibleTo| 87)
                 (|ConvertibleTo| 88) (|ConvertibleTo| 86) (|RetractableTo| 38)
                 (|RetractableTo| 93) (|additiveValuation|)
                 (|Eltable| (|Fraction| $$) (|Fraction| $$)))
              (|makeByteWordVec2| 131
                                  '(0 6 0 9 2 7 0 6 10 11 1 7 10 0 13 2 10 0 16
                                    0 17 0 6 0 21 2 22 0 10 2 23 2 7 26 0 0 27
                                    2 6 26 0 0 29 1 0 26 0 30 2 7 36 0 0 37 2
                                    22 2 0 38 39 3 22 2 0 38 2 42 0 6 10 45 0 0
                                    10 46 0 6 0 47 0 0 0 50 0 7 0 51 0 7 0 52 2
                                    7 0 6 0 53 1 6 0 38 55 1 7 58 0 59 2 7 6 0
                                    10 61 1 7 0 0 63 1 7 6 0 64 2 7 65 0 0 66 2
                                    7 0 0 0 69 1 7 0 0 70 2 7 0 0 0 72 2 48 6 0
                                    38 75 1 0 0 0 77 2 0 0 0 10 79 3 7 81 0 0 0
                                    82 2 0 36 0 0 83 1 0 36 0 84 2 0 65 0 0 85
                                    2 0 26 0 0 1 1 0 26 0 30 2 0 48 0 10 1 1 0
                                    119 0 1 1 0 0 118 1 1 0 118 0 1 2 0 101 0
                                    94 1 1 3 103 0 1 1 3 0 0 1 1 3 26 0 1 1 0
                                    10 0 1 2 0 10 0 119 1 2 0 36 0 0 1 2 3 0 0
                                    0 1 1 1 112 101 1 1 25 0 0 1 1 25 100 0 1 2
                                    1 113 114 101 1 2 11 26 0 0 1 2 18 26 0 0 1
                                    0 21 10 46 2 0 0 0 10 1 2 0 0 0 10 1 1 0 7
                                    7 43 2 25 102 0 0 1 0 0 0 1 1 17 115 0 1 1
                                    16 116 0 1 1 0 122 0 1 1 0 128 0 1 1 17 93
                                    0 1 1 16 38 0 1 1 0 94 0 1 1 0 6 0 1 2 2 6
                                    0 0 1 3 2 0 0 0 94 1 2 18 0 0 0 1 1 0 0 0
                                    33 1 12 106 92 1 2 12 107 92 108 1 1 0 123
                                    92 1 2 0 124 92 108 1 1 0 0 7 41 1 0 36 0
                                    84 0 21 0 50 2 18 0 0 0 1 2 0 0 0 0 1 2 3 0
                                    0 0 1 2 3 104 0 0 1 1 18 95 96 1 2 25 0 0
                                    94 1 1 25 0 0 1 1 0 96 0 1 1 1 26 0 1 0 0
                                    34 78 4 0 0 0 6 10 0 1 3 6 89 0 87 89 1 3 7
                                    90 0 88 90 1 2 3 10 0 0 1 1 0 26 0 1 1 0 10
                                    0 1 1 19 36 0 1 2 0 0 101 94 1 2 0 0 118 94
                                    1 2 0 0 0 10 1 2 18 97 96 0 1 1 0 96 0 1 1
                                    0 26 0 1 3 0 0 0 119 111 1 3 0 0 0 94 10 1
                                    2 0 0 6 10 76 2 0 65 0 0 1 3 0 65 0 0 94 1
                                    0 0 7 44 2 0 111 0 119 1 2 0 10 0 94 1 1 0
                                    10 0 1 2 0 0 129 0 1 2 0 0 117 0 1 1 0 118
                                    0 1 1 0 122 0 1 1 21 16 0 1 1 0 7 0 40 1 0
                                    0 0 1 1 0 6 0 28 2 25 0 0 0 1 1 25 0 96 1 1
                                    0 130 0 1 2 0 65 0 10 1 1 0 97 0 1 1 0 97 0
                                    1 1 0 121 0 1 1 13 0 0 1 0 19 0 1 1 21 0 16
                                    1 1 0 131 0 1 1 0 26 0 1 1 0 6 0 1 2 25 101
                                    101 101 1 2 25 0 0 0 1 1 25 0 96 1 1 22 0 0
                                    77 1 1 112 101 1 1 1 112 101 1 1 1 100 0 1
                                    3 18 81 0 0 0 1 2 18 98 0 0 1 2 3 36 0 0 83
                                    2 3 36 0 6 1 2 18 97 96 0 1 3 0 0 0 119 96
                                    1 3 0 0 0 119 125 1 3 0 0 0 94 0 1 3 0 0 0
                                    94 6 1 3 0 0 0 0 0 1 3 0 0 0 96 96 1 2 0 0
                                    0 126 1 2 0 0 0 127 1 1 18 10 0 1 0 21 96 1
                                    2 18 6 99 6 1 2 3 99 0 99 1 2 3 99 99 99 1
                                    2 0 0 0 0 1 2 0 6 0 6 1 2 0 36 0 10 1 2 18
                                    65 0 0 85 1 2 6 0 1 2 2 0 0 94 1 3 20 0 0
                                    110 111 1 2 20 0 0 110 1 3 20 0 0 109 10 1
                                    2 20 0 0 109 1 3 0 0 0 117 0 1 2 0 0 0 117
                                    1 3 0 0 0 117 10 1 1 0 0 0 1 2 0 0 0 10 1 3
                                    0 0 0 119 111 1 3 0 0 0 94 10 1 2 0 0 0 94
                                    1 2 0 0 0 119 1 2 0 111 0 119 1 2 0 10 0 94
                                    1 1 0 10 0 31 1 10 86 0 1 1 8 87 0 1 1 9 88
                                    0 1 2 25 0 0 94 1 1 25 6 0 1 1 29 91 92 1 0
                                    0 34 35 2 3 105 99 0 1 2 3 36 0 0 1 1 23 0
                                    93 1 1 3 0 0 1 1 0 0 7 67 1 0 0 94 1 1 0 0
                                    6 57 1 0 0 38 1 1 0 58 0 60 1 0 125 0 1 3 0
                                    0 0 119 111 1 3 0 0 0 94 10 1 2 0 6 0 10 62
                                    1 30 36 0 1 0 0 10 1 3 2 0 0 0 10 1 2 3 26
                                    0 0 1 2 0 0 0 10 79 2 0 0 0 16 1 0 0 0 20 1
                                    0 48 0 74 1 0 0 48 49 0 0 0 8 3 20 0 0 109
                                    10 1 3 20 0 0 110 111 1 2 20 0 0 109 1 2 20
                                    0 0 110 1 3 0 0 0 117 10 1 2 0 0 0 117 1 1
                                    0 0 0 1 2 0 0 0 10 1 3 0 0 0 119 111 1 2 0
                                    0 0 119 1 3 0 0 0 94 10 1 2 0 0 0 94 1 1 0
                                    48 0 1 2 0 26 0 0 68 2 18 0 0 6 1 2 0 0 0 0
                                    1 1 0 0 0 71 2 0 0 0 0 32 2 13 0 93 0 1 2
                                    13 0 0 93 1 2 0 0 0 6 1 2 0 0 6 0 54 2 0 0
                                    0 0 73 2 0 0 38 0 56 2 0 0 10 0 1 2 0 0 16
                                    0 1)))))
           '|lookupComplete|)) 
