
(/VERSIONCHECK 2) 

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

(DEFUN |MultivariatePolynomial;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ #0=#:G1849 |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #1=(|MultivariatePolynomial|))
        (LETT DV$2 (|devaluate| |#2|) . #1#)
        (LETT |dv$| (LIST '|MultivariatePolynomial| DV$1 DV$2) . #1#)
        (LETT $ (GETREFV 54) . #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| '|MultivariatePolynomial|
            (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 '|MultivariatePolynomial| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL (|SparseMultivariatePolynomial| 7 17)
             (|local| |#1|) (|local| |#2|) (|InputForm|)
             (|Pattern| (|Float|)) (|Pattern| 31)
             (|PatternMatchResult| (|Float|) $)
             (|PatternMatchResult| 31 $) (|Union| 25 '"failed")
             (|Matrix| $) (|Union| $ '"failed") (|Fraction| 31)
             (|OrderedVariableList| 6) (|NonNegativeInteger|)
             (|List| $) (|SparseUnivariatePolynomial| $) (|Factored| $)
             (|Record| (|:| |unit| $) (|:| |canonical| $)
                 (|:| |associate| $))
             (|Boolean|)
             (|Record| (|:| |mat| 26) (|:| |vec| (|Vector| 31)))
             (|Vector| $) (|Matrix| 31) (|Factored| 20)
             (|Union| 29 '"failed") (|List| 20) (|Union| 16 '"failed")
             (|Integer|) (|Union| 31 '"failed") (|List| 17)
             (|Record| (|:| |var| 17) (|:| |exponent| 18))
             (|Union| 34 '"failed") (|Union| 19 '"failed")
             (|SparseUnivariatePolynomial| 7) (|List| 18)
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (|Union| 17 '"failed") (|Matrix| 7)
             (|Record| (|:| |mat| 41) (|:| |vec| (|Vector| 7)))
             (|List| 7) (|Equation| $) (|List| 44)
             (|IndexedExponents| 17) (|Mapping| 7 7)
             (|Union| 7 '"failed") (|Mapping| 46 46)
             (|PositiveInteger|) (|SingleInteger|) (|String|)
             (|OutputForm|))
          '#() 'NIL
          (CONS (|makeByteWordVec2| 23
                    '(0 1 0 1 0 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&|
                         |FiniteAbelianMonoidRing&|
                         |UniqueFactorizationDomain&|
                         |AbelianMonoidRing&| |GcdDomain&|
                         |IntegralDomain&|
                         |FullyLinearlyExplicitRingOver&| |Algebra&|
                         |Algebra&| |Algebra&|
                         |PartialDifferentialRing&| NIL NIL |Module&|
                         NIL NIL |Module&| NIL NIL |Module&| NIL
                         |Ring&| 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
                                   (|IndexedExponents|
                                    (|OrderedVariableList| 6))
                                   (|OrderedVariableList| 6))
                               (|PolynomialFactorizationExplicit|)
                               (|FiniteAbelianMonoidRing| 7
                                   (|IndexedExponents|
                                    (|OrderedVariableList| 6)))
                               (|UniqueFactorizationDomain|)
                               (|AbelianMonoidRing| 7
                                   (|IndexedExponents|
                                    (|OrderedVariableList| 6)))
                               (|GcdDomain|) (|IntegralDomain|)
                               (|FullyLinearlyExplicitRingOver| 7)
                               (|Algebra| $$) (|Algebra| 16)
                               (|Algebra| 7)
                               (|PartialDifferentialRing|
                                   (|OrderedVariableList| 6))
                               (|LinearlyExplicitRingOver| 7)
                               (|CommutativeRing|) (|Module| $$)
                               (|EntireRing|)
                               (|LinearlyExplicitRingOver| 31)
                               (|Module| 16) (|CharacteristicNonZero|)
                               (|CharacteristicZero|) (|Module| 7)
                               (|BiModule| 7 7) (|Ring|)
                               (|BiModule| $$ $$) (|BiModule| 16 16)
                               (|LeftModule| 7) (|Rng|)
                               (|RightModule| 7) (|LeftModule| $$)
                               (|RightModule| $$) (|LeftModule| 16)
                               (|RightModule| 16) (|AbelianGroup|)
                               (|CancellationAbelianMonoid|)
                               (|SemiRing|) (|AbelianMonoid|)
                               (|Monoid|) (|SemiRng|) (|SemiGroup|)
                               (|AbelianSemiGroup|)
                               (|PatternMatchable| (|Float|))
                               (|PatternMatchable| 31) (|OrderedSet|)
                               (|Evalable| $$) (|FullyRetractableTo| 7)
                               (|SetCategory|)
                               (|RetractableTo|
                                   (|OrderedVariableList| 6))
                               (|InnerEvalable|
                                   (|OrderedVariableList| 6) $$)
                               (|InnerEvalable|
                                   (|OrderedVariableList| 6) 7)
                               (|InnerEvalable| $$ $$)
                               (|RetractableTo| 7) (|unitsKnown|)
                               (|BasicType|) (|CoercibleTo| 53)
                               (|CommutativeStar|) (|noZeroDivisors|)
                               (|canonicalUnitNormal|)
                               (|ConvertibleTo| 9) (|ConvertibleTo| 10)
                               (|ConvertibleTo| 8) (|RetractableTo| 31)
                               (|RetractableTo| 16))
                            (|makeByteWordVec2| -999999 'NIL))))
          '|lookupIncomplete|)) 
