
(/VERSIONCHECK 2) 

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

(DEFUN |DistributedMultivariatePolynomial;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ #0=#:G1850 |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #1=(|DistributedMultivariatePolynomial|))
        (LETT DV$2 (|devaluate| |#2|) . #1#)
        (LETT |dv$|
              (LIST '|DistributedMultivariatePolynomial| DV$1 DV$2) . #1#)
        (LETT $ (GETREFV 55) . #1#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| |#2|
                                '(|PolynomialFactorizationExplicit|))
                            (|HasCategory| |#2| '(|CommutativeRing|))
                            (|HasCategory| |#2| '(|IntegralDomain|))
                            (OR (|HasCategory| |#2|
                                    '(|CommutativeRing|))
                                (|HasCategory| |#2|
                                    '(|IntegralDomain|)))
                            (|HasCategory| |#2|
                                '(|canonicalUnitNormal|))
                            (AND (|HasCategory|
                                     (|OrderedVariableList| |#1|)
                                     '(|PatternMatchable| (|Float|)))
                                 (|HasCategory| |#2|
                                     '(|PatternMatchable| (|Float|))))
                            (AND (|HasCategory|
                                     (|OrderedVariableList| |#1|)
                                     '(|PatternMatchable| (|Integer|)))
                                 (|HasCategory| |#2|
                                     '(|PatternMatchable| (|Integer|))))
                            (AND (|HasCategory|
                                     (|OrderedVariableList| |#1|)
                                     '(|ConvertibleTo|
                                       (|Pattern| (|Float|))))
                                 (|HasCategory| |#2|
                                     '(|ConvertibleTo|
                                       (|Pattern| (|Float|)))))
                            (AND (|HasCategory|
                                     (|OrderedVariableList| |#1|)
                                     '(|ConvertibleTo|
                                       (|Pattern| (|Integer|))))
                                 (|HasCategory| |#2|
                                     '(|ConvertibleTo|
                                       (|Pattern| (|Integer|)))))
                            (AND (|HasCategory|
                                     (|OrderedVariableList| |#1|)
                                     '(|ConvertibleTo| (|InputForm|)))
                                 (|HasCategory| |#2|
                                     '(|ConvertibleTo| (|InputForm|))))
                            (|HasCategory| |#2| '(|OrderedSet|))
                            (|HasCategory| |#2|
                                '(|LinearlyExplicitRingOver|
                                     (|Integer|)))
                            (|HasCategory| |#2|
                                '(|Algebra| (|Fraction| (|Integer|))))
                            (|HasCategory| |#2|
                                '(|CharacteristicNonZero|))
                            (|HasCategory| |#2|
                                '(|CharacteristicZero|))
                            (|HasCategory| |#2|
                                '(|RetractableTo| (|Integer|)))
                            (|HasCategory| |#2|
                                '(|RetractableTo|
                                     (|Fraction| (|Integer|))))
                            (|HasCategory| |#2| '(|Field|))
                            (OR (|HasCategory| |#2|
                                    '(|Algebra|
                                      (|Fraction| (|Integer|))))
                                (|HasCategory| |#2|
                                    '(|RetractableTo|
                                      (|Fraction| (|Integer|)))))
                            (LETT #0#
                                  (|HasCategory| |#2| '(|GcdDomain|)) . #1#)
                            (OR (|HasCategory| |#2|
                                    '(|CommutativeRing|))
                                #0#
                                (|HasCategory| |#2|
                                    '(|IntegralDomain|))
                                (|HasCategory| |#2|
                                    '(|PolynomialFactorizationExplicit|)))
                            (OR #0#
                                (|HasCategory| |#2|
                                    '(|IntegralDomain|))
                                (|HasCategory| |#2|
                                    '(|PolynomialFactorizationExplicit|)))
                            (OR #0#
                                (|HasCategory| |#2|
                                    '(|PolynomialFactorizationExplicit|))))) . #1#))
        (|haddProp| |$ConstructorCache|
            '|DistributedMultivariatePolynomial| (LIST DV$1 DV$2)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (AND (|HasCategory| $ '(|CharacteristicNonZero|))
             (|HasCategory| |#2| '(|PolynomialFactorizationExplicit|))
             (|augmentPredVector| $ 8388608))
        (AND (OR (AND (|HasCategory| $ '(|CharacteristicNonZero|))
                      (|HasCategory| |#2|
                          '(|PolynomialFactorizationExplicit|)))
                 (|HasCategory| |#2| '(|CharacteristicNonZero|)))
             (|augmentPredVector| $ 16777216))
        $)))) 

(MAKEPROP '|DistributedMultivariatePolynomial| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL
             (|GeneralDistributedMultivariatePolynomial| 6 7 48)
             (|local| |#1|) (|local| |#2|) (|InputForm|)
             (|Pattern| (|Float|)) (|Pattern| 32)
             (|PatternMatchResult| (|Float|) $)
             (|PatternMatchResult| 32 $) (|Union| 26 '"failed")
             (|Matrix| $) (|Union| $ '"failed") (|Fraction| 32)
             (|OrderedVariableList| 6) (|NonNegativeInteger|)
             (|List| $) (|Factored| $) (|SparseUnivariatePolynomial| $)
             (|Record| (|:| |unit| $) (|:| |canonical| $)
                 (|:| |associate| $))
             (|Boolean|) (|Matrix| 32)
             (|Record| (|:| |mat| 24) (|:| |vec| (|Vector| 32)))
             (|Vector| $) (|Factored| 21) (|Union| 29 '"failed")
             (|List| 21) (|Union| 16 '"failed") (|Union| 32 '"failed")
             (|Integer|) (|List| 32) (|List| 17) (|Union| 19 '"failed")
             (|Record| (|:| |var| 17) (|:| |exponent| 18))
             (|Union| 36 '"failed") (|List| 18)
             (|SparseUnivariatePolynomial| 7)
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (|Union| 17 '"failed")
             (|Record| (|:| |mat| 43) (|:| |vec| (|Vector| 7)))
             (|Matrix| 7) (|List| 7) (|List| 46) (|Equation| $)
             (|Mapping| 7 7)
             (|DirectProduct| (NRTEVAL (LENGTH (QREFELT $ 6))) 18)
             (|Union| 7 '"failed") (|Mapping| 48 48)
             (|PositiveInteger|) (|SingleInteger|) (|String|)
             (|OutputForm|))
          '#() 'NIL
          (CONS (|makeByteWordVec2| 23
                    '(0 1 1 23 22 0 3 13 2 0 0 21 3 3 12 13 14 15 2 0 0
                      4 13 0 0 0 0 2 13 13 0 0 0 0 0 0 0 0 6 7 11 0 0 0
                      0 0 0 0 0 0 0 0 2 3 5 8 9 10 16 17))
                (CONS '#(|PolynomialCategory&|
                         |PolynomialFactorizationExplicit&|
                         |UniqueFactorizationDomain&| |GcdDomain&|
                         |IntegralDomain&|
                         |FullyLinearlyExplicitRingOver&| |Algebra&|
                         |Algebra&| |Algebra&|
                         |PartialDifferentialRing&| NIL NIL |Module&|
                         NIL NIL |Module&| NIL NIL |Module&| |Ring&|
                         NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL
                         |AbelianGroup&| NIL NIL |AbelianMonoid&|
                         |Monoid&| NIL |SemiGroup&| |AbelianSemiGroup&|
                         NIL NIL |OrderedSet&| |Evalable&|
                         |FullyRetractableTo&| |SetCategory&|
                         |RetractableTo&| |InnerEvalable&|
                         |InnerEvalable&| |InnerEvalable&|
                         |RetractableTo&| NIL |BasicType&| NIL NIL NIL
                         NIL NIL NIL NIL |RetractableTo&|
                         |RetractableTo&|)
                      (CONS '#((|PolynomialCategory| 7
                                   (|DirectProduct| (LENGTH 6) 18)
                                   (|OrderedVariableList| 6))
                               (|PolynomialFactorizationExplicit|)
                               (|UniqueFactorizationDomain|)
                               (|GcdDomain|) (|IntegralDomain|)
                               (|FullyLinearlyExplicitRingOver| 7)
                               (|Algebra| $$) (|Algebra| 16)
                               (|Algebra| 7)
                               (|PartialDifferentialRing|
                                   (|OrderedVariableList| 6))
                               (|LinearlyExplicitRingOver| 7)
                               (|CommutativeRing|) (|Module| $$)
                               (|EntireRing|)
                               (|LinearlyExplicitRingOver| 32)
                               (|Module| 16) (|CharacteristicNonZero|)
                               (|CharacteristicZero|) (|Module| 7)
                               (|Ring|) (|BiModule| 7 7)
                               (|BiModule| $$ $$) (|BiModule| 16 16)
                               (|Rng|) (|LeftModule| 7)
                               (|RightModule| 7) (|LeftModule| $$)
                               (|RightModule| $$) (|LeftModule| 16)
                               (|RightModule| 16) (|AbelianGroup|)
                               (|CancellationAbelianMonoid|)
                               (|SemiRing|) (|AbelianMonoid|)
                               (|Monoid|) (|SemiRng|) (|SemiGroup|)
                               (|AbelianSemiGroup|)
                               (|PatternMatchable| (|Float|))
                               (|PatternMatchable| 32) (|OrderedSet|)
                               (|Evalable| $$) (|FullyRetractableTo| 7)
                               (|SetCategory|)
                               (|RetractableTo|
                                   (|OrderedVariableList| 6))
                               (|InnerEvalable|
                                   (|OrderedVariableList| 6) $$)
                               (|InnerEvalable|
                                   (|OrderedVariableList| 6) 7)
                               (|InnerEvalable| $$ $$)
                               (|RetractableTo| 7) (|unitsKnown|)
                               (|BasicType|) (|CoercibleTo| 54)
                               (|CommutativeStar|) (|noZeroDivisors|)
                               (|canonicalUnitNormal|)
                               (|ConvertibleTo| 9) (|ConvertibleTo| 10)
                               (|ConvertibleTo| 8) (|RetractableTo| 32)
                               (|RetractableTo| 16))
                            (|makeByteWordVec2| -999999 'NIL))))
          '|lookupIncomplete|)) 
