
(/VERSIONCHECK 2) 

(DEFUN |CPIMA;XtoY| (Q $)
  (SPADCALL (CONS #'|CPIMA;XtoY!0| $) Q (QREFELT $ 17))) 

(DEFUN |CPIMA;XtoY!0| (|#1| $)
  (SPADCALL |#1| (|spadConstant| $ 12) (QREFELT $ 13))) 

(DEFUN |CPIMA;characteristicPolynomial;EPolR;2| (|x| $)
  (PROG (|Qx| #0=#:G1818)
    (RETURN
      (SEQ (EXIT (SEQ (LETT |Qx| (SPADCALL |x| (QREFELT $ 24))
                            . #1=(|CPIMA;characteristicPolynomial;EPolR;2|))
                      (EXIT (PROGN
                              (LETT #0#
                                    (SPADCALL (QREFELT $ 19)
                                     (SPADCALL (QREFELT $ 23)
                                      (|CPIMA;XtoY| |Qx| $)
                                      (QREFELT $ 25))
                                     (QREFELT $ 26)) . #1#)
                              (GO #0#)))))
           #0# (EXIT #0#))))) 

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

(DEFUN |CharacteristicPolynomialInMonogenicalAlgebra;| (|#1| |#2| |#3|)
  (PROG (DV$1 DV$2 DV$3 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|CharacteristicPolynomialInMonogenicalAlgebra|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT |dv$|
              (LIST '|CharacteristicPolynomialInMonogenicalAlgebra|
                    DV$1 DV$2 DV$3) . #0#)
        (LETT $ (GETREFV 28) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache|
            '|CharacteristicPolynomialInMonogenicalAlgebra|
            (LIST DV$1 DV$2 DV$3) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (QSETREFV $ 19 (|CPIMA;XtoY| (SPADCALL (QREFELT $ 18)) $))
        (QSETREFV $ 23
            (SPADCALL (SPADCALL (|spadConstant| $ 20) 1 (QREFELT $ 13))
                0 (QREFELT $ 22)))
        $)))) 

(MAKEPROP '|CharacteristicPolynomialInMonogenicalAlgebra| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (0 . |Zero|) (4 . |Zero|)
             (|NonNegativeInteger|) (8 . |Zero|) (12 . |monomial|)
             (|SparseUnivariatePolynomial| 7) (|Mapping| 7 6)
             (|UnivariatePolynomialCategoryFunctions2| 6 7 7 14)
             (18 . |map|) (24 . |definingPolynomial|) 'P (28 . |One|)
             (32 . |One|) (36 . |monomial|) 'X (42 . |lift|) (47 . -)
             (53 . |resultant|)
             |CPIMA;characteristicPolynomial;EPolR;2|)
          '#(|characteristicPolynomial| 59) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 27
                                '(0 6 0 9 0 7 0 10 0 11 0 12 2 7 0 6 11
                                  13 2 16 14 15 7 17 0 8 7 18 0 6 0 20
                                  0 7 0 21 2 14 0 7 11 22 1 8 7 0 24 2
                                  14 0 0 0 25 2 14 7 0 0 26 1 0 7 8 27)))))
          '|lookupComplete|)) 
