
(/VERSIONCHECK 2) 

(DEFUN |IBACHIN;applyFrobToMatrix| (|mat| |q| $)
  (PROG (|j| |i| |ans| |n| |m|)
    (RETURN
     (SEQ
      (LETT |m| (SPADCALL |mat| (QREFELT $ 11))
            . #1=(|IBACHIN;applyFrobToMatrix|))
      (LETT |n| (SPADCALL |mat| (QREFELT $ 12)) . #1#)
      (LETT |ans| (SPADCALL |m| |n| (|spadConstant| $ 14) (QREFELT $ 15))
            . #1#)
      (SEQ (LETT |i| 1 . #1#) G190 (COND ((QSGREATERP |i| |m|) #2=(GO G191)))
           (SEQ
            (EXIT
             (SEQ (LETT |j| 1 . #1#) G190 (COND ((QSGREATERP |j| |n|) #2#))
                  (SEQ
                   (EXIT
                    (SPADCALL |ans| |i| |j|
                              (SPADCALL
                               (CONS #'|IBACHIN;applyFrobToMatrix!0|
                                     (VECTOR $ |q|))
                               (SPADCALL |mat| |i| |j| (QREFELT $ 18))
                               (QREFELT $ 20))
                              (QREFELT $ 21))))
                  (LETT |j| (QSADD1 |j|) . #1#) #3=(GO G190) G191 (EXIT NIL))))
           (LETT |i| (QSADD1 |i|) . #1#) #3# G191 (EXIT NIL))
      (EXIT |ans|))))) 

(DEFUN |IBACHIN;applyFrobToMatrix!0| (|k1| $$)
  (PROG (|q| $)
    (LETT |q| (QREFELT $$ 1) . #1=(|IBACHIN;applyFrobToMatrix|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |k1| |q| (QREFELT $ 16)))))) 

(DEFUN |IBACHIN;listConjugateBases;R2NniL;2| (|bas| |q| |n| $)
  (PROG (|outList| |newBasis| |bDen| |bInv| |b| #1=#:G678 |i|)
    (RETURN
     (SEQ
      (LETT |outList| (SPADCALL |bas| (QREFELT $ 24))
            . #2=(|IBACHIN;listConjugateBases;R2NniL;2|))
      (LETT |b| (QVELT |bas| 0) . #2#) (LETT |bInv| (QVELT |bas| 2) . #2#)
      (LETT |bDen| (QVELT |bas| 1) . #2#)
      (SEQ (LETT |i| 1 . #2#) (LETT #1# (- |n| 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ (LETT |b| (|IBACHIN;applyFrobToMatrix| |b| |q| $) . #2#)
                (LETT |bInv| (|IBACHIN;applyFrobToMatrix| |bInv| |q| $) . #2#)
                (LETT |bDen|
                      (SPADCALL
                       (CONS #'|IBACHIN;listConjugateBases;R2NniL;2!0|
                             (VECTOR $ |q|))
                       |bDen| (QREFELT $ 20))
                      . #2#)
                (LETT |newBasis| (VECTOR |b| |bDen| |bInv|) . #2#)
                (EXIT (LETT |outList| (CONS |newBasis| |outList|) . #2#)))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT (NREVERSE |outList|)))))) 

(DEFUN |IBACHIN;listConjugateBases;R2NniL;2!0| (|k1| $$)
  (PROG (|q| $)
    (LETT |q| (QREFELT $$ 1) . #1=(|IBACHIN;listConjugateBases;R2NniL;2|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |k1| |q| (QREFELT $ 16)))))) 

(DEFUN |IBACHIN;factorList;K3NniL;3| (|a| |q| |n| |k| $)
  (PROG (|outList| |coef| #1=#:G683 |i| |xx|)
    (RETURN
     (SEQ
      (LETT |coef| (SPADCALL |a| 0 (QREFELT $ 29))
            . #2=(|IBACHIN;factorList;K3NniL;3|))
      (LETT |xx| (SPADCALL (|spadConstant| $ 25) 1 (QREFELT $ 29)) . #2#)
      (LETT |outList|
            (SPADCALL
             (SPADCALL (SPADCALL |xx| |coef| (QREFELT $ 30)) |k|
                       (QREFELT $ 31))
             (QREFELT $ 33))
            . #2#)
      (SEQ (LETT |i| 1 . #2#) (LETT #1# (- |n| 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ (LETT |coef| (SPADCALL |coef| |q| (QREFELT $ 31)) . #2#)
                (EXIT
                 (LETT |outList|
                       (CONS
                        (SPADCALL (SPADCALL |xx| |coef| (QREFELT $ 30)) |k|
                                  (QREFELT $ 31))
                        |outList|)
                       . #2#)))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT (NREVERSE |outList|)))))) 

(DEFUN |IBACHIN;basisInfoToPolys| (|mat| |lcm| |den| $)
  (PROG (|outList| |pp| |j| |i| |n1| |n|)
    (RETURN
     (SEQ
      (LETT |n| (SPADCALL |mat| (QREFELT $ 11))
            . #1=(|IBACHIN;basisInfoToPolys|))
      (LETT |n1| (- |n| 1) . #1#) (LETT |outList| NIL . #1#)
      (SEQ (LETT |i| 1 . #1#) G190 (COND ((QSGREATERP |i| |n|) #2=(GO G191)))
           (SEQ (LETT |pp| (|spadConstant| $ 35) . #1#)
                (SEQ (LETT |j| 0 . #1#) G190 (COND ((QSGREATERP |j| |n1|) #2#))
                     (SEQ
                      (EXIT
                       (LETT |pp|
                             (SPADCALL |pp|
                                       (SPADCALL
                                        (SPADCALL
                                         (SPADCALL |lcm| |den| (QREFELT $ 36))
                                         (SPADCALL |mat| |i| (+ |j| 1)
                                                   (QREFELT $ 18))
                                         (QREFELT $ 37))
                                        |j| (QREFELT $ 38))
                                       (QREFELT $ 39))
                             . #1#)))
                     (LETT |j| (QSADD1 |j|) . #1#) #3=(GO G190) G191
                     (EXIT NIL))
                (EXIT (LETT |outList| (CONS |pp| |outList|) . #1#)))
           (LETT |i| (QSADD1 |i|) . #1#) #3# G191 (EXIT NIL))
      (EXIT (NREVERSE |outList|)))))) 

(DEFUN |IBACHIN;basesToPolyLists| (|basisList| |lcm| $)
  (PROG (#1=#:G693 |b| #2=#:G692)
    (RETURN
     (SEQ
      (PROGN
       (LETT #2# NIL . #3=(|IBACHIN;basesToPolyLists|))
       (SEQ (LETT |b| NIL . #3#) (LETT #1# |basisList| . #3#) G190
            (COND
             ((OR (ATOM #1#) (PROGN (LETT |b| (CAR #1#) . #3#) NIL))
              (GO G191)))
            (SEQ
             (EXIT
              (LETT #2#
                    (CONS
                     (|IBACHIN;basisInfoToPolys| (QVELT |b| 0) |lcm|
                      (QVELT |b| 1) $)
                     #2#)
                    . #3#)))
            (LETT #1# (CDR #1#) . #3#) (GO G190) G191
            (EXIT (NREVERSE0 #2#)))))))) 

(DEFUN |IBACHIN;approximateExtendedEuclidean| (|f| |g| |p| |n| $)
  (PROG (|t| |s| |pPower| |quorem| |tau| |sigma| |rhs| #1=#:G701 |num| |i| |t1|
         |s1| |tt1| |ss1| |ee| |gBar| |fBar| |gSUP| |fSUP| |sae|)
    (RETURN
     (SEQ
      (LETT |sae| (|SimpleAlgebraicExtension| (QREFELT $ 6) (QREFELT $ 7) |p|)
            . #2=(|IBACHIN;approximateExtendedEuclidean|))
      (LETT |fSUP| (SPADCALL |f| (QREFELT $ 41)) . #2#)
      (LETT |gSUP| (SPADCALL |g| (QREFELT $ 41)) . #2#)
      (LETT |fBar|
            (SPADCALL
             (|compiledLookupCheck| '|convert|
                                    (LIST '$ (|devaluate| (ELT $ 7))) |sae|)
             |fSUP|
             (|compiledLookupCheck| '|map|
                                    (LIST
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| |sae|))
                                     (LIST '|Mapping| (|devaluate| |sae|)
                                           (|devaluate| (ELT $ 7)))
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| (ELT $ 7))))
                                    (|SparseUnivariatePolynomialFunctions2|
                                     (ELT $ 7) |sae|)))
            . #2#)
      (LETT |gBar|
            (SPADCALL
             (|compiledLookupCheck| '|convert|
                                    (LIST '$ (|devaluate| (ELT $ 7))) |sae|)
             |gSUP|
             (|compiledLookupCheck| '|map|
                                    (LIST
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| |sae|))
                                     (LIST '|Mapping| (|devaluate| |sae|)
                                           (|devaluate| (ELT $ 7)))
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| (ELT $ 7))))
                                    (|SparseUnivariatePolynomialFunctions2|
                                     (ELT $ 7) |sae|)))
            . #2#)
      (LETT |ee|
            (SPADCALL |fBar| |gBar|
                      (|compiledLookupCheck| '|extendedEuclidean|
                                             (LIST
                                              (LIST '|Record|
                                                    (LIST '|:| '|coef1| '$)
                                                    (LIST '|:| '|coef2| '$)
                                                    (LIST '|:| '|generator|
                                                          '$))
                                              '$ '$)
                                             (|SparseUnivariatePolynomial|
                                              |sae|)))
            . #2#)
      (COND
       ((NULL
         (SPADCALL (QVELT |ee| 2)
                   (SPADCALL
                    (|compiledLookupCheck| '|One| (LIST '$)
                                           (|SparseUnivariatePolynomial|
                                            |sae|)))
                   (|compiledLookupCheck| '= (LIST (LIST '|Boolean|) '$ '$)
                                          (|SparseUnivariatePolynomial|
                                           |sae|))))
        (EXIT (|error| "polynomials aren't relatively prime"))))
      (LETT |ss1| (QVELT |ee| 0) . #2#) (LETT |tt1| (QVELT |ee| 1) . #2#)
      (LETT |s1|
            (SPADCALL
             (|compiledLookupCheck| '|convert|
                                    (LIST (|devaluate| (ELT $ 7)) '$) |sae|)
             |ss1|
             (|compiledLookupCheck| '|map|
                                    (LIST
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| (ELT $ 7)))
                                     (LIST '|Mapping| (|devaluate| (ELT $ 7))
                                           (|devaluate| |sae|))
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| |sae|)))
                                    (|SparseUnivariatePolynomialFunctions2|
                                     |sae| (ELT $ 7))))
            . #2#)
      (LETT |s| |s1| . #2#)
      (LETT |t1|
            (SPADCALL
             (|compiledLookupCheck| '|convert|
                                    (LIST (|devaluate| (ELT $ 7)) '$) |sae|)
             |tt1|
             (|compiledLookupCheck| '|map|
                                    (LIST
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| (ELT $ 7)))
                                     (LIST '|Mapping| (|devaluate| (ELT $ 7))
                                           (|devaluate| |sae|))
                                     (LIST '|SparseUnivariatePolynomial|
                                           (|devaluate| |sae|)))
                                    (|SparseUnivariatePolynomialFunctions2|
                                     |sae| (ELT $ 7))))
            . #2#)
      (LETT |t| |t1| . #2#) (LETT |pPower| |p| . #2#)
      (SEQ (LETT |i| 2 . #2#) G190 (COND ((QSGREATERP |i| |n|) (GO G191)))
           (SEQ
            (LETT |num|
                  (SPADCALL
                   (SPADCALL (|spadConstant| $ 44)
                             (SPADCALL |s| |fSUP| (QREFELT $ 42))
                             (QREFELT $ 45))
                   (SPADCALL |t| |gSUP| (QREFELT $ 42)) (QREFELT $ 45))
                  . #2#)
            (LETT |rhs|
                  (PROG2
                      (LETT #1# (SPADCALL |num| |pPower| (QREFELT $ 47)) . #2#)
                      (QCDR #1#)
                    (|check-union| (QEQCAR #1# 0)
                                   (|SparseUnivariatePolynomial| (QREFELT $ 7))
                                   #1#))
                  . #2#)
            (LETT |sigma|
                  (SPADCALL
                   (CONS #'|IBACHIN;approximateExtendedEuclidean!0|
                         (VECTOR $ |p|))
                   (SPADCALL |s1| |rhs| (QREFELT $ 42)) (QREFELT $ 50))
                  . #2#)
            (LETT |tau|
                  (SPADCALL
                   (CONS #'|IBACHIN;approximateExtendedEuclidean!1|
                         (VECTOR $ |p|))
                   (SPADCALL |t1| |rhs| (QREFELT $ 42)) (QREFELT $ 50))
                  . #2#)
            (LETT |s|
                  (SPADCALL |s| (SPADCALL |pPower| |sigma| (QREFELT $ 51))
                            (QREFELT $ 52))
                  . #2#)
            (LETT |t|
                  (SPADCALL |t| (SPADCALL |pPower| |tau| (QREFELT $ 51))
                            (QREFELT $ 52))
                  . #2#)
            (LETT |quorem| (SPADCALL |s| |gSUP| (QREFELT $ 54)) . #2#)
            (LETT |pPower| (SPADCALL |pPower| |p| (QREFELT $ 37)) . #2#)
            (LETT |s|
                  (SPADCALL
                   (CONS #'|IBACHIN;approximateExtendedEuclidean!2|
                         (VECTOR $ |pPower|))
                   (QCDR |quorem|) (QREFELT $ 50))
                  . #2#)
            (EXIT
             (LETT |t|
                   (SPADCALL
                    (CONS #'|IBACHIN;approximateExtendedEuclidean!3|
                          (VECTOR $ |pPower|))
                    (SPADCALL |t|
                              (SPADCALL |fSUP| (QCAR |quorem|) (QREFELT $ 42))
                              (QREFELT $ 52))
                    (QREFELT $ 50))
                   . #2#)))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT
       (CONS (SPADCALL |s| (QREFELT $ 55)) (SPADCALL |t| (QREFELT $ 55)))))))) 

(DEFUN |IBACHIN;approximateExtendedEuclidean!3| (|r1| $$)
  (PROG (|pPower| $)
    (LETT |pPower| (QREFELT $$ 1)
          . #1=(|IBACHIN;approximateExtendedEuclidean|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |pPower| (QREFELT $ 48)))))) 

(DEFUN |IBACHIN;approximateExtendedEuclidean!2| (|r1| $$)
  (PROG (|pPower| $)
    (LETT |pPower| (QREFELT $$ 1)
          . #1=(|IBACHIN;approximateExtendedEuclidean|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |pPower| (QREFELT $ 48)))))) 

(DEFUN |IBACHIN;approximateExtendedEuclidean!1| (|r1| $$)
  (PROG (|p| $)
    (LETT |p| (QREFELT $$ 1) . #1=(|IBACHIN;approximateExtendedEuclidean|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |p| (QREFELT $ 48)))))) 

(DEFUN |IBACHIN;approximateExtendedEuclidean!0| (|r1| $$)
  (PROG (|p| $)
    (LETT |p| (QREFELT $$ 1) . #1=(|IBACHIN;approximateExtendedEuclidean|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |p| (QREFELT $ 48)))))) 

(DEFUN |IBACHIN;mapChineseToList| (|list| |polyList| |i| |den| $)
  (PROG (#1=#:G723 |pp| #2=#:G722 |invPoly| |n| #3=#:G715 |prime| |factoredDen|
         |q| |j| |p| #4=#:G721)
    (RETURN
     (SEQ (LETT |q| (|spadConstant| $ 43) . #5=(|IBACHIN;mapChineseToList|))
          (SEQ (LETT |j| 1 . #5#) (LETT #4# (- |i| 1) . #5#) G190
               (COND ((QSGREATERP |j| #4#) #6=(GO G191)))
               (SEQ
                (LETT |q|
                      (SPADCALL |q| (|SPADfirst| |polyList|) (QREFELT $ 56))
                      . #5#)
                (EXIT (LETT |polyList| (CDR |polyList|) . #5#)))
               (LETT |j| (QSADD1 |j|) . #5#) #7=(GO G190) G191 (EXIT NIL))
          (LETT |p| (|SPADfirst| |polyList|) . #5#)
          (LETT |polyList| (CDR |polyList|) . #5#)
          (SEQ (LETT |j| (+ |i| 1) . #5#) G190
               (COND ((NULL (COND ((NULL |polyList|) 'NIL) ('T 'T))) #6#))
               (SEQ
                (LETT |q|
                      (SPADCALL |q| (|SPADfirst| |polyList|) (QREFELT $ 56))
                      . #5#)
                (EXIT (LETT |polyList| (CDR |polyList|) . #5#)))
               (LETT |j| (+ |j| 1) . #5#) #7# G191 (EXIT NIL))
          (LETT |factoredDen| (SPADCALL |den| (QREFELT $ 59)) . #5#)
          (LETT |prime| (SPADCALL |factoredDen| 1 (QREFELT $ 60)) . #5#)
          (LETT |n|
                (PROG1
                    (LETT #3# (SPADCALL |factoredDen| 1 (QREFELT $ 61)) . #5#)
                  (|check-subtype| (>= #3# 0) '(|NonNegativeInteger|) #3#))
                . #5#)
          (LETT |invPoly|
                (QCAR
                 (|IBACHIN;approximateExtendedEuclidean| |q| |p| |prime| |n|
                  $))
                . #5#)
          (EXIT
           (PROGN
            (LETT #2# NIL . #5#)
            (SEQ (LETT |pp| NIL . #5#) (LETT #1# |list| . #5#) G190
                 (COND
                  ((OR (ATOM #1#) (PROGN (LETT |pp| (CAR #1#) . #5#) NIL))
                   #6#))
                 (SEQ
                  (EXIT
                   (LETT #2#
                         (CONS
                          (QCDR
                           (SPADCALL
                            (SPADCALL (SPADCALL |pp| |invPoly| (QREFELT $ 56))
                                      |q| (QREFELT $ 56))
                            (SPADCALL |p| |q| (QREFELT $ 56)) (QREFELT $ 62)))
                          #2#)
                         . #5#)))
                 (LETT #1# (CDR #1#) . #5#) #7# G191
                 (EXIT (NREVERSE0 #2#))))))))) 

(DEFUN |IBACHIN;polyListToMatrix| (|polyList| |n| $)
  (PROG (|poly| |i| #1=#:G730 |mat|)
    (RETURN
     (SEQ
      (LETT |mat| (SPADCALL |n| |n| (|spadConstant| $ 14) (QREFELT $ 15))
            . #2=(|IBACHIN;polyListToMatrix|))
      (SEQ (LETT |poly| NIL . #2#) (LETT #1# |polyList| . #2#)
           (LETT |i| 1 . #2#) G190
           (COND
            ((OR (QSGREATERP |i| |n|) (ATOM #1#)
                 (PROGN (LETT |poly| (CAR #1#) . #2#) NIL))
             #3=(GO G191)))
           (SEQ
            (EXIT
             (SEQ G190
                  (COND
                   ((NULL
                     (COND ((SPADCALL |poly| (QREFELT $ 64)) 'NIL) ('T 'T)))
                    #3#))
                  (SEQ
                   (SPADCALL |mat| |i| (+ (SPADCALL |poly| (QREFELT $ 65)) 1)
                             (SPADCALL |poly| (QREFELT $ 66)) (QREFELT $ 67))
                   (EXIT (LETT |poly| (SPADCALL |poly| (QREFELT $ 68)) . #2#)))
                  NIL #4=(GO G190) G191 (EXIT NIL))))
           (LETT |i| (PROG1 (QSADD1 |i|) (LETT #1# (CDR #1#) . #2#)) . #2#) #4#
           G191 (EXIT NIL))
      (EXIT |mat|))))) 

(DEFUN |IBACHIN;chineseRemainder;LLNniR;9| (|factors| |factorBases| |n| $)
  (PROG (|matInv| |mat| |basisPolys| |basisPolyLists| |polyList| |i| #1=#:G742
         |pList| |factorBasisPolyLists| |denLCM| #2=#:G741 |base| #3=#:G740)
    (RETURN
     (SEQ
      (LETT |denLCM|
            (SPADCALL (ELT $ 69)
                      (PROGN
                       (LETT #3# NIL
                             . #4=(|IBACHIN;chineseRemainder;LLNniR;9|))
                       (SEQ (LETT |base| NIL . #4#)
                            (LETT #2# |factorBases| . #4#) G190
                            (COND
                             ((OR (ATOM #2#)
                                  (PROGN (LETT |base| (CAR #2#) . #4#) NIL))
                              #5=(GO G191)))
                            (SEQ
                             (EXIT
                              (LETT #3# (CONS (QVELT |base| 1) #3#) . #4#)))
                            (LETT #2# (CDR #2#) . #4#) #6=(GO G190) G191
                            (EXIT (NREVERSE0 #3#))))
                      (QREFELT $ 72))
            . #4#)
      (EXIT
       (COND
        ((SPADCALL |denLCM| (|spadConstant| $ 26) (QREFELT $ 73))
         (VECTOR (SPADCALL |n| (|spadConstant| $ 26) (QREFELT $ 74))
                 (|spadConstant| $ 26)
                 (SPADCALL |n| (|spadConstant| $ 26) (QREFELT $ 74))))
        ('T
         (SEQ
          (LETT |factorBasisPolyLists|
                (|IBACHIN;basesToPolyLists| |factorBases| |denLCM| $) . #4#)
          (LETT |basisPolyLists| NIL . #4#)
          (SEQ (LETT |pList| NIL . #4#) (LETT #1# |factorBasisPolyLists| . #4#)
               (LETT |i| 1 . #4#) G190
               (COND
                ((OR (ATOM #1#) (PROGN (LETT |pList| (CAR #1#) . #4#) NIL))
                 #5#))
               (SEQ
                (LETT |polyList|
                      (|IBACHIN;mapChineseToList| |pList| |factors| |i|
                       |denLCM| $)
                      . #4#)
                (EXIT
                 (LETT |basisPolyLists| (CONS |polyList| |basisPolyLists|)
                       . #4#)))
               (LETT |i| (PROG1 (QSADD1 |i|) (LETT #1# (CDR #1#) . #4#)) . #4#)
               #6# G191 (EXIT NIL))
          (LETT |basisPolys|
                (SPADCALL (NREVERSE |basisPolyLists|) (QREFELT $ 77)) . #4#)
          (LETT |mat|
                (SPADCALL
                 (SPADCALL (|IBACHIN;polyListToMatrix| |basisPolys| |n| $)
                           |denLCM| (QREFELT $ 79))
                 (QREFELT $ 80))
                . #4#)
          (LETT |matInv| (SPADCALL |mat| |denLCM| (QREFELT $ 82)) . #4#)
          (EXIT (VECTOR |mat| |denLCM| |matInv|)))))))))) 

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

(DEFUN |ChineseRemainderToolsForIntegralBases;| (|#1| |#2| |#3|)
  (PROG (|pv$| $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|)
            . #1=(|ChineseRemainderToolsForIntegralBases|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT |dv$|
            (LIST '|ChineseRemainderToolsForIntegralBases| DV$1 DV$2 DV$3)
            . #1#)
      (LETT $ (GETREFV 84) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|ChineseRemainderToolsForIntegralBases|
                  (LIST DV$1 DV$2 DV$3) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      $)))) 

(MAKEPROP '|ChineseRemainderToolsForIntegralBases| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|NonNegativeInteger|) (|Matrix| 7) (0 . |nrows|)
              (5 . |ncols|) (10 . |Zero|) (14 . |Zero|) (18 . |new|) (25 . ^)
              (|Integer|) (31 . |qelt|) (|Mapping| 6 6) (38 . |map|)
              (44 . |qsetelt!|)
              (|Record| (|:| |basis| 10) (|:| |basisDen| 7)
                        (|:| |basisInv| 10))
              (|List| 22) (52 . |list|) (57 . |One|) (61 . |One|)
              |IBACHIN;listConjugateBases;R2NniL;2|
              (|SparseUnivariatePolynomial| 6) (65 . |monomial|) (71 . -)
              (77 . ^) (|List| 28) (83 . |list|) |IBACHIN;factorList;K3NniL;3|
              (88 . |Zero|) (92 . |quo|) (98 . *) (104 . |monomial|) (110 . +)
              (|SparseUnivariatePolynomial| 7) (116 . |makeSUP|) (121 . *)
              (127 . |One|) (131 . |One|) (135 . -) (|Union| $ '"failed")
              (141 . |exquo|) (147 . |rem|) (|Mapping| 7 7) (153 . |map|)
              (159 . *) (165 . +)
              (|Record| (|:| |quotient| $) (|:| |remainder| $))
              (171 . |monicDivide|) (177 . |unmakeSUP|) (182 . *)
              (|Factored| 7) (|DistinctDegreeFactorize| 6 7) (188 . |factor|)
              (193 . |nthFactor|) (199 . |nthExponent|) (205 . |monicDivide|)
              (|Boolean|) (211 . |zero?|) (216 . |degree|)
              (221 . |leadingCoefficient|) (226 . |setelt|) (234 . |reductum|)
              (239 . |lcm|) (|Mapping| 7 7 7) (|List| 7) (245 . |reduce|)
              (251 . =) (257 . |scalarMatrix|) (|List| $) (|List| 8)
              (263 . |concat|) (|ModularHermitianRowReduction| 7)
              (268 . |rowEchelon|) (274 . |squareTop|)
              (|TriangularMatrixOperations| 7 (|Vector| 7) (|Vector| 7) 10)
              (279 . |UpTriBddDenomInv|) |IBACHIN;chineseRemainder;LLNniR;9|)
           '#(|listConjugateBases| 285 |factorList| 292 |chineseRemainder| 300)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 83
                                                 '(1 10 9 0 11 1 10 9 0 12 0 6
                                                   0 13 0 7 0 14 3 10 0 9 9 7
                                                   15 2 6 0 0 9 16 3 10 7 0 17
                                                   17 18 2 7 0 19 0 20 4 10 7 0
                                                   17 17 7 21 1 23 0 22 24 0 6
                                                   0 25 0 7 0 26 2 28 0 6 9 29
                                                   2 28 0 0 0 30 2 28 0 0 9 31
                                                   1 32 0 28 33 0 8 0 35 2 7 0
                                                   0 0 36 2 7 0 0 0 37 2 8 0 7
                                                   9 38 2 8 0 0 0 39 1 8 40 0
                                                   41 2 40 0 0 0 42 0 8 0 43 0
                                                   40 0 44 2 40 0 0 0 45 2 40
                                                   46 0 7 47 2 7 0 0 0 48 2 40
                                                   0 49 0 50 2 40 0 7 0 51 2 40
                                                   0 0 0 52 2 40 53 0 0 54 1 8
                                                   0 40 55 2 8 0 0 0 56 1 58 57
                                                   7 59 2 57 7 0 17 60 2 57 17
                                                   0 17 61 2 8 53 0 0 62 1 8 63
                                                   0 64 1 8 9 0 65 1 8 7 0 66 4
                                                   10 7 0 17 17 7 67 1 8 0 0 68
                                                   2 7 0 0 0 69 2 71 7 70 0 72
                                                   2 7 63 0 0 73 2 10 0 9 7 74
                                                   1 76 0 75 77 2 78 10 10 7 79
                                                   1 10 0 0 80 2 81 10 10 7 82
                                                   3 0 23 22 9 9 27 4 0 32 6 9
                                                   9 9 34 3 0 22 76 23 9
                                                   83)))))
           '|lookupComplete|)) 
