
(/VERSIONCHECK 2) 

(DEFUN |HDP;<;2$B;1| (|v1| |v2| $)
  (PROG (#1=#:G671 |i| |n2| |n1| #2=#:G672)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |n1| (|spadConstant| $ 9) . #3=(|HDP;<;2$B;1|))
            (LETT |n2| (|spadConstant| $ 9) . #3#)
            (SEQ (LETT |i| 1 . #3#) (LETT #2# (QREFELT $ 6) . #3#) G190
                 (COND ((QSGREATERP |i| #2#) #4=(GO G191)))
                 (SEQ
                  (LETT |n1|
                        (SPADCALL |n1| (SPADCALL |v1| |i| (QREFELT $ 11))
                                  (QREFELT $ 12))
                        . #3#)
                  (EXIT
                   (LETT |n2|
                         (SPADCALL |n2| (SPADCALL |v2| |i| (QREFELT $ 11))
                                   (QREFELT $ 12))
                         . #3#)))
                 (LETT |i| (QSADD1 |i|) . #3#) #5=(GO G190) G191 (EXIT NIL))
            (EXIT
             (COND ((SPADCALL |n1| |n2| (QREFELT $ 14)) 'T)
                   ((SPADCALL |n2| |n1| (QREFELT $ 14)) 'NIL)
                   ('T
                    (SEQ
                     (SEQ (LETT |i| (QREFELT $ 6) . #3#) G190
                          (COND ((< |i| 1) #4#))
                          (SEQ
                           (COND
                            ((SPADCALL (SPADCALL |v2| |i| (QREFELT $ 11))
                                       (SPADCALL |v1| |i| (QREFELT $ 11))
                                       (QREFELT $ 14))
                             (PROGN (LETT #1# 'T . #3#) (GO #1#))))
                           (EXIT
                            (COND
                             ((SPADCALL (SPADCALL |v1| |i| (QREFELT $ 11))
                                        (SPADCALL |v2| |i| (QREFELT $ 11))
                                        (QREFELT $ 14))
                              (PROGN (LETT #1# 'NIL . #3#) (GO #1#))))))
                          (LETT |i| (+ |i| -1) . #3#) #5# G191 (EXIT NIL))
                     (EXIT 'NIL)))))))
      #1# (EXIT #1#))))) 

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

(DEFUN |HomogeneousDirectProduct;| (|#1| |#2|)
  (PROG (|pv$| #1=#:G690 #2=#:G691 #3=#:G692 #4=#:G693 #5=#:G694 $ |dv$| DV$2
         DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #6=(|HomogeneousDirectProduct|))
      (LETT DV$2 (|devaluate| |#2|) . #6#)
      (LETT |dv$| (LIST '|HomogeneousDirectProduct| DV$1 DV$2) . #6#)
      (LETT $ (GETREFV 45) . #6#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#2| '(|SetCategory|))
                                          (|HasCategory| |#2| '(|Field|))
                                          (|HasCategory| |#2| '(|Ring|))
                                          (|HasCategory| |#2|
                                                         '(|OrderedAbelianMonoidSup|))
                                          (LETT #5#
                                                (|HasCategory| |#2|
                                                               '(|OrderedRing|))
                                                . #6#)
                                          (OR
                                           (|HasCategory| |#2|
                                                          '(|OrderedAbelianMonoidSup|))
                                           #5#)
                                          (|HasCategory| |#2| '(|Monoid|))
                                          (|HasCategory| |#2| '(|unitsKnown|))
                                          (LETT #4#
                                                (|HasCategory| |#2|
                                                               '(|CommutativeRing|))
                                                . #6#)
                                          (OR #4#
                                              (|HasCategory| |#2| '(|Field|))
                                              (|HasCategory| |#2| '(|Ring|)))
                                          (OR #4#
                                              (|HasCategory| |#2| '(|Field|)))
                                          (OR #4#
                                              (|HasCategory| |#2| '(|Ring|)))
                                          (|HasCategory| |#2| '(|Finite|))
                                          (|HasCategory| |#2|
                                                         '(|LinearlyExplicitRingOver|
                                                           (|Integer|)))
                                          (|HasCategory| |#2|
                                                         '(|PartialDifferentialRing|
                                                           (|Symbol|)))
                                          (LETT #3#
                                                (|HasCategory| |#2|
                                                               '(|DifferentialRing|))
                                                . #6#)
                                          (OR #4# #3#
                                              (|HasCategory| |#2| '(|Field|))
                                              (|HasCategory| |#2| '(|Ring|))
                                              (|HasCategory| |#2|
                                                             '(|LinearlyExplicitRingOver|
                                                               (|Integer|)))
                                              (|HasCategory| |#2|
                                                             '(|PartialDifferentialRing|
                                                               (|Symbol|))))
                                          (OR #4# #3#
                                              (|HasCategory| |#2| '(|Ring|))
                                              (|HasCategory| |#2|
                                                             '(|LinearlyExplicitRingOver|
                                                               (|Integer|)))
                                              (|HasCategory| |#2|
                                                             '(|PartialDifferentialRing|
                                                               (|Symbol|))))
                                          (|HasCategory| (|Integer|)
                                                         '(|OrderedSet|))
                                          (AND (|HasCategory| |#2| '(|Ring|))
                                               (|HasCategory| |#2|
                                                              '(|LinearlyExplicitRingOver|
                                                                (|Integer|))))
                                          (AND #3#
                                               (|HasCategory| |#2| '(|Ring|)))
                                          (AND (|HasCategory| |#2| '(|Ring|))
                                               (|HasCategory| |#2|
                                                              '(|PartialDifferentialRing|
                                                                (|Symbol|))))
                                          (AND
                                           (|HasCategory| |#2|
                                                          '(|SetCategory|))
                                           (|HasCategory| |#2|
                                                          '(|RetractableTo|
                                                            (|Integer|))))
                                          (OR
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|SetCategory|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|))))
                                           (|HasCategory| |#2| '(|Ring|)))
                                          (AND
                                           (|HasCategory| |#2|
                                                          '(|SetCategory|))
                                           (|HasCategory| |#2|
                                                          '(|RetractableTo|
                                                            (|Fraction|
                                                             (|Integer|)))))
                                          (LETT #2#
                                                (|HasCategory| |#2|
                                                               '(|CancellationAbelianMonoid|))
                                                . #6#)
                                          (OR #2# #4# #3#
                                              (|HasCategory| |#2| '(|Field|))
                                              (|HasCategory| |#2| '(|Ring|))
                                              (|HasCategory| |#2|
                                                             '(|LinearlyExplicitRingOver|
                                                               (|Integer|)))
                                              (|HasCategory| |#2|
                                                             '(|PartialDifferentialRing|
                                                               (|Symbol|))))
                                          (LETT #1#
                                                (|HasCategory| |#2|
                                                               '(|AbelianSemiGroup|))
                                                . #6#)
                                          (OR #1# #2# #4# #3#
                                              (|HasCategory| |#2| '(|Field|))
                                              (|HasCategory| |#2| '(|Finite|))
                                              (|HasCategory| |#2| '(|Monoid|))
                                              (|HasCategory| |#2|
                                                             '(|OrderedAbelianMonoidSup|))
                                              #5#
                                              (|HasCategory| |#2| '(|Ring|))
                                              (|HasCategory| |#2|
                                                             '(|SetCategory|))
                                              (|HasCategory| |#2|
                                                             '(|LinearlyExplicitRingOver|
                                                               (|Integer|)))
                                              (|HasCategory| |#2|
                                                             '(|PartialDifferentialRing|
                                                               (|Symbol|))))
                                          (OR #1# #2# #4# #3#
                                              (|HasCategory| |#2| '(|Field|))
                                              (|HasCategory| |#2| '(|Ring|))
                                              (|HasCategory| |#2|
                                                             '(|LinearlyExplicitRingOver|
                                                               (|Integer|)))
                                              (|HasCategory| |#2|
                                                             '(|PartialDifferentialRing|
                                                               (|Symbol|))))
                                          (OR
                                           (AND #1#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND #2#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND #4#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND #3#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND (|HasCategory| |#2| '(|Field|))
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND
                                            (|HasCategory| |#2| '(|Finite|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Fraction|
                                                              (|Integer|)))))
                                           (AND
                                            (|HasCategory| |#2| '(|Monoid|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Fraction|
                                                              (|Integer|)))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|OrderedAbelianMonoidSup|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Fraction|
                                                              (|Integer|)))))
                                           (AND #5#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND (|HasCategory| |#2| '(|Ring|))
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Fraction|
                                                                  (|Integer|)))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|SetCategory|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Fraction|
                                                              (|Integer|)))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|LinearlyExplicitRingOver|
                                                             (|Integer|)))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Fraction|
                                                              (|Integer|)))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|PartialDifferentialRing|
                                                             (|Symbol|)))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Fraction|
                                                              (|Integer|))))))
                                          (OR
                                           (AND #1#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND #2#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND #4#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND #3#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND (|HasCategory| |#2| '(|Field|))
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2| '(|Finite|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2| '(|Monoid|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|OrderedAbelianMonoidSup|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|))))
                                           (AND #5#
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND (|HasCategory| |#2| '(|Ring|))
                                                (|HasCategory| |#2|
                                                               '(|RetractableTo|
                                                                 (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|SetCategory|))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|LinearlyExplicitRingOver|
                                                             (|Integer|)))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|PartialDifferentialRing|
                                                             (|Symbol|)))
                                            (|HasCategory| |#2|
                                                           '(|RetractableTo|
                                                             (|Integer|)))))
                                          (AND
                                           (|HasCategory| |#2|
                                                          '(|SetCategory|))
                                           (|HasCategory| |#2|
                                                          (LIST '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                          (OR
                                           (AND #1#
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND #2#
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND #4#
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND #3#
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND (|HasCategory| |#2| '(|Field|))
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND
                                            (|HasCategory| |#2| '(|Finite|))
                                            (|HasCategory| |#2|
                                                           (LIST '|Evalable|
                                                                 (|devaluate|
                                                                  |#2|))))
                                           (AND
                                            (|HasCategory| |#2| '(|Monoid|))
                                            (|HasCategory| |#2|
                                                           (LIST '|Evalable|
                                                                 (|devaluate|
                                                                  |#2|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|OrderedAbelianMonoidSup|))
                                            (|HasCategory| |#2|
                                                           (LIST '|Evalable|
                                                                 (|devaluate|
                                                                  |#2|))))
                                           (AND #5#
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND (|HasCategory| |#2| '(|Ring|))
                                                (|HasCategory| |#2|
                                                               (LIST
                                                                '|Evalable|
                                                                (|devaluate|
                                                                 |#2|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           '(|SetCategory|))
                                            (|HasCategory| |#2|
                                                           (LIST '|Evalable|
                                                                 (|devaluate|
                                                                  |#2|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           (LIST '|Evalable|
                                                                 (|devaluate|
                                                                  |#2|)))
                                            (|HasCategory| |#2|
                                                           '(|LinearlyExplicitRingOver|
                                                             (|Integer|))))
                                           (AND
                                            (|HasCategory| |#2|
                                                           (LIST '|Evalable|
                                                                 (|devaluate|
                                                                  |#2|)))
                                            (|HasCategory| |#2|
                                                           '(|PartialDifferentialRing|
                                                             (|Symbol|)))))))
                      . #6#))
      (|haddProp| |$ConstructorCache| '|HomogeneousDirectProduct|
                  (LIST DV$1 DV$2) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (AND (|HasCategory| $ '(|finiteAggregate|))
           (|augmentPredVector| $ 17179869184))
      (AND (|HasCategory| $ '(|finiteAggregate|))
           (|HasCategory| |#2| '(|SetCategory|))
           (|augmentPredVector| $ 34359738368))
      (AND (|HasCategory| $ '(|shallowlyMutable|))
           (|augmentPredVector| $ 68719476736))
      (QSETREFV $ 8 (|Vector| |#2|))
      $)))) 

(MAKEPROP '|HomogeneousDirectProduct| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL (|DirectProduct| 6 7) (|local| |#1|)
              (|local| |#2|) '|Rep| (0 . |Zero|) (|Integer|) (4 . |qelt|)
              (10 . +) (|Boolean|) (16 . <) |HDP;<;2$B;1|
              (|NonNegativeInteger|) (|List| 7) (|List| 19) (|Equation| 7)
              (|Record| (|:| |mat| 23) (|:| |vec| (|Vector| 10))) (|Matrix| $)
              (|Vector| $) (|Matrix| 10) (|Symbol|) (|List| 24) (|List| 16)
              (|Fraction| 10) (|Union| 27 '#1="failed") (|Union| 10 '#1#)
              (|Mapping| 13 7) (|Void|) (|Mapping| 7 7) (|PositiveInteger|)
              (|Union| $ '"failed") (|CardinalNumber|) (|List| $) (|Matrix| 7)
              (|Record| (|:| |mat| 37) (|:| |vec| 43)) (|Union| 7 '#1#)
              (|SingleInteger|) (|OutputForm|) (|String|) (|Vector| 7)
              (|List| 10))
           '#(|qelt| 22 < 28) 'NIL
           (CONS
            (|makeByteWordVec2| 34
                                '(0 2 9 3 3 11 5 9 3 14 15 16 10 4 5 9 18 10 3
                                  6 12 9 18 6 17 6 3 27 0 6 3 7 27 0 6 7 13 30
                                  0 0 34 29 1 0 0 0 0 34 1 8 9 29 1 31 32))
            (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 |IndexedAggregate&|
                |OrderedSet&| NIL |Monoid&| |AbelianMonoid&|
                |HomogeneousAggregate&| NIL |SemiGroup&| |Finite&|
                |AbelianSemiGroup&| |Aggregate&| |EltableAggregate&|
                |Evalable&| |SetCategory&| |FullyRetractableTo&| NIL NIL NIL
                NIL |InnerEvalable&| NIL NIL NIL |BasicType&| |RetractableTo&|
                |RetractableTo&| |RetractableTo&|)
             (CONS
              '#((|DirectProductCategory| 6 7) (|VectorSpace| 7) (|Algebra| 7)
                 (|FullyLinearlyExplicitRingOver| 7)
                 (|DifferentialExtension| 7) (|Module| 7) (|OrderedRing|)
                 (|CommutativeRing|) (|LinearlyExplicitRingOver| 7)
                 (|LinearlyExplicitRingOver| 10) (|PartialDifferentialRing| 24)
                 (|DifferentialRing|) (|BiModule| 7 7)
                 (|OrderedAbelianMonoidSup|) (|OrderedAbelianGroup|)
                 (|BiModule| $$ $$) (|Ring|) (|LeftModule| 7) (|RightModule| 7)
                 (|OrderedCancellationAbelianMonoid|) (|LeftModule| $$)
                 (|RightModule| $$) (|Rng|) (|OrderedAbelianMonoid|)
                 (|AbelianGroup|) (|OrderedAbelianSemiGroup|) (|SemiRing|)
                 (|CancellationAbelianMonoid|) (|IndexedAggregate| 10 7)
                 (|OrderedSet|) (|SemiRng|) (|Monoid|) (|AbelianMonoid|)
                 (|HomogeneousAggregate| 7) (|Comparable|) (|SemiGroup|)
                 (|Finite|) (|AbelianSemiGroup|) (|Aggregate|)
                 (|EltableAggregate| 10 7) (|Evalable| 7) (|SetCategory|)
                 (|FullyRetractableTo| 7) (|Type|) (|finiteAggregate|)
                 (|CoercibleTo| (|Vector| 7)) (|Eltable| 10 7)
                 (|InnerEvalable| 7 7) (|CoercibleTo| 41) (|unitsKnown|)
                 (|CommutativeStar|) (|BasicType|) (|RetractableTo| 7)
                 (|RetractableTo| 27) (|RetractableTo| 10))
              (|makeByteWordVec2| 15
                                  '(0 7 0 9 2 0 7 0 10 11 2 7 0 0 0 12 2 7 13 0
                                    0 14 2 0 7 0 10 11 2 6 13 0 0 15)))))
           '|lookupIncomplete|)) 
