
(/VERSIONCHECK 2) 

(DEFUN |DIRPCAT-;coerce;IS;1| (|n| $)
  (SPADCALL (SPADCALL |n| (QREFELT $ 10)) (QREFELT $ 11))) 

(DEFUN |DIRPCAT-;characteristic;Nni;2| ($) (SPADCALL (QREFELT $ 14))) 

(DEFUN |DIRPCAT-;differentiate;SMS;3| (|z| |d| $)
  (SPADCALL |d| |z| (QREFELT $ 17))) 

(DEFUN |DIRPCAT-;equation2R| (|v| $)
  (PROG (#1=#:G6152 |j| #2=#:G6151 |i| |ans|)
    (RETURN
     (SEQ
      (LETT |ans|
            (SPADCALL (QREFELT $ 7) (QVSIZE |v|) (|spadConstant| $ 19)
                      (QREFELT $ 21))
            . #3=(|DIRPCAT-;equation2R|))
      (SEQ (LETT |i| (SPADCALL |ans| (QREFELT $ 22)) . #3#)
           (LETT #2# (SPADCALL |ans| (QREFELT $ 23)) . #3#) G190
           (COND ((> |i| #2#) #4=(GO G191)))
           (SEQ
            (EXIT
             (SEQ (LETT |j| (SPADCALL |ans| (QREFELT $ 24)) . #3#)
                  (LETT #1# (SPADCALL |ans| (QREFELT $ 25)) . #3#) G190
                  (COND ((> |j| #1#) #4#))
                  (SEQ
                   (EXIT
                    (SPADCALL |ans| |i| |j|
                              (SPADCALL (SPADCALL |v| |j| (QREFELT $ 27)) |i|
                                        (QREFELT $ 28))
                              (QREFELT $ 29))))
                  (LETT |j| (+ |j| 1) . #3#) #5=(GO G190) G191 (EXIT NIL))))
           (LETT |i| (+ |i| 1) . #3#) #5# G191 (EXIT NIL))
      (EXIT |ans|))))) 

(DEFUN |DIRPCAT-;reducedSystem;MM;5| (|m| $)
  (PROG (#1=#:G6159 |i| #2=#:G6158)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |m| (QREFELT $ 32))
        (SPADCALL 0 0 (|spadConstant| $ 19) (QREFELT $ 21)))
       ('T
        (SPADCALL (ELT $ 33)
                  (PROGN
                   (LETT #2# NIL . #3=(|DIRPCAT-;reducedSystem;MM;5|))
                   (SEQ (LETT |i| (SPADCALL |m| (QREFELT $ 34)) . #3#)
                        (LETT #1# (SPADCALL |m| (QREFELT $ 35)) . #3#) G190
                        (COND ((> |i| #1#) (GO G191)))
                        (SEQ
                         (EXIT
                          (LETT #2#
                                (CONS
                                 (|DIRPCAT-;equation2R|
                                  (SPADCALL |m| |i| (QREFELT $ 36)) $)
                                 #2#)
                                . #3#)))
                        (LETT |i| (+ |i| 1) . #3#) (GO G190) G191
                        (EXIT (NREVERSE0 #2#))))
                  (QREFELT $ 39)))))))) 

(DEFUN |DIRPCAT-;reducedSystem;MVR;6| (|m| |v| $)
  (PROG (|vh| |rh|)
    (RETURN
     (SEQ
      (LETT |vh|
            (COND ((SPADCALL |v| (QREFELT $ 42)) (GETREFV 0))
                  ('T
                   (SEQ
                    (LETT |rh|
                          (SPADCALL (SPADCALL |v| (QREFELT $ 43))
                                    (QREFELT $ 44))
                          . #1=(|DIRPCAT-;reducedSystem;MVR;6|))
                    (EXIT
                     (SPADCALL |rh| (SPADCALL |rh| (QREFELT $ 24))
                               (QREFELT $ 46))))))
            . #1#)
      (EXIT (CONS (SPADCALL |m| (QREFELT $ 44)) |vh|)))))) 

(DEFUN |DIRPCAT-;/;SRS;7| (|x| |b| $)
  (SPADCALL |x| (SPADCALL |b| (QREFELT $ 50)) (QREFELT $ 51))) 

(DEFUN |DIRPCAT-;dimension;Cn;8| ($) (SPADCALL (QREFELT $ 7) (QREFELT $ 54))) 

(DEFUN |DirectProductCategory&| (|#1| |#2| |#3|)
  (PROG (|pv$| $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|DirectProductCategory&|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT |dv$| (LIST '|DirectProductCategory&| DV$1 DV$2 DV$3) . #1#)
      (LETT $ (GETREFV 63) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST (|HasCategory| |#3| '(|Field|))
                                               (|HasCategory| |#3|
                                                              '(|OrderedAbelianMonoidSup|))
                                               (|HasCategory| |#3|
                                                              '(|OrderedRing|))
                                               (|HasCategory| |#3|
                                                              '(|unitsKnown|))
                                               (|HasCategory| |#3|
                                                              '(|CommutativeRing|))
                                               (|HasCategory| |#3| '(|Finite|))
                                               (|HasCategory| |#3| '(|Monoid|))
                                               (|HasCategory| |#3|
                                                              '(|CancellationAbelianMonoid|))
                                               (|HasCategory| |#3|
                                                              '(|AbelianSemiGroup|))
                                               (|HasCategory| |#3| '(|Ring|))
                                               (|HasCategory| |#3|
                                                              '(|SetCategory|))))
                      . #1#))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (COND
       ((|testBitVector| |pv$| 10)
        (PROGN
         (QSETREFV $ 12 (CONS (|dispatchFunction| |DIRPCAT-;coerce;IS;1|) $))
         (QSETREFV $ 15
                   (CONS (|dispatchFunction| |DIRPCAT-;characteristic;Nni;2|)
                         $))
         (QSETREFV $ 18
                   (CONS (|dispatchFunction| |DIRPCAT-;differentiate;SMS;3|)
                         $))
         (QSETREFV $ 41
                   (CONS (|dispatchFunction| |DIRPCAT-;reducedSystem;MM;5|) $))
         (QSETREFV $ 49
                   (CONS (|dispatchFunction| |DIRPCAT-;reducedSystem;MVR;6|)
                         $)))))
      (COND
       ((|testBitVector| |pv$| 1)
        (PROGN
         (QSETREFV $ 52 (CONS (|dispatchFunction| |DIRPCAT-;/;SRS;7|) $))
         (QSETREFV $ 55
                   (CONS (|dispatchFunction| |DIRPCAT-;dimension;Cn;8|) $)))))
      $)))) 

(MAKEPROP '|DirectProductCategory&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|Integer|) (0 . |coerce|) (5 . |coerce|)
              (10 . |coerce|) (|NonNegativeInteger|) (15 . |characteristic|)
              (19 . |characteristic|) (|Mapping| 8 8) (23 . |map|)
              (29 . |differentiate|) (35 . |Zero|) (|Matrix| 8) (39 . |new|)
              (46 . |minRowIndex|) (51 . |maxRowIndex|) (56 . |minColIndex|)
              (61 . |maxColIndex|) (|Vector| 6) (66 . |qelt|) (72 . |qelt|)
              (78 . |qsetelt!|) (|Boolean|) (|Matrix| 6) (86 . |empty?|)
              (91 . |vertConcat|) (97 . |minRowIndex|) (102 . |maxRowIndex|)
              (107 . |row|) (|Mapping| 20 20 20) (|List| 20) (113 . |reduce|)
              (|Matrix| $) (119 . |reducedSystem|) (124 . |empty?|)
              (129 . |coerce|) (134 . |reducedSystem|) (|Vector| 8)
              (139 . |column|) (|Record| (|:| |mat| 20) (|:| |vec| 45))
              (|Vector| $) (145 . |reducedSystem|) (151 . |inv|) (156 . *)
              (162 . /) (|CardinalNumber|) (168 . |coerce|) (173 . |dimension|)
              (|Fraction| 9) (|OutputForm|) (|Symbol|) (|List| 58) (|List| 13)
              (|Record| (|:| |mat| 62) (|:| |vec| (|Vector| 9))) (|Matrix| 9))
           '#(|reducedSystem| 177 |dimension| 188 |differentiate| 192 |coerce|
              198 |characteristic| 203 / 207)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 55
                                                 '(1 8 0 9 10 1 6 0 8 11 1 0 0
                                                   9 12 0 8 13 14 0 0 13 15 2 6
                                                   0 16 0 17 2 0 0 0 16 18 0 8
                                                   0 19 3 20 0 13 13 8 21 1 20
                                                   9 0 22 1 20 9 0 23 1 20 9 0
                                                   24 1 20 9 0 25 2 26 6 0 9 27
                                                   2 6 8 0 9 28 4 20 8 0 9 9 8
                                                   29 1 31 30 0 32 2 20 0 0 0
                                                   33 1 31 9 0 34 1 31 9 0 35 2
                                                   31 26 0 9 36 2 38 20 37 0 39
                                                   1 0 20 40 41 1 26 30 0 42 1
                                                   31 0 26 43 1 6 20 40 44 2 20
                                                   45 0 9 46 2 0 47 40 48 49 1
                                                   8 0 0 50 2 6 0 0 8 51 2 0 0
                                                   0 8 52 1 53 0 13 54 0 0 53
                                                   55 2 0 47 40 48 49 1 0 20 40
                                                   41 0 0 53 55 2 0 0 0 16 18 1
                                                   0 0 9 12 0 0 13 15 2 0 0 0 8
                                                   52)))))
           '|lookupComplete|)) 
