
(/VERSIONCHECK 2) 

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

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

(DEFUN |HomogeneousDirectProduct;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ #0=#:G1848 #1=#:G1847 #2=#:G1846 #3=#:G1845
              #4=#:G1844 |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #5=(|HomogeneousDirectProduct|))
        (LETT DV$2 (|devaluate| |#2|) . #5#)
        (LETT |dv$| (LIST '|HomogeneousDirectProduct| DV$1 DV$2) . #5#)
        (LETT $ (GETREFV 45) . #5#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| |#2| '(|SetCategory|))
                            (|HasCategory| |#2| '(|Field|))
                            (|HasCategory| |#2| '(|Ring|))
                            (|HasCategory| |#2|
                                '(|OrderedAbelianMonoidSup|))
                            (LETT #0#
                                  (|HasCategory| |#2| '(|OrderedRing|)) . #5#)
                            (OR (|HasCategory| |#2|
                                    '(|OrderedAbelianMonoidSup|))
                                #0#)
                            (|HasCategory| |#2| '(|Monoid|))
                            (|HasCategory| |#2| '(|unitsKnown|))
                            (LETT #1#
                                  (|HasCategory| |#2|
                                      '(|CommutativeRing|)) . #5#)
                            (OR #1# (|HasCategory| |#2| '(|Field|))
                                (|HasCategory| |#2| '(|Ring|)))
                            (OR #1# (|HasCategory| |#2| '(|Field|)))
                            (OR #1# (|HasCategory| |#2| '(|Ring|)))
                            (|HasCategory| |#2| '(|Finite|))
                            (|HasCategory| |#2|
                                '(|LinearlyExplicitRingOver|
                                     (|Integer|)))
                            (|HasCategory| |#2|
                                '(|PartialDifferentialRing| (|Symbol|)))
                            (LETT #2#
                                  (|HasCategory| |#2|
                                      '(|DifferentialRing|)) . #5#)
                            (OR (|HasCategory| |#2|
                                    '(|LinearlyExplicitRingOver|
                                      (|Integer|)))
                                (|HasCategory| |#2|
                                    '(|PartialDifferentialRing|
                                      (|Symbol|)))
                                #1# #2# (|HasCategory| |#2| '(|Field|))
                                (|HasCategory| |#2| '(|Ring|)))
                            (OR (|HasCategory| |#2|
                                    '(|LinearlyExplicitRingOver|
                                      (|Integer|)))
                                (|HasCategory| |#2|
                                    '(|PartialDifferentialRing|
                                      (|Symbol|)))
                                #1# #2# (|HasCategory| |#2| '(|Ring|)))
                            (|HasCategory| (|Integer|) '(|OrderedSet|))
                            (AND (|HasCategory| |#2| '(|Ring|))
                                 (|HasCategory| |#2|
                                     '(|LinearlyExplicitRingOver|
                                       (|Integer|))))
                            (AND #2# (|HasCategory| |#2| '(|Ring|)))
                            (AND (|HasCategory| |#2| '(|Ring|))
                                 (|HasCategory| |#2|
                                     '(|PartialDifferentialRing|
                                       (|Symbol|))))
                            (AND (|HasCategory| |#2| '(|SetCategory|))
                                 (|HasCategory| |#2|
                                     '(|RetractableTo| (|Integer|))))
                            (OR (|HasCategory| |#2| '(|Ring|))
                                (AND (|HasCategory| |#2|
                                      '(|SetCategory|))
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|)))))
                            (AND (|HasCategory| |#2|
                                     '(|RetractableTo|
                                       (|Fraction| (|Integer|))))
                                 (|HasCategory| |#2| '(|SetCategory|)))
                            (LETT #3#
                                  (|HasCategory| |#2|
                                      '(|CancellationAbelianMonoid|)) . #5#)
                            (OR (|HasCategory| |#2|
                                    '(|LinearlyExplicitRingOver|
                                      (|Integer|)))
                                (|HasCategory| |#2|
                                    '(|PartialDifferentialRing|
                                      (|Symbol|)))
                                #3# #1# #2#
                                (|HasCategory| |#2| '(|Field|))
                                (|HasCategory| |#2| '(|Ring|)))
                            (LETT #4#
                                  (|HasCategory| |#2|
                                      '(|AbelianSemiGroup|)) . #5#)
                            (OR (|HasCategory| |#2|
                                    '(|LinearlyExplicitRingOver|
                                      (|Integer|)))
                                (|HasCategory| |#2|
                                    '(|PartialDifferentialRing|
                                      (|Symbol|)))
                                #4# #3# #1# #2#
                                (|HasCategory| |#2| '(|Field|))
                                (|HasCategory| |#2| '(|Finite|))
                                (|HasCategory| |#2| '(|Monoid|))
                                (|HasCategory| |#2|
                                    '(|OrderedAbelianMonoidSup|))
                                #0# (|HasCategory| |#2| '(|Ring|))
                                (|HasCategory| |#2| '(|SetCategory|)))
                            (OR (|HasCategory| |#2|
                                    '(|LinearlyExplicitRingOver|
                                      (|Integer|)))
                                (|HasCategory| |#2|
                                    '(|PartialDifferentialRing|
                                      (|Symbol|)))
                                #4# #3# #1# #2#
                                (|HasCategory| |#2| '(|Field|))
                                (|HasCategory| |#2| '(|Ring|)))
                            (OR (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2|
                                      '(|LinearlyExplicitRingOver|
                                        (|Integer|))))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2|
                                      '(|PartialDifferentialRing|
                                        (|Symbol|))))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     #4#)
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     #3#)
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     #1#)
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     #2#)
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2| '(|Field|)))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2| '(|Finite|)))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2| '(|Monoid|)))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2|
                                      '(|OrderedAbelianMonoidSup|)))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     #0#)
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2| '(|Ring|)))
                                (AND (|HasCategory| |#2|
                                      '(|RetractableTo|
                                        (|Fraction| (|Integer|))))
                                     (|HasCategory| |#2|
                                      '(|SetCategory|))))
                            (OR (AND (|HasCategory| |#2|
                                      '(|LinearlyExplicitRingOver|
                                        (|Integer|)))
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND (|HasCategory| |#2|
                                      '(|PartialDifferentialRing|
                                        (|Symbol|)))
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND #4#
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND #3#
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND #1#
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND #2#
                                     (|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 #0#
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND (|HasCategory| |#2| '(|Ring|))
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|))))
                                (AND (|HasCategory| |#2|
                                      '(|SetCategory|))
                                     (|HasCategory| |#2|
                                      '(|RetractableTo| (|Integer|)))))
                            (AND (|HasCategory| |#2| '(|SetCategory|))
                                 (|HasCategory| |#2|
                                     (LIST '|Evalable|
                                      (|devaluate| |#2|))))
                            (OR (AND #4#
                                     (|HasCategory| |#2|
                                      (LIST '|Evalable|
                                       (|devaluate| |#2|))))
                                (AND #3#
                                     (|HasCategory| |#2|
                                      (LIST '|Evalable|
                                       (|devaluate| |#2|))))
                                (AND #1#
                                     (|HasCategory| |#2|
                                      (LIST '|Evalable|
                                       (|devaluate| |#2|))))
                                (AND #2#
                                     (|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 #0#
                                     (|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|))))))) . #5#))
        (|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) (|Matrix| 10) (|Matrix| $)
             (|Record| (|:| |mat| 20) (|:| |vec| (|Vector| 10)))
             (|Vector| $) (|List| 26) (|List| 16) (|Symbol|)
             (|Union| 28 '"failed") (|Fraction| 10)
             (|Union| 10 '"failed") (|Mapping| 13 7) (|Void|)
             (|Mapping| 7 7) (|PositiveInteger|) (|Union| $ '"failed")
             (|CardinalNumber|) (|List| $)
             (|Record| (|:| |mat| 38) (|:| |vec| 43)) (|Matrix| 7)
             (|Union| 7 '"failed") (|OutputForm|) (|String|)
             (|SingleInteger|) (|Vector| 7) (|List| 10))
          '#(|qelt| 22 < 28) 'NIL
          (CONS (|makeByteWordVec2| 34
                    '(0 2 9 3 3 11 5 9 3 14 15 16 10 9 18 10 3 4 5 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 |Ring&| NIL NIL NIL NIL NIL NIL NIL
                         NIL |AbelianGroup&| NIL NIL NIL
                         |IndexedAggregate&| NIL NIL |Monoid&|
                         |AbelianMonoid&| |HomogeneousAggregate&|
                         |OrderedSet&| |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| 26)
                               (|DifferentialRing|) (|BiModule| 7 7)
                               (|BiModule| $$ $$) (|Ring|)
                               (|LeftModule| 7) (|RightModule| 7)
                               (|OrderedAbelianMonoidSup|)
                               (|OrderedAbelianGroup|)
                               (|LeftModule| $$) (|RightModule| $$)
                               (|Rng|)
                               (|OrderedCancellationAbelianMonoid|)
                               (|AbelianGroup|)
                               (|OrderedAbelianMonoid|) (|SemiRing|)
                               (|CancellationAbelianMonoid|)
                               (|IndexedAggregate| 10 7)
                               (|OrderedAbelianSemiGroup|) (|SemiRng|)
                               (|Monoid|) (|AbelianMonoid|)
                               (|HomogeneousAggregate| 7)
                               (|OrderedSet|) (|SemiGroup|) (|Finite|)
                               (|AbelianSemiGroup|) (|Aggregate|)
                               (|EltableAggregate| 10 7) (|Evalable| 7)
                               (|SetCategory|) (|FullyRetractableTo| 7)
                               (|Type|) (|finiteAggregate|)
                               (|CoercibleTo| (|Vector| 7))
                               (|Eltable| 10 7) (|InnerEvalable| 7 7)
                               (|CoercibleTo| 40) (|unitsKnown|)
                               (|CommutativeStar|) (|BasicType|)
                               (|RetractableTo| 7) (|RetractableTo| 28)
                               (|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|)) 
