
(/VERSIONCHECK 2) 

(DEFUN |ASSOCEQ;makeMatrix| (|v| |n| $)
  (PROG (#1=#:G1806 |i| #2=#:G1805)
    (RETURN
     (SEQ
      (SPADCALL
       (PROGN
        (LETT #2# NIL . #3=(|ASSOCEQ;makeMatrix|))
        (SEQ (LETT |i| 1 . #3#) (LETT #1# (QVSIZE |v|) . #3#) G190
             (COND ((QSGREATERP |i| #1#) (GO G191)))
             (SEQ
              (EXIT
               (LETT #2#
                     (CONS
                      (SPADCALL
                       (SPADCALL (SPADCALL |v| |i| (QREFELT $ 13)) |n|
                                 (QREFELT $ 15))
                       (QREFELT $ 17))
                      #2#)
                     . #3#)))
             (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
             (EXIT (NREVERSE0 #2#))))
       (QREFELT $ 19)))))) 

(DEFUN |ASSOCEQ;associatedSystem;LPiR;2| (|op| |m| $)
  (PROG (|u| #1=#:G1839 #2=#:G1837 |j| #3=#:G1830 |k| |wi| |eq| |i| |a|
         #4=#:G1819 #5=#:G1851 #6=#:G1850 |an| |m1| #7=#:G1814 M |ww| |s| |w| S
         |n| #8=#:G1809)
    (RETURN
     (SEQ
      (LETT S
            (|SetOfMIntegersInOneToN| |m|
                                      (LETT |n|
                                            (PROG1
                                                (LETT #8#
                                                      (SPADCALL |op|
                                                                (QREFELT $ 21))
                                                      . #9=(|ASSOCEQ;associatedSystem;LPiR;2|))
                                              (|check-subtype| (> #8# 0)
                                                               '(|PositiveInteger|)
                                                               #8#))
                                            . #9#))
            . #9#)
      (LETT |w|
            (SPADCALL
             (|compiledLookupCheck| '|enumerate| (LIST (LIST '|List| '$)) S))
            . #9#)
      (LETT |s|
            (SPADCALL
             (|compiledLookupCheck| '|size| (LIST (LIST '|NonNegativeInteger|))
                                    S))
            . #9#)
      (LETT |ww| (MAKEARR1 |s| NIL) . #9#)
      (LETT M (SPADCALL |s| |s| (|spadConstant| $ 22) (QREFELT $ 24)) . #9#)
      (LETT |m1|
            (PROG1 (LETT #7# (- |m| 1) . #9#)
              (|check-subtype| (> #7# 0) '(|PositiveInteger|) #7#))
            . #9#)
      (LETT |an| (SPADCALL |op| (QREFELT $ 26)) . #9#)
      (LETT |a|
            (PROGN
             (LETT #6# (GETREFV |n|) . #9#)
             (SEQ (LETT |j| 0 . #9#) (LETT #5# (- |n| 1) . #9#) G190
                  (COND ((QSGREATERP |j| #5#) #10=(GO G191)))
                  (SEQ
                   (EXIT
                    (SETELT #6# |j|
                            (SPADCALL
                             (PROG2
                                 (LETT #4#
                                       (SPADCALL
                                        (SPADCALL |op| |j| (QREFELT $ 28)) |an|
                                        (QREFELT $ 30))
                                       . #9#)
                                 (QCDR #4#)
                               (|check-union| (QEQCAR #4# 0) (QREFELT $ 6)
                                              #4#))
                             (QREFELT $ 31)))))
                  (LETT |j| (QSADD1 |j|) . #9#) #11=(GO G190) G191 (EXIT NIL))
             #6#)
            . #9#)
      (SEQ (LETT |i| 1 . #9#) G190 (COND ((QSGREATERP |i| |s|) #10#))
           (SEQ (LETT |eq| (MAKEARR1 |s| (|spadConstant| $ 22)) . #9#)
                (LETT |wi|
                      (SPADCALL |w| |i|
                                (|compiledLookupCheck| '|elt|
                                                       (LIST (|devaluate| S) '$
                                                             (LIST '|Integer|))
                                                       (|List| S)))
                      . #9#)
                (SPADCALL |ww| |i|
                          (SPADCALL |wi|
                                    (|compiledLookupCheck| '|elements|
                                                           (LIST
                                                            (LIST '|List|
                                                                  (LIST
                                                                   '|PositiveInteger|))
                                                            '$)
                                                           S))
                          (QREFELT $ 34))
                (SEQ (LETT |k| 1 . #9#) G190
                     (COND ((QSGREATERP |k| |m1|) #10#))
                     (SEQ
                      (LETT |u|
                            (SPADCALL |wi|
                                      (PROG1 (LETT #3# |k| . #9#)
                                        (|check-subtype| (> #3# 0)
                                                         '(|PositiveInteger|)
                                                         #3#))
                                      (|compiledLookupCheck|
                                       '|incrementKthElement|
                                       (LIST (LIST '|Union| '$ '#12="failed")
                                             '$ (LIST '|PositiveInteger|))
                                       S))
                            . #9#)
                      (EXIT
                       (COND
                        ((QEQCAR |u| 0)
                         (SPADCALL |eq|
                                   (SPADCALL (QCDR |u|)
                                             (|compiledLookupCheck| '|lookup|
                                                                    (LIST
                                                                     (LIST
                                                                      '|PositiveInteger|)
                                                                     '$)
                                                                    S))
                                   (|spadConstant| $ 25) (QREFELT $ 35))))))
                     (LETT |k| (QSADD1 |k|) . #9#) #11# G191 (EXIT NIL))
                (COND
                 ((SPADCALL |n| |wi|
                            (|compiledLookupCheck| '|member?|
                                                   (LIST (LIST '|Boolean|)
                                                         (LIST
                                                          '|PositiveInteger|)
                                                         '$)
                                                   S))
                  (SEQ (LETT |j| 1 . #9#) G190
                       (COND ((QSGREATERP |j| |n|) #10#))
                       (SEQ
                        (EXIT
                         (COND
                          ((COND
                            ((SPADCALL (SPADCALL |a| |j| (QREFELT $ 36))
                                       (|spadConstant| $ 22) (QREFELT $ 38))
                             'NIL)
                            ('T 'T))
                           (SEQ
                            (LETT |u|
                                  (SPADCALL |wi| |m|
                                            (PROG1 (LETT #2# |j| . #9#)
                                              (|check-subtype| (> #2# 0)
                                                               '(|PositiveInteger|)
                                                               #2#))
                                            (|compiledLookupCheck|
                                             '|replaceKthElement|
                                             (LIST (LIST '|Union| '$ '#12#) '$
                                                   (LIST '|PositiveInteger|)
                                                   (LIST '|PositiveInteger|))
                                             S))
                                  . #9#)
                            (EXIT
                             (COND
                              ((QEQCAR |u| 0)
                               (SPADCALL |eq|
                                         (SPADCALL (QCDR |u|)
                                                   (|compiledLookupCheck|
                                                    '|lookup|
                                                    (LIST
                                                     (LIST '|PositiveInteger|)
                                                     '$)
                                                    S))
                                         (COND
                                          ((ODDP
                                            (SPADCALL |wi| |m|
                                                      (PROG1
                                                          (LETT #1# |j| . #9#)
                                                        (|check-subtype|
                                                         (> #1# 0)
                                                         '(|PositiveInteger|)
                                                         #1#))
                                                      (|compiledLookupCheck|
                                                       '|delta|
                                                       (LIST
                                                        (LIST
                                                         '|NonNegativeInteger|)
                                                        '$
                                                        (LIST
                                                         '|PositiveInteger|)
                                                        (LIST
                                                         '|PositiveInteger|))
                                                       S)))
                                           (SPADCALL
                                            (SPADCALL |a| |j| (QREFELT $ 36))
                                            (QREFELT $ 31)))
                                          ('T
                                           (SPADCALL |a| |j| (QREFELT $ 36))))
                                         (QREFELT $ 35))))))))))
                       (LETT |j| (QSADD1 |j|) . #9#) #11# G191 (EXIT NIL)))
                 ('T
                  (SEQ
                   (LETT |u|
                         (SPADCALL |wi| |m|
                                   (|compiledLookupCheck|
                                    '|incrementKthElement|
                                    (LIST (LIST '|Union| '$ '#12#) '$
                                          (LIST '|PositiveInteger|))
                                    S))
                         . #9#)
                   (EXIT
                    (COND
                     ((QEQCAR |u| 0)
                      (SPADCALL |eq|
                                (SPADCALL (QCDR |u|)
                                          (|compiledLookupCheck| '|lookup|
                                                                 (LIST
                                                                  (LIST
                                                                   '|PositiveInteger|)
                                                                  '$)
                                                                 S))
                                (|spadConstant| $ 25) (QREFELT $ 35))))))))
                (EXIT (SPADCALL M |i| |eq| (QREFELT $ 39))))
           (LETT |i| (QSADD1 |i|) . #9#) #11# G191 (EXIT NIL))
      (EXIT (CONS M |ww|)))))) 

(DEFUN |ASSOCEQ;uncouplingMatrices;MV;3| (|m| $)
  (PROG (|i| #1=#:G1859 #2=#:G1858 |mi| |v| |n|)
    (RETURN
     (SEQ (LETT |n| (QVSIZE |m|) . #3=(|ASSOCEQ;uncouplingMatrices;MV;3|))
          (LETT |v| (MAKEARR1 |n| (SPADCALL 1 0 (QREFELT $ 43))) . #3#)
          (SPADCALL |v| 1 (LETT |mi| |m| . #3#) (QREFELT $ 44))
          (SEQ (LETT |i| 2 . #3#) G190
               (COND ((QSGREATERP |i| |n|) #4=(GO G191)))
               (SEQ
                (EXIT
                 (SPADCALL |v| |i|
                           (LETT |mi|
                                 (SPADCALL
                                  (SPADCALL
                                   (CONS #'|ASSOCEQ;uncouplingMatrices;MV;3!0|
                                         (VECTOR $ (QREFELT $ 9)))
                                   |mi| (QREFELT $ 47))
                                  (SPADCALL |mi| |m| (QREFELT $ 48))
                                  (QREFELT $ 49))
                                 . #3#)
                           (QREFELT $ 44))))
               (LETT |i| (QSADD1 |i|) . #3#) #5=(GO G190) G191 (EXIT NIL))
          (EXIT
           (PROGN
            (LETT #2# (GETREFV |n|) . #3#)
            (SEQ (LETT #1# 0 . #3#) (LETT |i| 1 . #3#) G190
                 (COND ((QSGREATERP |i| |n|) #4#))
                 (SEQ (EXIT (SETELT #2# #1# (|ASSOCEQ;makeMatrix| |v| |i| $))))
                 (LETT |i| (PROG1 (QSADD1 |i|) (LETT #1# (QSADD1 #1#) . #3#))
                       . #3#)
                 #5# G191 (EXIT NIL))
            #2#)))))) 

(DEFUN |ASSOCEQ;uncouplingMatrices;MV;3!0| (|z1| $$)
  (PROG (|diff| $)
    (LETT |diff| (QREFELT $$ 1) . #1=(|ASSOCEQ;uncouplingMatrices;MV;3|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |diff| |z1| (QREFELT $ 45)))))) 

(DEFUN |ASSOCEQ;makeeq| (|v| |m| |i| |n| $)
  (PROG (|j| #1=#:G1865 #2=#:G1864)
    (RETURN
     (SEQ
      (VECTOR (SPADCALL |v| |i| (QREFELT $ 51))
              (SPADCALL (|ASSOCEQ;makeop| (SPADCALL |m| |i| (QREFELT $ 15)) $)
                        (|spadConstant| $ 27) (QREFELT $ 52))
              (PROGN
               (LETT #2# NIL . #3=(|ASSOCEQ;makeeq|))
               (SEQ (LETT |j| 1 . #3#) G190
                    (COND ((QSGREATERP |j| |n|) #4=(GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((COND ((EQL |j| |i|) 'NIL) (#5='T 'T))
                        (LETT #2# (CONS (SPADCALL |v| |j| (QREFELT $ 51)) #2#)
                              . #3#)))))
                    (LETT |j| (QSADD1 |j|) . #3#) #6=(GO G190) G191
                    (EXIT (NREVERSE0 #2#))))
              (PROGN
               (LETT #1# NIL . #3#)
               (SEQ (LETT |j| 1 . #3#) G190 (COND ((QSGREATERP |j| |n|) #4#))
                    (SEQ
                     (EXIT
                      (COND
                       ((COND ((EQL |j| |i|) 'NIL) (#5# 'T))
                        (LETT #1#
                              (CONS
                               (|ASSOCEQ;makeop|
                                (SPADCALL |m| |j| (QREFELT $ 15)) $)
                               #1#)
                              . #3#)))))
                    (LETT |j| (QSADD1 |j|) . #3#) #6# G191
                    (EXIT (NREVERSE0 #1#))))))))) 

(DEFUN |ASSOCEQ;associatedEquations;LPiR;5| (|op| |m| $)
  (PROG (|i| |ww| |s| |w| S #1=#:G1873 |v| |u|)
    (RETURN
     (SEQ
      (LETT |u| (SPADCALL |op| |m| (QREFELT $ 55))
            . #2=(|ASSOCEQ;associatedEquations;LPiR;5|))
      (EXIT
       (COND ((QEQCAR |u| 1) (|ASSOCEQ;computeIt| |op| |m| 1 $))
             (#3='T
              (SEQ (LETT |v| (SPADCALL (QCDR |u|) (QREFELT $ 56)) . #2#)
                   (EXIT
                    (COND ((QEQCAR |v| 1) (|ASSOCEQ;computeIt| |op| |m| 2 $))
                          (#3#
                           (SEQ
                            (LETT S
                                  (|SetOfMIntegersInOneToN| |m|
                                                            (PROG1
                                                                (LETT #1#
                                                                      (SPADCALL
                                                                       |op|
                                                                       (QREFELT
                                                                        $ 21))
                                                                      . #2#)
                                                              (|check-subtype|
                                                               (> #1# 0)
                                                               '(|PositiveInteger|)
                                                               #1#)))
                                  . #2#)
                            (LETT |w|
                                  (SPADCALL
                                   (|compiledLookupCheck| '|enumerate|
                                                          (LIST
                                                           (LIST '|List| '$))
                                                          S))
                                  . #2#)
                            (LETT |s|
                                  (SPADCALL
                                   (|compiledLookupCheck| '|size|
                                                          (LIST
                                                           (LIST
                                                            '|NonNegativeInteger|))
                                                          S))
                                  . #2#)
                            (LETT |ww| (MAKEARR1 |s| NIL) . #2#)
                            (SEQ (LETT |i| 1 . #2#) G190
                                 (COND ((QSGREATERP |i| |s|) (GO G191)))
                                 (SEQ
                                  (EXIT
                                   (SPADCALL |ww| |i|
                                             (SPADCALL
                                              (SPADCALL |w| |i|
                                                        (|compiledLookupCheck|
                                                         '|elt|
                                                         (LIST (|devaluate| S)
                                                               '$
                                                               (LIST
                                                                '|Integer|))
                                                         (|List| S)))
                                              (|compiledLookupCheck|
                                               '|elements|
                                               (LIST
                                                (LIST '|List|
                                                      (LIST
                                                       '|PositiveInteger|))
                                                '$)
                                               S))
                                             (QREFELT $ 34))))
                                 (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191
                                 (EXIT NIL))
                            (EXIT
                             (|ASSOCEQ;makeeq| |ww| (QCDR |v|) 1 |s|
                              $)))))))))))))) 

(DEFUN |ASSOCEQ;computeIt| (|op| |m| |k| $)
  (PROG (#1=#:G1886 #2=#:G1888 |u| |i| |n| |a| |rec|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |rec| (SPADCALL |op| |m| (QREFELT $ 42))
              . #3=(|ASSOCEQ;computeIt|))
        (LETT |a| (SPADCALL (QCAR |rec|) (QREFELT $ 50)) . #3#)
        (LETT |n| (QVSIZE |a|) . #3#)
        (SEQ
         (EXIT
          (SEQ (LETT |i| |k| . #3#) G190 (COND ((> |i| |n|) (GO G191)))
               (SEQ
                (LETT |u|
                      (SPADCALL (SPADCALL |a| |i| (QREFELT $ 13))
                                (QREFELT $ 56))
                      . #3#)
                (EXIT
                 (COND
                  ((QEQCAR |u| 0)
                   (PROGN
                    (LETT #1#
                          (PROGN
                           (LETT #2#
                                 (|ASSOCEQ;makeeq| (QCDR |rec|) (QCDR |u|) |i|
                                  |n| $)
                                 . #3#)
                           (GO #2#))
                          . #3#)
                    (GO #1#))))))
               (LETT |i| (+ |i| 1) . #3#) (GO G190) G191 (EXIT NIL)))
         #1# (EXIT #1#))
        (EXIT (|error| "associatedEquations: full degenerate case"))))
      #2# (EXIT #2#))))) 

(DEFUN |ASSOCEQ;makeop| (|v| $)
  (PROG (|op| #1=#:G1892 |i|)
    (RETURN
     (SEQ (LETT |op| (|spadConstant| $ 23) . #2=(|ASSOCEQ;makeop|))
          (SEQ (LETT |i| 1 . #2#) (LETT #1# (QVSIZE |v|) . #2#) G190
               (COND ((QSGREATERP |i| #1#) (GO G191)))
               (SEQ
                (EXIT
                 (LETT |op|
                       (SPADCALL |op|
                                 (SPADCALL (SPADCALL |v| |i| (QREFELT $ 36))
                                           |i| (QREFELT $ 59))
                                 (QREFELT $ 60))
                       . #2#)))
               (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
          (EXIT |op|))))) 

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

(DEFUN |AssociatedEquations;| (|#1| |#2|)
  (PROG (|pv$| $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|AssociatedEquations|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT |dv$| (LIST '|AssociatedEquations| DV$1 DV$2) . #1#)
      (LETT $ (GETREFV 61) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#1| '(|Field|))))
                      . #1#))
      (|haddProp| |$ConstructorCache| '|AssociatedEquations| (LIST DV$1 DV$2)
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 9 (SPADCALL (QREFELT $ 8)))
      (COND
       ((|testBitVector| |pv$| 1)
        (PROGN
         (QSETREFV $ 58
                   (CONS
                    (|dispatchFunction| |ASSOCEQ;associatedEquations;LPiR;5|)
                    $)))))
      $)))) 

(MAKEPROP '|AssociatedEquations| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . D)
              '|diff| (|Matrix| 6) (|Integer|) (|Vector| 10) (4 . |elt|)
              (|Vector| 6) (10 . |row|) (|List| 6) (16 . |parts|) (|List| 16)
              (21 . |matrix|) (|NonNegativeInteger|) (26 . |degree|)
              (31 . |Zero|) (35 . |Zero|) (39 . |new|) (46 . |One|)
              (50 . |leadingCoefficient|) (55 . |One|) (59 . |coefficient|)
              (|Union| $ '"failed") (65 . |exquo|) (71 . -) (|List| 41)
              (|Vector| 32) (76 . |setelt|) (83 . |setelt|) (90 . |elt|)
              (|Boolean|) (96 . =) (102 . |setRow!|)
              (|Record| (|:| |mat| 10) (|:| |vec| 33)) (|PositiveInteger|)
              |ASSOCEQ;associatedSystem;LPiR;2| (109 . |zero|) (115 . |setelt|)
              (122 . |elt|) (|Mapping| 6 6) (128 . |map|) (134 . *) (140 . +)
              |ASSOCEQ;uncouplingMatrices;MV;3| (146 . |elt|) (152 . -)
              (|Union| 10 '"failed") (|PrecomputedAssociatedEquations| 6 7)
              (158 . |firstUncouplingMatrix|) (164 . |inverse|)
              (|Record| (|:| |minor| 32) (|:| |eq| 7)
                        (|:| |minors| (|List| 32)) (|:| |ops| (|List| 7)))
              (169 . |associatedEquations|) (175 . |monomial|) (181 . +))
           '#(|uncouplingMatrices| 187 |associatedSystem| 192
              |associatedEquations| 198)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 60
                                                 '(0 7 0 8 2 12 10 0 11 13 2 10
                                                   14 0 11 15 1 14 16 0 17 1 10
                                                   0 18 19 1 7 20 0 21 0 6 0 22
                                                   0 7 0 23 3 10 0 20 20 6 24 0
                                                   6 0 25 1 7 6 0 26 0 7 0 27 2
                                                   7 6 0 20 28 2 6 29 0 0 30 1
                                                   6 0 0 31 3 33 32 0 11 32 34
                                                   3 14 6 0 11 6 35 2 14 6 0 11
                                                   36 2 6 37 0 0 38 3 10 0 0 11
                                                   14 39 2 10 0 20 20 43 3 12
                                                   10 0 11 10 44 2 7 6 0 6 45 2
                                                   10 0 46 0 47 2 10 0 0 0 48 2
                                                   10 0 0 0 49 2 33 32 0 11 51
                                                   2 7 0 0 0 52 2 54 53 7 41 55
                                                   1 10 29 0 56 2 0 57 7 41 58
                                                   2 7 0 6 20 59 2 7 0 0 0 60 1
                                                   0 12 10 50 2 0 40 7 41 42 2
                                                   1 57 7 41 58)))))
           '|lookupComplete|)) 
