
(/VERSIONCHECK 2) 

(DEFUN |INMODGCD;reduction;BPRBP;1| (|u| |p| $)
  (PROG ()
    (RETURN
     (COND ((SPADCALL |p| (|spadConstant| $ 10) (QREFELT $ 13)) |u|)
           ('T
            (SPADCALL (CONS #'|INMODGCD;reduction;BPRBP;1!0| (VECTOR $ |p|))
                      |u| (QREFELT $ 16))))))) 

(DEFUN |INMODGCD;reduction;BPRBP;1!0| (|r1| $$)
  (PROG (|p| $)
    (LETT |p| (QREFELT $$ 1) . #1=(|INMODGCD;reduction;BPRBP;1|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |p| (QREFELT $ 14)))))) 

(DEFUN |INMODGCD;reduction;BPRBP;2| (|u| |p| $)
  (PROG ()
    (RETURN
     (COND ((SPADCALL |p| (|spadConstant| $ 10) (QREFELT $ 13)) |u|)
           ('T
            (SPADCALL (CONS #'|INMODGCD;reduction;BPRBP;2!0| (VECTOR $ |p|))
                      |u| (QREFELT $ 16))))))) 

(DEFUN |INMODGCD;reduction;BPRBP;2!0| (|r1| $$)
  (PROG (|p| $)
    (LETT |p| (QREFELT $$ 1) . #1=(|INMODGCD;reduction;BPRBP;2|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |p| (QREFELT $ 18)))))) 

(DEFUN |INMODGCD;modularGcdPrimitive;LBP;3| (|listf| $)
  (PROG (|g| #1=#:G1835 |f|)
    (RETURN
     (SEQ
      (COND ((NULL |listf|) (|spadConstant| $ 11))
            (#2='T
             (SEQ
              (LETT |g| (|SPADfirst| |listf|)
                    . #3=(|INMODGCD;modularGcdPrimitive;LBP;3|))
              (SEQ (LETT |f| NIL . #3#) (LETT #1# (CDR |listf|) . #3#) G190
                   (COND
                    ((OR (ATOM #1#) (PROGN (LETT |f| (CAR #1#) . #3#) NIL)
                         (NULL (< 0 (SPADCALL |g| (QREFELT $ 24)))))
                     (GO G191)))
                   (SEQ
                    (EXIT
                     (COND
                      ((COND ((SPADCALL |f| (QREFELT $ 21)) 'NIL) (#2# 'T))
                       (LETT |g| (|INMODGCD;modGcdPrimitive| |g| |f| $)
                             . #3#)))))
                   (LETT #1# (CDR #1#) . #3#) (GO G190) G191 (EXIT NIL))
              (EXIT |g|)))))))) 

(DEFUN |INMODGCD;modularGcd;LBP;4| (|listf| $)
  (PROG (|ans| |minpol| #1=#:G1843 #2=#:G1867 |f| #3=#:G1868 |cf| #4=#:G1866
         |contgcd| |listCont| #5=#:G1865 #6=#:G1864 |listdeg| #7=#:G1863
         #8=#:G1862 #9=#:G1861 #10=#:G1860 |minpol1| |mdeg| #11=#:G1837
         #12=#:G1836 #13=#:G1838 #14=#:G1859)
    (RETURN
     (SEQ
      (LETT |listf| (SPADCALL (|spadConstant| $ 11) |listf| (QREFELT $ 27))
            . #15=(|INMODGCD;modularGcd;LBP;4|))
      (EXIT
       (COND ((NULL |listf|) (|spadConstant| $ 11))
             ((EQL (LENGTH |listf|) 1) (|SPADfirst| |listf|))
             (#16='T
              (SEQ (LETT |minpol| (|spadConstant| $ 29) . #15#)
                   (LETT |mdeg|
                         (PROGN
                          (LETT #11# NIL . #15#)
                          (SEQ (LETT |f| NIL . #15#) (LETT #14# |listf| . #15#)
                               G190
                               (COND
                                ((OR (ATOM #14#)
                                     (PROGN (LETT |f| (CAR #14#) . #15#) NIL))
                                 #17=(GO G191)))
                               (SEQ
                                (EXIT
                                 (PROGN
                                  (LETT #13# (SPADCALL |f| (QREFELT $ 30))
                                        . #15#)
                                  (COND
                                   (#11# (LETT #12# (MIN #12# #13#) . #15#))
                                   ('T
                                    (PROGN
                                     (LETT #12# #13# . #15#)
                                     (LETT #11# 'T . #15#)))))))
                               (LETT #14# (CDR #14#) . #15#) #18=(GO G190) G191
                               (EXIT NIL))
                          (COND (#11# #12#) (#16# (|IdentityError| '|min|))))
                         . #15#)
                   (COND
                    ((< 0 |mdeg|)
                     (SEQ
                      (LETT |minpol1|
                            (SPADCALL (|spadConstant| $ 28) |mdeg|
                                      (QREFELT $ 33))
                            . #15#)
                      (LETT |listf|
                            (PROGN
                             (LETT #10# NIL . #15#)
                             (SEQ (LETT |f| NIL . #15#)
                                  (LETT #9# |listf| . #15#) G190
                                  (COND
                                   ((OR (ATOM #9#)
                                        (PROGN
                                         (LETT |f| (CAR #9#) . #15#)
                                         NIL))
                                    #17#))
                                  (SEQ
                                   (EXIT
                                    (LETT #10#
                                          (CONS
                                           (PROG2
                                               (LETT #1#
                                                     (SPADCALL |f| |minpol1|
                                                               (QREFELT $ 35))
                                                     . #15#)
                                               (QCDR #1#)
                                             (|check-union| (QEQCAR #1# 0)
                                                            (QREFELT $ 7) #1#))
                                           #10#)
                                          . #15#)))
                                  (LETT #9# (CDR #9#) . #15#) #18# G191
                                  (EXIT (NREVERSE0 #10#))))
                            . #15#)
                      (EXIT
                       (LETT |minpol|
                             (SPADCALL |minpol| |minpol1| (QREFELT $ 36))
                             . #15#)))))
                   (LETT |listdeg|
                         (PROGN
                          (LETT #8# NIL . #15#)
                          (SEQ (LETT |f| NIL . #15#) (LETT #7# |listf| . #15#)
                               G190
                               (COND
                                ((OR (ATOM #7#)
                                     (PROGN (LETT |f| (CAR #7#) . #15#) NIL))
                                 #17#))
                               (SEQ
                                (EXIT
                                 (LETT #8#
                                       (CONS (SPADCALL |f| (QREFELT $ 24)) #8#)
                                       . #15#)))
                               (LETT #7# (CDR #7#) . #15#) #18# G191
                               (EXIT (NREVERSE0 #8#))))
                         . #15#)
                   (LETT |listCont|
                         (PROGN
                          (LETT #6# NIL . #15#)
                          (SEQ (LETT |f| NIL . #15#) (LETT #5# |listf| . #15#)
                               G190
                               (COND
                                ((OR (ATOM #5#)
                                     (PROGN (LETT |f| (CAR #5#) . #15#) NIL))
                                 #17#))
                               (SEQ
                                (EXIT
                                 (LETT #6#
                                       (CONS (SPADCALL |f| (QREFELT $ 37)) #6#)
                                       . #15#)))
                               (LETT #5# (CDR #5#) . #15#) #18# G191
                               (EXIT (NREVERSE0 #6#))))
                         . #15#)
                   (LETT |contgcd| (SPADCALL |listCont| (QREFELT $ 39)) . #15#)
                   (LETT |listf|
                         (PROGN
                          (LETT #4# NIL . #15#)
                          (SEQ (LETT |cf| NIL . #15#)
                               (LETT #3# |listCont| . #15#)
                               (LETT |f| NIL . #15#) (LETT #2# |listf| . #15#)
                               G190
                               (COND
                                ((OR (ATOM #2#)
                                     (PROGN (LETT |f| (CAR #2#) . #15#) NIL)
                                     (ATOM #3#)
                                     (PROGN (LETT |cf| (CAR #3#) . #15#) NIL))
                                 #17#))
                               (SEQ
                                (EXIT
                                 (LETT #4#
                                       (CONS
                                        (PROG2
                                            (LETT #1#
                                                  (SPADCALL |f| |cf|
                                                            (QREFELT $ 40))
                                                  . #15#)
                                            (QCDR #1#)
                                          (|check-union| (QEQCAR #1# 0)
                                                         (QREFELT $ 7) #1#))
                                        #4#)
                                       . #15#)))
                               (LETT #2#
                                     (PROG1 (CDR #2#)
                                       (LETT #3# (CDR #3#) . #15#))
                                     . #15#)
                               #18# G191 (EXIT (NREVERSE0 #4#))))
                         . #15#)
                   (LETT |minpol| (SPADCALL |contgcd| |minpol| (QREFELT $ 41))
                         . #15#)
                   (LETT |ans|
                         (COND
                          ((SPADCALL (|spadConstant| $ 29) |listf|
                                     (QREFELT $ 42))
                           (|spadConstant| $ 29))
                          ((SPADCALL 1 |listdeg| (QREFELT $ 44))
                           (|INMODGCD;lincase| |listdeg| |listf| $))
                          (#16# (SPADCALL |listf| (QREFELT $ 26))))
                         . #15#)
                   (EXIT (SPADCALL |minpol| |ans| (QREFELT $ 36))))))))))) 

(DEFUN |INMODGCD;lincase| (|listdeg| |listf| $)
  (PROG (#1=#:G1883 |f1| #2=#:G1884 |f| |g| |n|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |n| (SPADCALL 1 |listdeg| (QREFELT $ 47))
              . #3=(|INMODGCD;lincase|))
        (LETT |g| (SPADCALL |listf| |n| (QREFELT $ 48)) . #3#)
        (SEQ (LETT |f| NIL . #3#) (LETT #2# |listf| . #3#) G190
             (COND
              ((OR (ATOM #2#) (PROGN (LETT |f| (CAR #2#) . #3#) NIL))
               (GO G191)))
             (SEQ (LETT |f1| (SPADCALL |f| |g| (QREFELT $ 35)) . #3#)
                  (EXIT
                   (COND
                    ((QEQCAR |f1| 1)
                     (PROGN
                      (LETT #1# (|spadConstant| $ 29) . #3#)
                      (GO #1#))))))
             (LETT #2# (CDR #2#) . #3#) (GO G190) G191 (EXIT NIL))
        (EXIT |g|)))
      #1# (EXIT #1#))))) 

(DEFUN |INMODGCD;test| (|f| |g| |d| $)
  (PROG (|d0|)
    (RETURN
     (SEQ (LETT |d0| (SPADCALL |d| 0 (QREFELT $ 49)) |INMODGCD;test|)
          (EXIT
           (COND
            ((OR
              (QEQCAR
               (SPADCALL (SPADCALL |f| 0 (QREFELT $ 49)) |d0| (QREFELT $ 50))
               1)
              (OR
               (QEQCAR
                (SPADCALL (SPADCALL |g| 0 (QREFELT $ 49)) |d0| (QREFELT $ 50))
                1)
               (OR (QEQCAR (SPADCALL |f| |d| (QREFELT $ 35)) 1)
                   (QEQCAR (SPADCALL |g| |d| (QREFELT $ 35)) 1))))
             'NIL)
            ('T 'T))))))) 

(DEFUN |INMODGCD;modGcdPrimitive| (|f| |g| $)
  (PROG (#1=#:G1919 |result| |testdeg| |soFar| |soFarModulus|
         |correctionFactor| |ans| #2=#:G1902 |cont| |correction| |dp| |ldp|
         |lcdp| |dgp| |gp| |fp| |prime| |bound| |lcd| |lcg| |lcf| |dg| |df|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |df| (SPADCALL |f| (QREFELT $ 24))
              . #3=(|INMODGCD;modGcdPrimitive|))
        (LETT |dg| (SPADCALL |g| (QREFELT $ 24)) . #3#)
        (LETT |lcf| (SPADCALL |f| (QREFELT $ 51)) . #3#)
        (LETT |lcg| (SPADCALL |g| (QREFELT $ 51)) . #3#)
        (LETT |lcd| (SPADCALL |lcf| |lcg| (QREFELT $ 52)) . #3#)
        (LETT |prime| (QREFELT $ 8) . #3#)
        (LETT |bound| (|INMODGCD;mbound| |f| |g| $) . #3#)
        (SEQ G190
             (COND
              ((NULL
                (SPADCALL (SPADCALL |lcd| |prime| (QREFELT $ 18))
                          (QREFELT $ 53)))
               #4=(GO G191)))
             (SEQ
              (EXIT
               (LETT |prime| (SPADCALL |prime| |bound| (QREFELT $ 9)) . #3#)))
             NIL #5=(GO G190) G191 (EXIT NIL))
        (LETT |soFar|
              (SPADCALL
               (SPADCALL (SPADCALL |f| |prime| (QREFELT $ 54))
                         (SPADCALL |g| |prime| (QREFELT $ 54)) (QREFELT $ 55))
               (QREFELT $ 56))
              . #3#)
        (LETT |testdeg| (SPADCALL |soFar| (QREFELT $ 24)) . #3#)
        (EXIT
         (COND
          ((ZEROP |testdeg|)
           (PROGN (LETT #1# (|spadConstant| $ 29) . #3#) (GO #1#)))
          (#6='T
           (SEQ
            (LETT |ldp|
                  (SEQ (LETT |lcdp| (SPADCALL |soFar| (QREFELT $ 51)) . #3#)
                       (EXIT
                        (COND
                         ((SPADCALL |lcdp| (|spadConstant| $ 28)
                                    (QREFELT $ 13))
                          (SPADCALL (SPADCALL |lcd| (QREFELT $ 57)) |prime|
                                    (QREFELT $ 54)))
                         (#6#
                          (SPADCALL
                           (SPADCALL
                            (SPADCALL (|INMODGCD;modInverse| |lcdp| |prime| $)
                                      |lcd| (QREFELT $ 58))
                            (QREFELT $ 57))
                           |prime| (QREFELT $ 54))))))
                  . #3#)
            (LETT |soFar|
                  (SPADCALL
                   (SPADCALL
                    (SPADCALL (SPADCALL |ldp| (QREFELT $ 56)) |soFar|
                              (QREFELT $ 36))
                    |prime| (QREFELT $ 54))
                   (QREFELT $ 56))
                  . #3#)
            (LETT |soFarModulus| |prime| . #3#)
            (EXIT
             (SEQ G190 (COND ((NULL 'T) #4#))
                  (SEQ
                   (LETT |prime| (SPADCALL |prime| |bound| (QREFELT $ 9))
                         . #3#)
                   (EXIT
                    (COND
                     ((SPADCALL (SPADCALL |lcd| |prime| (QREFELT $ 18))
                                (|spadConstant| $ 10) (QREFELT $ 13))
                      "next prime")
                     ('T
                      (SEQ
                       (LETT |fp| (SPADCALL |f| |prime| (QREFELT $ 54)) . #3#)
                       (LETT |gp| (SPADCALL |g| |prime| (QREFELT $ 54)) . #3#)
                       (LETT |dp| (SPADCALL |fp| |gp| (QREFELT $ 55)) . #3#)
                       (LETT |dgp| (SPADCALL |dp| (QREFELT $ 59)) . #3#)
                       (COND
                        ((EQL |dgp| 0)
                         (PROGN
                          (LETT #1# (|spadConstant| $ 29) . #3#)
                          (GO #1#))))
                       (COND
                        ((EQL |dgp| |dg|)
                         (COND
                          ((NULL (QEQCAR (SPADCALL |f| |g| (QREFELT $ 35)) 1))
                           (PROGN (LETT #1# |g| . #3#) (GO #1#))))))
                       (COND
                        ((EQL |dgp| |df|)
                         (COND
                          ((NULL (QEQCAR (SPADCALL |g| |f| (QREFELT $ 35)) 1))
                           (PROGN (LETT #1# |f| . #3#) (GO #1#))))))
                       (EXIT
                        (COND ((< |testdeg| |dgp|) "next prime")
                              ('T
                               (SEQ
                                (LETT |ldp|
                                      (SEQ
                                       (LETT |lcdp|
                                             (SPADCALL
                                              (SPADCALL |dp| (QREFELT $ 56))
                                              (QREFELT $ 51))
                                             . #3#)
                                       (EXIT
                                        (COND
                                         ((SPADCALL |lcdp|
                                                    (|spadConstant| $ 28)
                                                    (QREFELT $ 13))
                                          (SPADCALL
                                           (SPADCALL |lcd| (QREFELT $ 57))
                                           |prime| (QREFELT $ 54)))
                                         ('T
                                          (SPADCALL
                                           (SPADCALL
                                            (SPADCALL
                                             (|INMODGCD;modInverse| |lcdp|
                                              |prime| $)
                                             |lcd| (QREFELT $ 58))
                                            (QREFELT $ 57))
                                           |prime| (QREFELT $ 54))))))
                                      . #3#)
                                (LETT |dp| (SPADCALL |ldp| |dp| (QREFELT $ 60))
                                      . #3#)
                                (EXIT
                                 (COND
                                  ((EQL |dgp| |testdeg|)
                                   (SEQ
                                    (LETT |correction|
                                          (SPADCALL
                                           (SPADCALL
                                            (SPADCALL
                                             (SPADCALL |dp| (QREFELT $ 56))
                                             |soFar| (QREFELT $ 61))
                                            |prime| (QREFELT $ 54))
                                           (QREFELT $ 56))
                                          . #3#)
                                    (EXIT
                                     (COND
                                      ((SPADCALL |correction| (QREFELT $ 21))
                                       (SEQ
                                        (LETT |ans|
                                              (SPADCALL
                                               (SPADCALL
                                                (SPADCALL
                                                 (SPADCALL |lcd|
                                                           (QREFELT $ 57))
                                                 |soFar| (QREFELT $ 36))
                                                |soFarModulus| (QREFELT $ 54))
                                               (QREFELT $ 56))
                                              . #3#)
                                        (LETT |cont|
                                              (SPADCALL |ans| (QREFELT $ 37))
                                              . #3#)
                                        (LETT |ans|
                                              (PROG2
                                                  (LETT #2#
                                                        (SPADCALL |ans| |cont|
                                                                  (QREFELT $
                                                                           40))
                                                        . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (QREFELT $ 7)
                                                               #2#))
                                              . #3#)
                                        (EXIT
                                         (COND
                                          ((|INMODGCD;test| |f| |g| |ans| $)
                                           (PROGN
                                            (LETT #1# |ans| . #3#)
                                            (GO #1#)))
                                          ('T
                                           (LETT |soFarModulus|
                                                 (SPADCALL |soFarModulus|
                                                           |prime|
                                                           (QREFELT $ 58))
                                                 . #3#))))))
                                      ('T
                                       (SEQ
                                        (LETT |correctionFactor|
                                              (|INMODGCD;modInverse|
                                               (SPADCALL |soFarModulus| |prime|
                                                         (QREFELT $ 18))
                                               |prime| $)
                                              . #3#)
                                        (LETT |soFar|
                                              (SPADCALL |soFar|
                                                        (SPADCALL
                                                         |soFarModulus|
                                                         (SPADCALL
                                                          |correctionFactor|
                                                          |correction|
                                                          (QREFELT $ 41))
                                                         (QREFELT $ 41))
                                                        (QREFELT $ 62))
                                              . #3#)
                                        (LETT |soFarModulus|
                                              (SPADCALL |soFarModulus| |prime|
                                                        (QREFELT $ 58))
                                              . #3#)
                                        (EXIT
                                         (LETT |soFar|
                                               (SPADCALL
                                                (SPADCALL |soFar|
                                                          |soFarModulus|
                                                          (QREFELT $ 54))
                                                (QREFELT $ 56))
                                               . #3#))))))))
                                  ((< |dgp| |testdeg|)
                                   (SEQ (LETT |soFarModulus| |prime| . #3#)
                                        (LETT |soFar|
                                              (SPADCALL |dp| (QREFELT $ 56))
                                              . #3#)
                                        (EXIT (LETT |testdeg| |dgp| . #3#))))
                                  ((NULL (QREFELT $ 20))
                                   (COND
                                    ((< 1 (SPADCALL |prime| (QREFELT $ 66)))
                                     (SEQ
                                      (LETT |result|
                                            (SPADCALL |dp| (QREFELT $ 56))
                                            . #3#)
                                      (EXIT
                                       (COND
                                        ((|INMODGCD;test| |f| |g| |result| $)
                                         (PROGN
                                          (LETT #1# |result| . #3#)
                                          (GO #1#))))))))))))))))))))
                  NIL #5# G191 (EXIT NIL)))))))))
      #1# (EXIT #1#))))) 

(DEFUN |INMODGCD;merge| (|p| |q| $)
  (COND ((SPADCALL |p| |q| (QREFELT $ 13)) (CONS 0 |p|))
        ((SPADCALL |p| (|spadConstant| $ 10) (QREFELT $ 13)) (CONS 0 |q|))
        ((SPADCALL |q| (|spadConstant| $ 10) (QREFELT $ 13)) (CONS 0 |p|))
        ('T (CONS 1 "failed")))) 

(DEFUN |INMODGCD;modInverse| (|c| |p| $)
  (PROG (#1=#:G1930)
    (RETURN
     (QCAR
      (PROG2
          (LETT #1# (SPADCALL |c| |p| (|spadConstant| $ 28) (QREFELT $ 69))
                |INMODGCD;modInverse|)
          (QCDR #1#)
        (|check-union| (QEQCAR #1# 0)
                       (|Record| (|:| |coef1| (QREFELT $ 6))
                                 (|:| |coef2| (QREFELT $ 6)))
                       #1#)))))) 

(DEFUN |INMODGCD;exactquo| (|u| |v| |p| $)
  (PROG (|r| |invlcv|)
    (RETURN
     (SEQ
      (LETT |invlcv|
            (|INMODGCD;modInverse| (SPADCALL |v| (QREFELT $ 51)) |p| $)
            . #1=(|INMODGCD;exactquo|))
      (LETT |r|
            (SPADCALL |u|
                      (SPADCALL (SPADCALL |invlcv| |v| (QREFELT $ 41)) |p|
                                (QREFELT $ 17))
                      (QREFELT $ 71))
            . #1#)
      (COND
       ((NULL
         (SPADCALL (SPADCALL (QCDR |r|) |p| (QREFELT $ 17))
                   (|spadConstant| $ 11) (QREFELT $ 72)))
        (EXIT (CONS 1 "failed"))))
      (EXIT
       (CONS 0
             (SPADCALL (SPADCALL |invlcv| (QCAR |r|) (QREFELT $ 41)) |p|
                       (QREFELT $ 17)))))))) 

(DEFUN |INMODGCD;height| (|f| $)
  (PROG (#1=#:G1942 #2=#:G1941 #3=#:G1943 #4=#:G1946 |cc| |degf|)
    (RETURN
     (SEQ (LETT |degf| (SPADCALL |f| (QREFELT $ 24)) . #5=(|INMODGCD;height|))
          (EXIT
           (PROGN
            (LETT #1# NIL . #5#)
            (SEQ (LETT |cc| NIL . #5#)
                 (LETT #4# (SPADCALL |f| (QREFELT $ 74)) . #5#) G190
                 (COND
                  ((OR (ATOM #4#) (PROGN (LETT |cc| (CAR #4#) . #5#) NIL))
                   (GO G191)))
                 (SEQ
                  (EXIT
                   (PROGN
                    (LETT #3# (SPADCALL |cc| (QREFELT $ 66)) . #5#)
                    (COND (#1# (LETT #2# (MAX #2# #3#) . #5#))
                          ('T
                           (PROGN
                            (LETT #2# #3# . #5#)
                            (LETT #1# 'T . #5#)))))))
                 (LETT #4# (CDR #4#) . #5#) (GO G190) G191 (EXIT NIL))
            (COND (#1# #2#) ('T (|IdentityError| '|max|))))))))) 

(DEFUN |INMODGCD;mbound| (|f| |g| $)
  (PROG (|hg| |hf|)
    (RETURN
     (SEQ (LETT |hf| (|INMODGCD;height| |f| $) . #1=(|INMODGCD;mbound|))
          (LETT |hg| (|INMODGCD;height| |g| $) . #1#)
          (EXIT (SPADCALL 2 (MIN |hf| |hg|) (QREFELT $ 76))))))) 

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

(DEFUN |InnerModularGcd;| (|#1| |#2| |#3| |#4|)
  (PROG (|pv$| $ |dv$| DV$4 DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|InnerModularGcd|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT DV$4 (|devaluate| |#4|) . #1#)
      (LETT |dv$| (LIST '|InnerModularGcd| DV$1 DV$2 DV$3 DV$4) . #1#)
      (LETT $ (GETREFV 77) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|InnerModularGcd|
                  (LIST DV$1 DV$2 DV$3 DV$4) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (QSETREFV $ 9 |#4|)
      (COND
       ((|HasCategory| |#1| '(|IntegerNumberSystem|))
        (QSETREFV $ 17
                  (CONS (|dispatchFunction| |INMODGCD;reduction;BPRBP;1|) $)))
       ('T
        (QSETREFV $ 17
                  (CONS (|dispatchFunction| |INMODGCD;reduction;BPRBP;2|) $))))
      (QSETREFV $ 19
                (|EuclideanModularRing| |#1| |#2| |#1| (ELT $ 17)
                                        (CONS (|function| |INMODGCD;merge|) $)
                                        (CONS (|function| |INMODGCD;exactquo|)
                                              $)))
      (QSETREFV $ 20 (|HasCategory| |#1| '(|CharacteristicZero|)))
      $)))) 

(MAKEPROP '|InnerModularGcd| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|local| |#4|) (0 . |Zero|) (4 . |Zero|)
              (|Boolean|) (8 . =) (14 . |symmetricRemainder|) (|Mapping| 6 6)
              (20 . |map|) (26 . |reduction|) (32 . |rem|) 'FP '|zeroChar|
              (38 . |zero?|) (43 . |Zero|) (|NonNegativeInteger|)
              (47 . |degree|) (|List| 7) |INMODGCD;modularGcdPrimitive;LBP;3|
              (52 . |remove!|) (58 . |One|) (62 . |One|) (66 . |minimumDegree|)
              (|EuclideanModularRing| 6 7 6 '|reduction| '|merge| '|exactquo|)
              (71 . |Zero|) (75 . |monomial|) (|Union| $ '"failed")
              (81 . |exquo|) (87 . *) (93 . |content|) (|List| $) (98 . |gcd|)
              (103 . |exquo|) (109 . *) (115 . |member?|) (|List| 23)
              (121 . |member?|) |INMODGCD;modularGcd;LBP;4| (|Integer|)
              (127 . |position|) (133 . |elt|) (139 . |coefficient|)
              (145 . |exquo|) (151 . |leadingCoefficient|) (156 . |gcd|)
              (162 . |zero?|) (167 . |reduce|) (173 . |gcd|) (179 . |coerce|)
              (184 . |coerce|) (189 . *) (195 . |euclideanSize|) (200 . *)
              (206 . -) (212 . +) (218 . |One|) (|Fraction| 46) (222 . |One|)
              (226 . |euclideanSize|)
              (|Record| (|:| |coef1| $) (|:| |coef2| $)) (|Union| 67 '"failed")
              (231 . |extendedEuclidean|)
              (|Record| (|:| |quotient| $) (|:| |remainder| $))
              (238 . |monicDivide|) (244 . =) (|List| 6) (250 . |coefficients|)
              (|PositiveInteger|) (255 . *))
           '#(|reduction| 261 |modularGcdPrimitive| 267 |modularGcd| 272) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 76
                                                 '(0 6 0 10 0 7 0 11 2 6 12 0 0
                                                   13 2 6 0 0 0 14 2 7 0 15 0
                                                   16 2 0 7 7 6 17 2 6 0 0 0 18
                                                   1 7 12 0 21 0 19 0 22 1 7 23
                                                   0 24 2 25 0 7 0 27 0 6 0 28
                                                   0 7 0 29 1 7 23 0 30 0 31 0
                                                   32 2 7 0 6 23 33 2 7 34 0 0
                                                   35 2 7 0 0 0 36 1 7 6 0 37 1
                                                   6 0 38 39 2 7 34 0 6 40 2 7
                                                   0 6 0 41 2 25 12 7 0 42 2 43
                                                   12 23 0 44 2 43 46 23 0 47 2
                                                   25 7 0 46 48 2 7 6 0 23 49 2
                                                   6 34 0 0 50 1 7 6 0 51 2 6 0
                                                   0 0 52 1 6 12 0 53 2 19 0 7
                                                   6 54 2 19 0 0 0 55 1 19 7 0
                                                   56 1 7 0 6 57 2 6 0 0 0 58 1
                                                   19 23 0 59 2 19 0 0 0 60 2 7
                                                   0 0 0 61 2 7 0 0 0 62 0 19 0
                                                   63 0 64 0 65 1 6 23 0 66 3 6
                                                   68 0 0 0 69 2 7 70 0 0 71 2
                                                   7 12 0 0 72 1 7 73 0 74 2 23
                                                   0 75 0 76 2 0 7 7 6 17 1 0 7
                                                   25 26 1 0 7 25 45)))))
           '|lookupComplete|)) 
