
(/VERSIONCHECK 2) 

(DEFUN |FFSLPE;solveLinearPolynomialEquation;LFPPU;1| (|lp| |p| $)
  (PROG (|u| #0=#:G1847 #1=#:G1822 #2=#:G1820 #3=#:G1821 |deg| |ans|
             #4=#:G1833 #5=#:G1824 |answer|)
    (RETURN
      (SEQ (COND
             ((NULL (SPADCALL (QREFELT $ 9) |lp| (QREFELT $ 18)))
              (SEQ (LETT |deg|
                         (PROGN
                           (LETT #3# NIL
                                 . #6=(|FFSLPE;solveLinearPolynomialEquation;LFPPU;1|))
                           (SEQ (LETT |u| NIL . #6#)
                                (LETT #0# |lp| . #6#) G190
                                (COND
                                  ((OR (ATOM #0#)
                                    (PROGN
                                      (LETT |u| (CAR #0#) . #6#)
                                      NIL))
                                   #7=(GO G191)))
                                (SEQ (EXIT
                                      (PROGN
                                        (LETT #1#
                                         (SPADCALL |u| (QREFELT $ 19)) . #6#)
                                        (COND
                                          (#3#
                                           (LETT #2# (+ #2# #1#) . #6#))
                                          ('T
                                           (PROGN
                                             (LETT #2# #1# . #6#)
                                             (LETT #3# 'T . #6#)))))))
                                (LETT #0# (CDR #0#) . #6#) #8=(GO G190)
                                G191 (EXIT NIL))
                           (COND (#3# #2#) ('T 0))) . #6#)
                   (LETT |ans| (CONS 1 "failed") . #6#)
                   (SETELT $ 14
                           (SPADCALL
                               (SPADCALL (|spadConstant| $ 10) 1
                                   (QREFELT $ 13))
                               (SPADCALL (|spadConstant| $ 10) 0
                                   (QREFELT $ 13))
                               (QREFELT $ 20)))
                   (SEQ G190 (COND ((NULL (QEQCAR |ans| 1)) #7#))
                        (SEQ (LETT |ans|
                                   (SPADCALL |deg| (QREFELT $ 14) |lp|
                                    (QREFELT $ 23)) . #6#)
                             (EXIT (COND
                                     ((QEQCAR |ans| 1)
                                      (SEQ
                                       (SETELT $ 14
                                        (PROG2
                                         (LETT #4#
                                          (SPADCALL (QREFELT $ 14)
                                           (QREFELT $ 25)) . #6#)
                                         (QCDR #4#)
                                          (|check-union| (QEQCAR #4# 0)
                                           (QREFELT $ 7) #4#)))
                                       (EXIT
                                        (SEQ G190
                                         (COND
                                           ((NULL
                                             (COND
                                               ((< 1
                                                 (SPADCALL
                                                  (QREFELT $ 14)
                                                  (QREFELT $ 27)))
                                                (COND
                                                  ((SPADCALL
                                                    (QREFELT $ 14)
                                                    (QREFELT $ 29))
                                                   'NIL)
                                                  ('T 'T)))
                                               ('T 'NIL)))
                                            #7#))
                                         (SEQ
                                          (EXIT
                                           (SETELT $ 14
                                            (PROG2
                                             (LETT #4#
                                              (SPADCALL (QREFELT $ 14)
                                               (QREFELT $ 25)) . #6#)
                                             (QCDR #4#)
                                              (|check-union|
                                               (QEQCAR #4# 0)
                                               (QREFELT $ 7) #4#)))))
                                         NIL #8# G191 (EXIT NIL))))))))
                        NIL #8# G191 (EXIT NIL))
                   (EXIT (SETELT $ 15
                                 (PROG2 (LETT #5# |ans| . #6#)
                                        (QCDR #5#)
                                   (|check-union| (QEQCAR #5# 0)
                                    (|Vector| (|List| (QREFELT $ 8)))
                                    #5#)))))))
           (LETT |answer|
                 (SPADCALL |p| (QREFELT $ 14) (QREFELT $ 15)
                     (QREFELT $ 32)) . #6#)
           (EXIT |answer|))))) 

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

(DEFUN |FiniteFieldSolveLinearPolynomialEquation;| (|#1| |#2| |#3|)
  (PROG (DV$1 DV$2 DV$3 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|FiniteFieldSolveLinearPolynomialEquation|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT |dv$|
              (LIST '|FiniteFieldSolveLinearPolynomialEquation| DV$1
                    DV$2 DV$3) . #0#)
        (LETT $ (GETREFV 34) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache|
            '|FiniteFieldSolveLinearPolynomialEquation|
            (LIST DV$1 DV$2 DV$3) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (QSETREFV $ 9 NIL)
        (QSETREFV $ 14
            (SPADCALL (|spadConstant| $ 10) 1 (QREFELT $ 13)))
        (QSETREFV $ 15 #())
        $)))) 

(MAKEPROP '|FiniteFieldSolveLinearPolynomialEquation| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) '|oldlp| (0 . |One|) (4 . |One|)
             (|NonNegativeInteger|) (8 . |monomial|) '|slpePrime|
             '|oldtable| (|Boolean|) (|List| 8) (14 . =)
             (20 . |degree|) (25 . +) (|Union| 31 '"failed")
             (|GenExEuclid| 7 8) (31 . |tablePow|)
             (|Union| $ '"failed") (38 . |nextItem|) (43 . |One|)
             (47 . |degree|) (|DistinctDegreeFactorize| 6 7)
             (52 . |irreducible?|) (|Union| 17 '"failed") (|Vector| 17)
             (57 . |solveid|)
             |FFSLPE;solveLinearPolynomialEquation;LFPPU;1|)
          '#(|solveLinearPolynomialEquation| 64) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 33
                                '(0 6 0 10 0 7 0 11 2 7 0 6 12 13 2 17
                                  16 0 0 18 1 8 12 0 19 2 7 0 0 0 20 3
                                  22 21 12 7 17 23 1 7 24 0 25 0 8 0 26
                                  1 7 12 0 27 1 28 16 7 29 3 22 30 8 7
                                  31 32 2 0 30 17 8 33)))))
          '|lookupComplete|)) 
