
(/VERSIONCHECK 2) 

(DEFUN |DPMO;*;R2$;1| (|r| |x| $)
  (PROG (#1=#:G666 |i| #2=#:G665 #3=#:G664)
    (RETURN
     (SEQ
      (PROGN
       (LETT #3# (GETREFV #4=(QREFELT $ 6)) . #5=(|DPMO;*;R2$;1|))
       (SEQ (LETT #2# 0 . #5#) (LETT |i| 1 . #5#) (LETT #1# #4# . #5#) G190
            (COND ((QSGREATERP |i| #1#) (GO G191)))
            (SEQ
             (EXIT
              (SETELT #3# #2#
                      (SPADCALL |r| (SPADCALL |x| |i| (QREFELT $ 11))
                                (QREFELT $ 12)))))
            (LETT |i| (PROG1 (QSADD1 |i|) (LETT #2# (QSADD1 #2#) . #5#)) . #5#)
            (GO G190) G191 (EXIT NIL))
       #3#))))) 

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

(DEFUN |DirectProductModule;| (|#1| |#2| |#3|)
  (PROG (|pv$| #1=#:G684 #2=#:G685 #3=#:G686 #4=#:G687 #5=#:G688 $ |dv$| DV$3
         DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #6=(|DirectProductModule|))
      (LETT DV$2 (|devaluate| |#2|) . #6#)
      (LETT DV$3 (|devaluate| |#3|) . #6#)
      (LETT |dv$| (LIST '|DirectProductModule| DV$1 DV$2 DV$3) . #6#)
      (LETT $ (GETREFV 44) . #6#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST (|HasCategory| |#3| '(|Field|))
                                               (|HasCategory| |#3| '(|Ring|))
                                               (|HasCategory| |#3|
                                                              '(|OrderedAbelianMonoidSup|))
                                               (LETT #5#
                                                     (|HasCategory| |#3|
                                                                    '(|OrderedRing|))
                                                     . #6#)
                                               (OR
                                                (|HasCategory| |#3|
                                                               '(|OrderedAbelianMonoidSup|))
                                                #5#)
                                               (|HasCategory| |#3| '(|Monoid|))
                                               (|HasCategory| |#3|
                                                              '(|unitsKnown|))
                                               (LETT #4#
                                                     (|HasCategory| |#3|
                                                                    '(|CommutativeRing|))
                                                     . #6#)
                                               (OR #4#
                                                   (|HasCategory| |#3|
                                                                  '(|Field|))
                                                   (|HasCategory| |#3|
                                                                  '(|Ring|)))
                                               (OR #4#
                                                   (|HasCategory| |#3|
                                                                  '(|Field|)))
                                               (OR #4#
                                                   (|HasCategory| |#3|
                                                                  '(|Ring|)))
                                               (|HasCategory| |#3| '(|Finite|))
                                               (|HasCategory| |#3|
                                                              '(|LinearlyExplicitRingOver|
                                                                (|Integer|)))
                                               (|HasCategory| |#3|
                                                              '(|PartialDifferentialRing|
                                                                (|Symbol|)))
                                               (LETT #3#
                                                     (|HasCategory| |#3|
                                                                    '(|DifferentialRing|))
                                                     . #6#)
                                               (OR #4# #3#
                                                   (|HasCategory| |#3|
                                                                  '(|Ring|))
                                                   (|HasCategory| |#3|
                                                                  '(|LinearlyExplicitRingOver|
                                                                    (|Integer|)))
                                                   (|HasCategory| |#3|
                                                                  '(|PartialDifferentialRing|
                                                                    (|Symbol|))))
                                               (|HasCategory| |#3|
                                                              '(|SetCategory|))
                                               (|HasCategory| (|Integer|)
                                                              '(|OrderedSet|))
                                               (AND
                                                (|HasCategory| |#3| '(|Ring|))
                                                (|HasCategory| |#3|
                                                               '(|LinearlyExplicitRingOver|
                                                                 (|Integer|))))
                                               (AND #3#
                                                    (|HasCategory| |#3|
                                                                   '(|Ring|)))
                                               (AND
                                                (|HasCategory| |#3| '(|Ring|))
                                                (|HasCategory| |#3|
                                                               '(|PartialDifferentialRing|
                                                                 (|Symbol|))))
                                               (OR
                                                (AND #3#
                                                     (|HasCategory| |#3|
                                                                    '(|Ring|)))
                                                (AND
                                                 (|HasCategory| |#3| '(|Ring|))
                                                 (|HasCategory| |#3|
                                                                '(|LinearlyExplicitRingOver|
                                                                  (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3| '(|Ring|))
                                                 (|HasCategory| |#3|
                                                                '(|PartialDifferentialRing|
                                                                  (|Symbol|))))
                                                (|HasCategory| |#3|
                                                               '(|Monoid|)))
                                               (LETT #2#
                                                     (AND
                                                      (|HasCategory| |#3|
                                                                     '(|SetCategory|))
                                                      (|HasCategory| |#3|
                                                                     '(|RetractableTo|
                                                                       (|Integer|))))
                                                     . #6#)
                                               (OR
                                                (AND #4#
                                                     (|HasCategory| |#3|
                                                                    '(|RetractableTo|
                                                                      (|Integer|))))
                                                (AND #3#
                                                     (|HasCategory| |#3|
                                                                    '(|RetractableTo|
                                                                      (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Field|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Finite|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Monoid|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|OrderedAbelianMonoidSup|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|))))
                                                (AND #5#
                                                     (|HasCategory| |#3|
                                                                    '(|RetractableTo|
                                                                      (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3| '(|Ring|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|))))
                                                #2#
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|LinearlyExplicitRingOver|
                                                                  (|Integer|)))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|PartialDifferentialRing|
                                                                  (|Symbol|)))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Integer|)))))
                                               (OR #2#
                                                   (|HasCategory| |#3|
                                                                  '(|Ring|)))
                                               (LETT #1#
                                                     (AND
                                                      (|HasCategory| |#3|
                                                                     '(|SetCategory|))
                                                      (|HasCategory| |#3|
                                                                     '(|RetractableTo|
                                                                       (|Fraction|
                                                                        (|Integer|)))))
                                                     . #6#)
                                               (OR
                                                (AND #4#
                                                     (|HasCategory| |#3|
                                                                    '(|RetractableTo|
                                                                      (|Fraction|
                                                                       (|Integer|)))))
                                                (AND #3#
                                                     (|HasCategory| |#3|
                                                                    '(|RetractableTo|
                                                                      (|Fraction|
                                                                       (|Integer|)))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Field|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|)))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Finite|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|)))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Monoid|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|)))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|OrderedAbelianMonoidSup|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|)))))
                                                (AND #5#
                                                     (|HasCategory| |#3|
                                                                    '(|RetractableTo|
                                                                      (|Fraction|
                                                                       (|Integer|)))))
                                                (AND
                                                 (|HasCategory| |#3| '(|Ring|))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|)))))
                                                #1#
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|LinearlyExplicitRingOver|
                                                                  (|Integer|)))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|)))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|PartialDifferentialRing|
                                                                  (|Symbol|)))
                                                 (|HasCategory| |#3|
                                                                '(|RetractableTo|
                                                                  (|Fraction|
                                                                   (|Integer|))))))
                                               (|HasCategory| |#3|
                                                              '(|CancellationAbelianMonoid|))
                                               (|HasCategory| |#3|
                                                              '(|AbelianSemiGroup|))
                                               (AND
                                                (|HasCategory| |#3|
                                                               '(|SetCategory|))
                                                (|HasCategory| |#3|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#3|))))
                                               (OR
                                                (AND #4#
                                                     (|HasCategory| |#3|
                                                                    (LIST
                                                                     '|Evalable|
                                                                     (|devaluate|
                                                                      |#3|))))
                                                (AND #3#
                                                     (|HasCategory| |#3|
                                                                    (LIST
                                                                     '|Evalable|
                                                                     (|devaluate|
                                                                      |#3|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Field|))
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Finite|))
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|Monoid|))
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|OrderedAbelianMonoidSup|))
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|))))
                                                (AND #5#
                                                     (|HasCategory| |#3|
                                                                    (LIST
                                                                     '|Evalable|
                                                                     (|devaluate|
                                                                      |#3|))))
                                                (AND
                                                 (|HasCategory| |#3| '(|Ring|))
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                '(|SetCategory|))
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|)))
                                                 (|HasCategory| |#3|
                                                                '(|LinearlyExplicitRingOver|
                                                                  (|Integer|))))
                                                (AND
                                                 (|HasCategory| |#3|
                                                                (LIST
                                                                 '|Evalable|
                                                                 (|devaluate|
                                                                  |#3|)))
                                                 (|HasCategory| |#3|
                                                                '(|PartialDifferentialRing|
                                                                  (|Symbol|)))))))
                      . #6#))
      (|haddProp| |$ConstructorCache| '|DirectProductModule|
                  (LIST DV$1 DV$2 DV$3) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (AND (|HasCategory| $ '(|finiteAggregate|))
           (|augmentPredVector| $ 2147483648))
      (AND (|HasCategory| $ '(|finiteAggregate|))
           (|HasCategory| |#3| '(|SetCategory|))
           (|augmentPredVector| $ 4294967296))
      (AND (|HasCategory| $ '(|shallowlyMutable|))
           (|augmentPredVector| $ 8589934592))
      (QSETREFV $ 9 (|Vector| |#3|))
      $)))) 

(MAKEPROP '|DirectProductModule| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL (|DirectProduct| 6 8) (|local| |#1|)
              (|local| |#2|) (|local| |#3|) '|Rep| (|Integer|) (0 . |elt|)
              (6 . *) |DPMO;*;R2$;1| (|Boolean|) (|NonNegativeInteger|)
              (|List| 8) (|List| 18) (|Equation| 8) (|Matrix| 10) (|Matrix| $)
              (|Record| (|:| |mat| 19) (|:| |vec| (|Vector| 10))) (|Vector| $)
              (|Symbol|) (|List| 23) (|List| 15) (|Fraction| 10)
              (|Union| 26 '#1="failed") (|Union| 10 '#1#) (|PositiveInteger|)
              (|Union| $ '"failed") (|Mapping| 14 8) (|Void|) (|Mapping| 8 8)
              (|CardinalNumber|) (|List| $) (|Matrix| 8)
              (|Record| (|:| |mat| 36) (|:| |vec| 42)) (|Union| 8 '#1#)
              (|OutputForm|) (|String|) (|SingleInteger|) (|Vector| 8)
              (|List| 10))
           '#(|elt| 12 * 18) 'NIL
           (CONS
            (|makeByteWordVec2| 31
                                '(0 1 8 2 2 10 4 8 2 13 14 15 9 3 4 8 16 0 9 2
                                  5 11 8 16 0 5 0 5 2 0 0 5 2 6 0 0 5 6 12 0 0
                                  0 31 17 0 0 0 0 0 0 31 7 8 17 27 24))
            (CONS
             '#(|DirectProductCategory&| |VectorSpace&| |Algebra&|
                |FullyLinearlyExplicitRingOver&| |DifferentialExtension&|
                |Module&| |OrderedRing&| NIL NIL NIL |PartialDifferentialRing&|
                |DifferentialRing&| NIL NIL NIL NIL |Ring&| NIL NIL NIL NIL NIL
                NIL NIL |AbelianGroup&| NIL NIL NIL NIL |IndexedAggregate&|
                |AbelianMonoid&| |OrderedSet&| NIL |Monoid&|
                |HomogeneousAggregate&| |AbelianSemiGroup&| NIL |SemiGroup&|
                |Finite&| |Aggregate&| |SetCategory&| |EltableAggregate&|
                |Evalable&| |FullyRetractableTo&| NIL |BasicType&| NIL NIL NIL
                NIL |InnerEvalable&| NIL NIL |RetractableTo&| |RetractableTo&|
                |RetractableTo&|)
             (CONS
              '#((|DirectProductCategory| 6 8) (|VectorSpace| 8) (|Algebra| 8)
                 (|FullyLinearlyExplicitRingOver| 8)
                 (|DifferentialExtension| 8) (|Module| 8) (|OrderedRing|)
                 (|CommutativeRing|) (|LinearlyExplicitRingOver| 8)
                 (|LinearlyExplicitRingOver| 10) (|PartialDifferentialRing| 23)
                 (|DifferentialRing|) (|BiModule| 8 8)
                 (|OrderedAbelianMonoidSup|) (|OrderedAbelianGroup|)
                 (|BiModule| $$ $$) (|Ring|) (|LeftModule| 7) (|LeftModule| 8)
                 (|RightModule| 8) (|OrderedCancellationAbelianMonoid|)
                 (|LeftModule| $$) (|RightModule| $$) (|Rng|) (|AbelianGroup|)
                 (|OrderedAbelianMonoid|) (|CancellationAbelianMonoid|)
                 (|OrderedAbelianSemiGroup|) (|SemiRing|)
                 (|IndexedAggregate| 10 8) (|AbelianMonoid|) (|OrderedSet|)
                 (|SemiRng|) (|Monoid|) (|HomogeneousAggregate| 8)
                 (|AbelianSemiGroup|) (|Comparable|) (|SemiGroup|) (|Finite|)
                 (|Aggregate|) (|SetCategory|) (|EltableAggregate| 10 8)
                 (|Evalable| 8) (|FullyRetractableTo| 8) (|Type|) (|BasicType|)
                 (|finiteAggregate|) (|CoercibleTo| (|Vector| 8))
                 (|Eltable| 10 8) (|CoercibleTo| 39) (|InnerEvalable| 8 8)
                 (|unitsKnown|) (|CommutativeStar|) (|RetractableTo| 8)
                 (|RetractableTo| 26) (|RetractableTo| 10))
              (|makeByteWordVec2| 13
                                  '(2 0 8 0 10 11 2 8 0 7 0 12 2 0 8 0 10 11 2
                                    0 0 7 0 13)))))
           '|lookupIncomplete|)) 
