
(/VERSIONCHECK 2) 

(DEFUN |RECOP;getINFOREC| (|infoOp| $)
  (PROG (#1=#:G2889)
    (RETURN
     (PROG2
         (LETT #1# (SPADCALL |infoOp| '%INFOREC (QREFELT $ 18))
               |RECOP;getINFOREC|)
         (QCDR #1#)
       (|check-union| (QEQCAR #1# 0) (|None|) #1#))))) 

(DEFUN |RECOP;setINFOREC| (|infoOp| |rec| $)
  (SPADCALL |infoOp| '%INFOREC |rec| (QREFELT $ 16))) 

(DEFUN |RECOP;getINFOSER| (|infoOp| $)
  (PROG (#1=#:G2895)
    (RETURN
     (PROG2
         (LETT #1# (SPADCALL |infoOp| '%INFOSER (QREFELT $ 18))
               |RECOP;getINFOSER|)
         (QCDR #1#)
       (|check-union| (QEQCAR #1# 0) (|None|) #1#))))) 

(DEFUN |RECOP;setINFOSER| (|infoOp| |ser| $)
  (SPADCALL |infoOp| '%INFOSER |ser| (QREFELT $ 16))) 

(DEFUN |RECOP;getShiftRec| (|op| |f| |n| $)
  (PROG (#1=#:G2914 |num| |p| |a|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |a| (SPADCALL |f| (QREFELT $ 21)) . #2=(|RECOP;getShiftRec|))
            (COND
             ((SPADCALL (CONS #'|RECOP;getShiftRec!0| (VECTOR $ |n|)) |a|
                        (QREFELT $ 26))
              (PROGN (LETT #1# (CONS 0 0) . #2#) (GO #1#))))
            (COND
             ((NULL (EQL (LENGTH |a|) 1))
              (|error| "RECOP: operator should have only one argument")))
            (LETT |p|
                  (SPADCALL (SPADCALL |a| 1 (QREFELT $ 28))
                            (SPADCALL (SPADCALL |n| (QREFELT $ 22))
                                      (QREFELT $ 30))
                            (QREFELT $ 32))
                  . #2#)
            (COND
             ((NULL
               (SPADCALL (SPADCALL |p| (QREFELT $ 34)) (|spadConstant| $ 35)
                         (QREFELT $ 36)))
              (PROGN (LETT #1# (CONS 1 "failed") . #2#) (GO #1#))))
            (LETT |num| (SPADCALL |p| (QREFELT $ 38)) . #2#)
            (EXIT
             (COND
              ((EQL (SPADCALL |num| (QREFELT $ 40)) 1)
               (COND
                ((SPADCALL (SPADCALL |num| 1 (QREFELT $ 41))
                           (|spadConstant| $ 14) (QREFELT $ 42))
                 (COND
                  ((SPADCALL (CONS #'|RECOP;getShiftRec!1| (VECTOR $ |n|))
                             (SPADCALL |num| (QREFELT $ 43)) (QREFELT $ 26))
                   (PROGN
                    (LETT #1#
                          (SPADCALL (SPADCALL |num| 0 (QREFELT $ 41))
                                    (QREFELT $ 47))
                          . #2#)
                    (GO #1#)))
                  (#3='T
                   (PROGN (LETT #1# (CONS 1 #4="failed") . #2#) (GO #1#)))))
                (#3# (PROGN (LETT #1# (CONS 1 #4#) . #2#) (GO #1#)))))
              (#3# (PROGN (LETT #1# (CONS 1 #4#) . #2#) (GO #1#)))))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;getShiftRec!1| (|z| $$)
  (PROG (|n| $)
    (LETT |n| (QREFELT $$ 1) . #1=(|RECOP;getShiftRec|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN (SPADCALL |z| (SPADCALL |n| (QREFELT $ 22)) (QREFELT $ 24)))))) 

(DEFUN |RECOP;getShiftRec!0| (|z| $$)
  (PROG (|n| $)
    (LETT |n| (QREFELT $$ 1) . #1=(|RECOP;getShiftRec|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN (SPADCALL |z| (SPADCALL |n| (QREFELT $ 22)) (QREFELT $ 24)))))) 

(DEFUN |RECOP;shiftInfoRec| (|op| |argsym| |eq| $)
  (PROG (#1=#:G2926 #2=#:G2928 |minShift| |nextKernel| |maxShift| |error?|
         |shift| #3=#:G2929 |f|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |error?| 'T . #4=(|RECOP;shiftInfoRec|))
            (SEQ (LETT |f| NIL . #4#)
                 (LETT #3# (SPADCALL |eq| (QREFELT $ 49)) . #4#) G190
                 (COND
                  ((OR (ATOM #3#) (PROGN (LETT |f| (CAR #3#) . #4#) NIL))
                   (GO G191)))
                 (SEQ
                  (EXIT
                   (COND
                    ((SPADCALL |f| |op| (QREFELT $ 50))
                     (SEQ
                      (LETT |shift| (|RECOP;getShiftRec| |op| |f| |argsym| $)
                            . #4#)
                      (EXIT
                       (COND
                        (|error?|
                         (SEQ (LETT |error?| 'NIL . #4#)
                              (LETT |nextKernel| |f| . #4#)
                              (EXIT
                               (COND
                                ((QEQCAR |shift| 0)
                                 (SEQ (LETT |maxShift| (QCDR |shift|) . #4#)
                                      (EXIT
                                       (LETT |minShift| (QCDR |shift|)
                                             . #4#))))
                                ('T
                                 (PROGN
                                  (LETT #2# (CONS 1 "failed") . #4#)
                                  (GO #2#)))))))
                        ((QEQCAR |shift| 0)
                         (SEQ
                          (COND
                           ((< |maxShift| (QCDR |shift|))
                            (SEQ (LETT |maxShift| (QCDR |shift|) . #4#)
                                 (EXIT (LETT |nextKernel| |f| . #4#)))))
                          (EXIT
                           (COND
                            ((< (QCDR |shift|) |minShift|)
                             (LETT |minShift| (QCDR |shift|) . #4#))))))
                        ('T
                         (PROGN
                          (LETT #2# (CONS 1 "failed") . #4#)
                          (GO #2#))))))))))
                 (LETT #3# (CDR #3#) . #4#) (GO G190) G191 (EXIT NIL))
            (COND
             (|error?|
              (|error| "evalRec: equation does not contain operator")))
            (EXIT
             (CONS 0
                   (VECTOR
                    (PROG1 (LETT #1# (- |maxShift| |minShift|) . #4#)
                      (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|) #1#))
                    |maxShift| |nextKernel|)))))
      #2# (EXIT #2#))))) 

(DEFUN |RECOP;makeRec;BoSFLSF;7| (|op| |argsym| |eq| |params| |values| $)
  (PROG (#1=#:G2974 |info| |fn| |fl| #2=#:G2978 |i| #3=#:G2977 |ord1| |max1|
         |next| #4=#:G2976 #5=#:G2975 |uc1| |uc0| |c1| |c0| |argsymKer| |num|
         |p| |shiftInfo|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |shiftInfo| (|RECOP;shiftInfoRec| |op| |argsym| |eq| $)
              . #6=(|RECOP;makeRec;BoSFLSF;7|))
        (EXIT
         (COND
          ((QEQCAR |shiftInfo| 1)
           (SEQ
            (LETT |info|
                  (SPADCALL (SPADCALL '|inforec| (QREFELT $ 51)) 0
                            (QREFELT $ 52))
                  . #6#)
            (|RECOP;setINFOREC| |info|
             (VECTOR |eq| |argsym| |op| |params| |values| (CONS 1 "failed")
                     (CONS 1 "failed"))
             $)
            (EXIT
             (PROGN
              (LETT #1#
                    (SPADCALL (QREFELT $ 11)
                              (SPADCALL
                               (LIST (SPADCALL |argsym| (QREFELT $ 22))
                                     (SPADCALL |info| NIL (QREFELT $ 55)))
                               |params| (QREFELT $ 56))
                              (QREFELT $ 55))
                    . #6#)
              (GO #1#)))))
          (#7='T
           (SEQ
            (LETT |p|
                  (SPADCALL |eq| (QVELT (QCDR |shiftInfo|) 2) (QREFELT $ 32))
                  . #6#)
            (LETT |num| (SPADCALL |p| (QREFELT $ 38)) . #6#)
            (COND
             ((NULL (SPADCALL (SPADCALL |p| (QREFELT $ 57)) (QREFELT $ 58)))
              (|error|
               "makeRec assumes that the equation has no denominator")))
            (EXIT
             (COND
              ((EQL (SPADCALL |num| (QREFELT $ 40)) 1)
               (SEQ
                (LETT |argsymKer|
                      (SPADCALL (SPADCALL |argsym| (QREFELT $ 22))
                                (QREFELT $ 30))
                      . #6#)
                (LETT |c0| (SPADCALL |num| 0 (QREFELT $ 41)) . #6#)
                (LETT |c1| (SPADCALL |num| 1 (QREFELT $ 41)) . #6#)
                (EXIT
                 (COND
                  ((ZEROP (QVELT (QCDR |shiftInfo|) 0))
                   (COND
                    ((OR (SPADCALL |c1| |argsym| (QREFELT $ 59))
                         (NULL
                          (OR
                           (OR (SPADCALL |c0| (QREFELT $ 65))
                               (NULL
                                (SPADCALL
                                 (SPADCALL
                                  (SPADCALL
                                   (LETT |uc0|
                                         (SPADCALL |c0| |argsymKer|
                                                   (QREFELT $ 32))
                                         . #6#)
                                   (QREFELT $ 38))
                                  (SPADCALL
                                   (LETT |uc1|
                                         (SPADCALL |c1| |argsymKer|
                                                   (QREFELT $ 32))
                                         . #6#)
                                   (QREFELT $ 38))
                                  (QREFELT $ 73))
                                 (QREFELT $ 58))))
                           (NULL
                            (SPADCALL
                             (SPADCALL (SPADCALL |uc0| (QREFELT $ 57))
                                       (SPADCALL |uc1| (QREFELT $ 57))
                                       (QREFELT $ 73))
                             (QREFELT $ 58))))))
                     (PROGN
                      (LETT #1#
                            (SPADCALL
                             (SPADCALL (SPADCALL |c0| |c1| (QREFELT $ 60))
                                       (QREFELT $ 61))
                             (SPADCALL |argsym| (QREFELT $ 22))
                             (SPADCALL (SPADCALL |argsym| (QREFELT $ 22))
                                       (SPADCALL (QVELT (QCDR |shiftInfo|) 1)
                                                 (QREFELT $ 62))
                                       (QREFELT $ 63))
                             (QREFELT $ 64))
                            . #6#)
                      (GO #1#)))
                    ('T
                     (SEQ
                      (LETT |next|
                            (SPADCALL
                             (SPADCALL (SPADCALL |num| 0 (QREFELT $ 41))
                                       (SPADCALL |num| 1 (QREFELT $ 41))
                                       (QREFELT $ 60))
                             (QREFELT $ 61))
                            . #6#)
                      (LETT |max1| (QVELT (QCDR |shiftInfo|) 1) . #6#)
                      (LETT |ord1| (- (QVELT (QCDR |shiftInfo|) 0) 1) . #6#)
                      (LETT |fl|
                            (CONS (SPADCALL |argsym| (QREFELT $ 22))
                                  (PROGN
                                   (LETT #5# NIL . #6#)
                                   (SEQ (LETT |i| 1 . #6#)
                                        (LETT #4# (+ |ord1| 1) . #6#) G190
                                        (COND
                                         ((QSGREATERP |i| #4#) #8=(GO G191)))
                                        (SEQ
                                         (EXIT
                                          (LETT #5#
                                                (CONS
                                                 (SPADCALL |op|
                                                           (SPADCALL
                                                            (SPADCALL |argsym|
                                                                      (QREFELT
                                                                       $ 22))
                                                            (SPADCALL
                                                             (- |max1| |i|)
                                                             (QREFELT $ 62))
                                                            (QREFELT $ 66))
                                                           (QREFELT $ 67))
                                                 #5#)
                                                . #6#)))
                                        (LETT |i| (QSADD1 |i|) . #6#)
                                        #9=(GO G190) G191
                                        (EXIT (NREVERSE0 #5#)))))
                            . #6#)
                      (COND
                       ((< |ord1| 0)
                        (LETT |fn|
                              (CONS #'|RECOP;makeRec;BoSFLSF;7!0|
                                    (VECTOR |fl| |next| $))
                              . #6#))
                       (#7#
                        (LETT |fn|
                              (CONS #'|RECOP;makeRec;BoSFLSF;7!1|
                                    (VECTOR |ord1| |fl| |next| $))
                              . #6#)))
                      (LETT |info|
                            (SPADCALL (SPADCALL '|inforec| (QREFELT $ 51)) 0
                                      (QREFELT $ 52))
                            . #6#)
                      (|RECOP;setINFOREC| |info|
                       (VECTOR |eq| |argsym| |op| |params| |values|
                               (CONS 0 (QVELT (QCDR |shiftInfo|) 0))
                               (CONS 0 |fn|))
                       $)
                      (EXIT
                       (PROGN
                        (LETT #1#
                              (SPADCALL (QREFELT $ 11)
                                        (SPADCALL
                                         (LIST
                                          (SPADCALL |argsym| (QREFELT $ 22))
                                          (SPADCALL |info| NIL (QREFELT $ 55)))
                                         |params| (QREFELT $ 56))
                                        (QREFELT $ 55))
                              . #6#)
                        (GO #1#)))))))
                  (#7#
                   (SEQ
                    (LETT |next|
                          (SPADCALL
                           (SPADCALL (SPADCALL |num| 0 (QREFELT $ 41))
                                     (SPADCALL |num| 1 (QREFELT $ 41))
                                     (QREFELT $ 60))
                           (QREFELT $ 61))
                          . #6#)
                    (LETT |max1| (QVELT (QCDR |shiftInfo|) 1) . #6#)
                    (LETT |ord1| (- (QVELT (QCDR |shiftInfo|) 0) 1) . #6#)
                    (LETT |fl|
                          (CONS (SPADCALL |argsym| (QREFELT $ 22))
                                (PROGN
                                 (LETT #3# NIL . #6#)
                                 (SEQ (LETT |i| 1 . #6#)
                                      (LETT #2# (+ |ord1| 1) . #6#) G190
                                      (COND ((QSGREATERP |i| #2#) #8#))
                                      (SEQ
                                       (EXIT
                                        (LETT #3#
                                              (CONS
                                               (SPADCALL |op|
                                                         (SPADCALL
                                                          (SPADCALL |argsym|
                                                                    (QREFELT $
                                                                             22))
                                                          (SPADCALL
                                                           (- |max1| |i|)
                                                           (QREFELT $ 62))
                                                          (QREFELT $ 66))
                                                         (QREFELT $ 67))
                                               #3#)
                                              . #6#)))
                                      (LETT |i| (QSADD1 |i|) . #6#) #9# G191
                                      (EXIT (NREVERSE0 #3#)))))
                          . #6#)
                    (COND
                     ((< |ord1| 0)
                      (LETT |fn|
                            (CONS #'|RECOP;makeRec;BoSFLSF;7!2|
                                  (VECTOR |fl| |next| $))
                            . #6#))
                     (#7#
                      (LETT |fn|
                            (CONS #'|RECOP;makeRec;BoSFLSF;7!3|
                                  (VECTOR |ord1| |fl| |next| $))
                            . #6#)))
                    (LETT |info|
                          (SPADCALL (SPADCALL '|inforec| (QREFELT $ 51)) 0
                                    (QREFELT $ 52))
                          . #6#)
                    (|RECOP;setINFOREC| |info|
                     (VECTOR |eq| |argsym| |op| |params| |values|
                             (CONS 0 (QVELT (QCDR |shiftInfo|) 0))
                             (CONS 0 |fn|))
                     $)
                    (EXIT
                     (PROGN
                      (LETT #1#
                            (SPADCALL (QREFELT $ 11)
                                      (SPADCALL
                                       (LIST (SPADCALL |argsym| (QREFELT $ 22))
                                             (SPADCALL |info| NIL
                                                       (QREFELT $ 55)))
                                       |params| (QREFELT $ 56))
                                      (QREFELT $ 55))
                            . #6#)
                      (GO #1#)))))))))
              (#7#
               (SEQ
                (LETT |info|
                      (SPADCALL (SPADCALL '|inforec| (QREFELT $ 51)) 0
                                (QREFELT $ 52))
                      . #6#)
                (|RECOP;setINFOREC| |info|
                 (VECTOR |eq| |argsym| |op| |params| |values|
                         (CONS 0 (QVELT (QCDR |shiftInfo|) 0))
                         (CONS 1 "failed"))
                 $)
                (EXIT
                 (PROGN
                  (LETT #1#
                        (SPADCALL (QREFELT $ 11)
                                  (SPADCALL
                                   (LIST (SPADCALL |argsym| (QREFELT $ 22))
                                         (SPADCALL |info| NIL (QREFELT $ 55)))
                                   |params| (QREFELT $ 56))
                                  (QREFELT $ 55))
                        . #6#)
                  (GO #1#)))))))))))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;makeRec;BoSFLSF;7!3| (|l| $$)
  (PROG ($ |next| |fl| |ord1|)
    (LETT $ (QREFELT $$ 3) . #1=(|RECOP;makeRec;BoSFLSF;7|))
    (LETT |next| (QREFELT $$ 2) . #1#)
    (LETT |fl| (QREFELT $$ 1) . #1#)
    (LETT |ord1| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (PROG (#2=#:G2967)
        (RETURN
         (SPADCALL
          (LIST
           (SPADCALL (SPADCALL |l| (QREFELT $ 68)) (|spadConstant| $ 14)
                     (QREFELT $ 66))
           (SPADCALL |next| |fl| |l| (QREFELT $ 69)))
          (SPADCALL (SPADCALL |l| (QREFELT $ 70))
                    (PROG1 (LETT #2# |ord1| NIL)
                      (|check-subtype| (>= #2# 0) '(|NonNegativeInteger|) #2#))
                    (QREFELT $ 71))
          (QREFELT $ 56)))))))) 

(DEFUN |RECOP;makeRec;BoSFLSF;7!2| (|l| $$)
  (PROG ($ |next| |fl|)
    (LETT $ (QREFELT $$ 2) . #1=(|RECOP;makeRec;BoSFLSF;7|))
    (LETT |next| (QREFELT $$ 1) . #1#)
    (LETT |fl| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (LIST
       (SPADCALL (SPADCALL |l| (QREFELT $ 68)) (|spadConstant| $ 14)
                 (QREFELT $ 66))
       (SPADCALL |next| |fl| |l| (QREFELT $ 69))))))) 

(DEFUN |RECOP;makeRec;BoSFLSF;7!1| (|l| $$)
  (PROG ($ |next| |fl| |ord1|)
    (LETT $ (QREFELT $$ 3) . #1=(|RECOP;makeRec;BoSFLSF;7|))
    (LETT |next| (QREFELT $$ 2) . #1#)
    (LETT |fl| (QREFELT $$ 1) . #1#)
    (LETT |ord1| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (PROG (#2=#:G2942)
        (RETURN
         (SPADCALL
          (LIST
           (SPADCALL (SPADCALL |l| (QREFELT $ 68)) (|spadConstant| $ 14)
                     (QREFELT $ 66))
           (SPADCALL |next| |fl| |l| (QREFELT $ 69)))
          (SPADCALL (SPADCALL |l| (QREFELT $ 70))
                    (PROG1 (LETT #2# |ord1| NIL)
                      (|check-subtype| (>= #2# 0) '(|NonNegativeInteger|) #2#))
                    (QREFELT $ 71))
          (QREFELT $ 56)))))))) 

(DEFUN |RECOP;makeRec;BoSFLSF;7!0| (|l| $$)
  (PROG ($ |next| |fl|)
    (LETT $ (QREFELT $$ 2) . #1=(|RECOP;makeRec;BoSFLSF;7|))
    (LETT |next| (QREFELT $$ 1) . #1#)
    (LETT |fl| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (LIST
       (SPADCALL (SPADCALL |l| (QREFELT $ 68)) (|spadConstant| $ 14)
                 (QREFELT $ 66))
       (SPADCALL |next| |fl| |l| (QREFELT $ 69))))))) 

(DEFUN |RECOP;irecur| (|l| $)
  (PROG (#1=#:G3002 |s| |ll| #2=#:G3004 |i| #3=#:G3003 |o| #4=#:G2990 |g|
         #5=#:G2986 N #6=#:G2984 |info| |n| |arg|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |arg| (|SPADfirst| |l|) . #7=(|RECOP;irecur|))
            (LETT |n| (SPADCALL |arg| (QREFELT $ 47)) . #7#)
            (EXIT
             (COND
              ((QEQCAR |n| 0)
               (COND
                ((< (QCDR |n|) 0)
                 (PROGN
                  (LETT #1# (SPADCALL (QREFELT $ 11) |l| (QREFELT $ 55)) . #7#)
                  (GO #1#)))
                (#8='T
                 (SEQ
                  (LETT |info|
                        (|RECOP;getINFOREC|
                         (SPADCALL
                          (SPADCALL (SPADCALL |l| (QREFELT $ 76))
                                    (QREFELT $ 30))
                          (QREFELT $ 77))
                         $)
                        . #7#)
                  (COND
                   ((SPADCALL (QVELT |info| 4)
                              (+
                               (PROG1 (LETT #6# (QCDR |n|) . #7#)
                                 (|check-subtype| (>= #6# 0)
                                                  '(|NonNegativeInteger|) #6#))
                               1)
                              (QREFELT $ 78))
                    (COND
                     ((QEQCAR (QVELT |info| 6) 1)
                      (PROGN
                       (LETT #1# (SPADCALL (QREFELT $ 11) |l| (QREFELT $ 55))
                             . #7#)
                       (GO #1#)))
                     (#8#
                      (SEQ
                       (LETT N (SPADCALL (QVELT |info| 4) (QREFELT $ 79))
                             . #7#)
                       (LETT |g|
                             (PROG2
                                 (LETT #5# (QVELT |info| 6) . #7#)
                                 (QCDR #5#)
                               (|check-union| (QEQCAR #5# 0)
                                              (|Mapping| (|List| (QREFELT $ 7))
                                                         (|List|
                                                          (QREFELT $ 7)))
                                              #5#))
                             . #7#)
                       (LETT |o|
                             (PROG2
                                 (LETT #4# (QVELT |info| 5) . #7#)
                                 (QCDR #4#)
                               (|check-union| (QEQCAR #4# 0)
                                              (|NonNegativeInteger|) #4#))
                             . #7#)
                       (LETT |ll|
                             (CONS
                              (SPADCALL (SPADCALL N (QREFELT $ 62))
                                        (SPADCALL |o| (QREFELT $ 62))
                                        (QREFELT $ 63))
                              (PROGN
                               (LETT #3# NIL . #7#)
                               (SEQ (LETT |i| 0 . #7#)
                                    (LETT #2# (- |o| 1) . #7#) G190
                                    (COND ((QSGREATERP |i| #2#) (GO G191)))
                                    (SEQ
                                     (EXIT
                                      (LETT #3#
                                            (CONS
                                             (SPADCALL (QVELT |info| 4)
                                                       (- N |i|)
                                                       (QREFELT $ 80))
                                             #3#)
                                            . #7#)))
                                    (LETT |i| (QSADD1 |i|) . #7#) (GO G190)
                                    G191 (EXIT (NREVERSE0 #3#)))))
                             . #7#)
                       (LETT |s|
                             (SPADCALL (ELT $ 76)
                                       (SPADCALL
                                        (SPADCALL |g| |ll| (QREFELT $ 83))
                                        (QREFELT $ 84))
                                       (QREFELT $ 87))
                             . #7#)
                       (EXIT
                        (QSETVELT |info| 4
                                  (SPADCALL (QVELT |info| 4) |s|
                                            (QREFELT $ 88)))))))))
                  (EXIT
                   (PROGN
                    (LETT #1#
                          (SPADCALL
                           (SPADCALL (QVELT |info| 4) (+ (QCDR |n|) 1)
                                     (QREFELT $ 80))
                           (QVELT |info| 3) (SPADCALL |l| 2 (QREFELT $ 89))
                           (QREFELT $ 69))
                          . #7#)
                    (GO #1#)))))))
              (#8#
               (PROGN
                (LETT #1# (SPADCALL (QREFELT $ 11) |l| (QREFELT $ 55)) . #7#)
                (GO #1#)))))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;ddrec| (|l| $)
  (PROG (|RecList| #1=#:G3014 |i| #2=#:G3013 |RecEq| |RecCoeff| |v| #3=#:G3007
         |e| |lv| |lp| |f| |n0| |n| |info|)
    (RETURN
     (SEQ
      (LETT |info|
            (|RECOP;getINFOREC|
             (SPADCALL (SPADCALL (SPADCALL |l| (QREFELT $ 76)) (QREFELT $ 30))
                       (QREFELT $ 77))
             $)
            . #4=(|RECOP;ddrec|))
      (LETT |n| (|SPADfirst| |l|) . #4#)
      (LETT |n0| (SPADCALL (QVELT |info| 1) (QREFELT $ 22)) . #4#)
      (LETT |f| (QVELT |info| 2) . #4#)
      (LETT |lp| (CONS |n0| (QVELT |info| 3)) . #4#)
      (LETT |lv| (CONS |n| (SPADCALL |l| 2 (QREFELT $ 89))) . #4#)
      (LETT |e| (SPADCALL (QVELT |info| 0) |lp| |lv| (QREFELT $ 69)) . #4#)
      (LETT |v| (SPADCALL (QREFELT $ 53)) . #4#)
      (COND
       ((QEQCAR (QVELT |info| 5) 0)
        (LETT |v|
              (MIN |v|
                   (PROG2
                       (LETT #3# (QVELT |info| 5) . #4#)
                       (QCDR #3#)
                     (|check-union| (QEQCAR #3# 0) (|NonNegativeInteger|)
                                    #3#)))
              . #4#)))
      (LETT |RecCoeff|
            (SPADCALL
             (SPADCALL (SPADCALL |f| |n| (QREFELT $ 67)) (QREFELT $ 93)) ": "
             (QREFELT $ 94))
            . #4#)
      (LETT |RecEq|
            (SPADCALL |RecCoeff|
                      (SPADCALL (SPADCALL |e| (QREFELT $ 93))
                                (SPADCALL (|spadConstant| $ 44) (QREFELT $ 95))
                                (QREFELT $ 96))
                      (QREFELT $ 94))
            . #4#)
      (LETT |RecList|
            (PROGN
             (LETT #2# NIL . #4#)
             (SEQ (LETT |i| 0 . #4#) (LETT #1# (- |v| 1) . #4#) G190
                  (COND ((QSGREATERP |i| #1#) (GO G191)))
                  (SEQ
                   (EXIT
                    (LETT #2#
                          (CONS
                           (SPADCALL
                            (SPADCALL
                             (SPADCALL |f| (SPADCALL |i| (QREFELT $ 62))
                                       (QREFELT $ 67))
                             (QREFELT $ 93))
                            (SPADCALL
                             (SPADCALL
                              (SPADCALL (QVELT |info| 4) (+ |i| 1)
                                        (QREFELT $ 80))
                              |lp| |lv| (QREFELT $ 69))
                             (QREFELT $ 93))
                            (QREFELT $ 96))
                           #2#)
                          . #4#)))
                  (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191
                  (EXIT (NREVERSE0 #2#))))
            . #4#)
      (EXIT
       (SPADCALL (SPADCALL (CONS |RecEq| |RecList|) (QREFELT $ 97))
                 (QREFELT $ 98))))))) 

(DEFUN |RECOP;diffRec| (|l| |x| $)
  (PROG (|xF| |dummyF|)
    (RETURN
     (SEQ
      (LETT |dummyF| (SPADCALL (SPADCALL (QREFELT $ 99)) (QREFELT $ 22))
            . #1=(|RECOP;diffRec|))
      (LETT |xF| (SPADCALL |x| (QREFELT $ 22)) . #1#)
      (EXIT
       (SPADCALL (QREFELT $ 102)
                 (LIST
                  (SPADCALL (SPADCALL (QREFELT $ 11) |l| (QREFELT $ 55)) |xF|
                            |dummyF| (QREFELT $ 64))
                  |dummyF| |xF|)
                 (QREFELT $ 55))))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11| (|op| |v| |argsym| |eq| |params| |values| $)
  (PROG (#1=#:G3058 |fn| |explicit?| |s| |a| |uts| |info| |den| |num| |p|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((NULL (SPADCALL |eq| |argsym| (QREFELT $ 59)))
          (|error|
           "RECOP: The argument should not be used in the equation of the ADE")))
        (LETT |p|
              (SPADCALL |eq|
                        (SPADCALL
                         (SPADCALL |op| (SPADCALL |v| (QREFELT $ 22))
                                   (QREFELT $ 67))
                         (QREFELT $ 30))
                        (QREFELT $ 32))
              . #2=(|RECOP;makeFEq;Bo2SFLSF;11|))
        (LETT |num| (SPADCALL |p| (QREFELT $ 38)) . #2#)
        (LETT |den| (SPADCALL |p| (QREFELT $ 57)) . #2#)
        (LETT |info|
              (SPADCALL (SPADCALL '|infoser| (QREFELT $ 51)) 0 (QREFELT $ 52))
              . #2#)
        (COND
         ((|HasCategory| (QREFELT $ 6) '(|GcdDomain|))
          (COND
           ((|HasCategory| (QREFELT $ 6) (LIST '|RetractableTo| '(|Integer|)))
            (COND
             ((|HasCategory| (QREFELT $ 6)
                             (LIST '|LinearlyExplicitRingOver| '(|Integer|)))
              (COND
               ((|HasCategory| (QREFELT $ 7) '(|AlgebraicallyClosedField|))
                (COND
                 ((|HasCategory| (QREFELT $ 7)
                                 '(|TranscendentalFunctionCategory|))
                  (COND
                   ((ZEROP (SPADCALL |den| (QREFELT $ 40)))
                    (COND
                     ((EQL (SPADCALL |num| (QREFELT $ 40)) 1)
                      (COND
                       ((SPADCALL (SPADCALL |den| 0 (QREFELT $ 41))
                                  (SPADCALL |op| (QREFELT $ 103))
                                  (QREFELT $ 59))
                        (COND
                         ((SPADCALL (SPADCALL |num| 0 (QREFELT $ 41))
                                    (SPADCALL |op| (QREFELT $ 103))
                                    (QREFELT $ 59))
                          (COND
                           ((SPADCALL (SPADCALL |num| 1 (QREFELT $ 41))
                                      (SPADCALL |op| (QREFELT $ 103))
                                      (QREFELT $ 59))
                            (SEQ (LETT |explicit?| 'T . #2#)
                                 (LETT |eq|
                                       (SPADCALL
                                        (SPADCALL
                                         (SPADCALL
                                          (SPADCALL |num| 0 (QREFELT $ 41))
                                          (SPADCALL |num| 1 (QREFELT $ 41))
                                          (QREFELT $ 60))
                                         (SPADCALL |den| 0 (QREFELT $ 41))
                                         (QREFELT $ 60))
                                        (QREFELT $ 61))
                                       . #2#)
                                 (LETT |uts|
                                       (|UnivariateTaylorSeries| (QREFELT $ 7)
                                                                 |v|
                                                                 (|spadConstant|
                                                                  $ 45))
                                       . #2#)
                                 (LETT |a|
                                       (SPADCALL |eq|
                                                 (SPADCALL
                                                  (SPADCALL |v| (QREFELT $ 22))
                                                  (|spadConstant| $ 45)
                                                  (QREFELT $ 105))
                                                 (QREFELT $ 108))
                                       . #2#)
                                 (LETT |s|
                                       (SPADCALL |a|
                                                 (|compiledLookupCheck|
                                                  '|retract|
                                                  (LIST (|devaluate| |uts|)
                                                        (LIST '|Any|))
                                                  (|AnyFunctions1| |uts|)))
                                       . #2#)
                                 (EXIT
                                  (LETT |fn|
                                        (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!0|
                                              (VECTOR |uts| $ |s|))
                                        . #2#))))
                           (#3='T
                            (SEQ (LETT |explicit?| 'NIL . #2#)
                                 (EXIT
                                  (LETT |fn|
                                        (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!1|
                                              (VECTOR $ |values| |v| |op|
                                                      |eq|))
                                        . #2#))))))
                         (#3#
                          (SEQ (LETT |explicit?| 'NIL . #2#)
                               (EXIT
                                (LETT |fn|
                                      (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!2|
                                            (VECTOR $ |values| |v| |op| |eq|))
                                      . #2#))))))
                       (#3#
                        (SEQ (LETT |explicit?| 'NIL . #2#)
                             (EXIT
                              (LETT |fn|
                                    (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!3|
                                          (VECTOR $ |values| |v| |op| |eq|))
                                    . #2#))))))
                     (#3#
                      (SEQ (LETT |explicit?| 'NIL . #2#)
                           (EXIT
                            (LETT |fn|
                                  (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!4|
                                        (VECTOR $ |values| |v| |op| |eq|))
                                  . #2#))))))
                   (#3#
                    (SEQ (LETT |explicit?| 'NIL . #2#)
                         (EXIT
                          (LETT |fn|
                                (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!5|
                                      (VECTOR $ |values| |v| |op| |eq|))
                                . #2#))))))
                 (#3#
                  (SEQ (LETT |explicit?| 'NIL . #2#)
                       (EXIT
                        (LETT |fn|
                              (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!6|
                                    (VECTOR $ |values| |v| |op| |eq|))
                              . #2#))))))
               (#3#
                (SEQ (LETT |explicit?| 'NIL . #2#)
                     (EXIT
                      (LETT |fn|
                            (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!7|
                                  (VECTOR $ |values| |v| |op| |eq|))
                            . #2#))))))
             (#3#
              (SEQ (LETT |explicit?| 'NIL . #2#)
                   (EXIT
                    (LETT |fn|
                          (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!8|
                                (VECTOR $ |values| |v| |op| |eq|))
                          . #2#))))))
           (#3#
            (SEQ (LETT |explicit?| 'NIL . #2#)
                 (EXIT
                  (LETT |fn|
                        (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!9|
                              (VECTOR $ |values| |v| |op| |eq|))
                        . #2#))))))
         (#3#
          (SEQ (LETT |explicit?| 'NIL . #2#)
               (EXIT
                (LETT |fn|
                      (CONS #'|RECOP;makeFEq;Bo2SFLSF;11!10|
                            (VECTOR $ |values| |v| |op| |eq|))
                      . #2#)))))
        (|RECOP;setINFOSER| |info|
         (VECTOR |eq| |argsym| |op| |v| |params| |values| (CONS 1 "failed")
                 (CONS 0 |fn|) |explicit?|)
         $)
        (EXIT
         (PROGN
          (LETT #1#
                (SPADCALL (QREFELT $ 12)
                          (SPADCALL
                           (LIST (SPADCALL |argsym| (QREFELT $ 22))
                                 (SPADCALL |info| NIL (QREFELT $ 55)))
                           |params| (QREFELT $ 56))
                          (QREFELT $ 55))
                . #2#)
          (GO #1#)))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!10| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!9| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!8| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!7| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!6| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!5| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!4| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!3| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!2| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!1| ($$)
  (PROG (|eq| |op| |v| |values| $)
    (LETT |eq| (QREFELT $$ 4) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT |op| (QREFELT $$ 3) . #1#)
    (LETT |v| (QREFELT $$ 2) . #1#)
    (LETT |values| (QREFELT $$ 1) . #1#)
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL |eq| |op| |v|
                 (SPADCALL (SPADCALL |values| (QREFELT $ 109)) (QREFELT $ 110))
                 (QREFELT $ 113))
       (QREFELT $ 114)))))) 

(DEFUN |RECOP;makeFEq;Bo2SFLSF;11!0| ($$)
  (PROG (|s| $ |uts|)
    (LETT |s| (QREFELT $$ 2) . #1=(|RECOP;makeFEq;Bo2SFLSF;11|))
    (LETT $ (QREFELT $$ 1) . #1#)
    (LETT |uts| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL |s|
                (|compiledLookupCheck| '|coefficients|
                                       (LIST
                                        (LIST '|Stream|
                                              (|devaluate| (ELT $ 7)))
                                        '$)
                                       |uts|)))))) 

(DEFUN |RECOP;iADE| (|l| $)
  (PROG (#1=#:G3073 |g| #2=#:G3066 N #3=#:G3064 |info| |n| |arg|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |arg| (|SPADfirst| |l|) . #4=(|RECOP;iADE|))
            (LETT |n| (SPADCALL |arg| (QREFELT $ 47)) . #4#)
            (EXIT
             (COND
              ((QEQCAR |n| 0)
               (COND
                ((< (QCDR |n|) 0)
                 (PROGN
                  (LETT #1# (SPADCALL (QREFELT $ 12) |l| (QREFELT $ 55)) . #4#)
                  (GO #1#)))
                (#5='T
                 (SEQ
                  (LETT |info|
                        (|RECOP;getINFOSER|
                         (SPADCALL
                          (SPADCALL (SPADCALL |l| (QREFELT $ 76))
                                    (QREFELT $ 30))
                          (QREFELT $ 77))
                         $)
                        . #4#)
                  (COND
                   ((SPADCALL (QVELT |info| 5)
                              (+
                               (PROG1 (LETT #3# (QCDR |n|) . #4#)
                                 (|check-subtype| (>= #3# 0)
                                                  '(|NonNegativeInteger|) #3#))
                               1)
                              (QREFELT $ 78))
                    (COND
                     ((QEQCAR (QVELT |info| 7) 1)
                      (PROGN
                       (LETT #1# (SPADCALL (QREFELT $ 12) |l| (QREFELT $ 55))
                             . #4#)
                       (GO #1#)))
                     (#5#
                      (SEQ
                       (LETT N (SPADCALL (QVELT |info| 5) (QREFELT $ 79))
                             . #4#)
                       (LETT |g|
                             (PROG2
                                 (LETT #2# (QVELT |info| 7) . #4#)
                                 (QCDR #2#)
                               (|check-union| (QEQCAR #2# 0)
                                              (|Mapping|
                                               (|Stream| (QREFELT $ 7)))
                                              #2#))
                             . #4#)
                       (EXIT (QSETVELT |info| 5 (SPADCALL |g|))))))))
                  (EXIT
                   (PROGN
                    (LETT #1#
                          (SPADCALL
                           (SPADCALL (QVELT |info| 5) (+ (QCDR |n|) 1)
                                     (QREFELT $ 80))
                           (QVELT |info| 4) (SPADCALL |l| 2 (QREFELT $ 89))
                           (QREFELT $ 69))
                          . #4#)
                    (GO #1#)))))))
              (#5#
               (PROGN
                (LETT #1# (SPADCALL (QREFELT $ 12) |l| (QREFELT $ 55)) . #4#)
                (GO #1#)))))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;getEq;2F;13| (|f| $)
  (PROG (#1=#:G3081 |info| |arg| |op| |kl|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |kl| (SPADCALL |f| (QREFELT $ 49)) . #2=(|RECOP;getEq;2F;13|))
        (COND
         ((EQL (LENGTH |kl|) 1)
          (SEQ (LETT |op| (SPADCALL (|SPADfirst| |kl|) (QREFELT $ 77)) . #2#)
               (LETT |arg| (SPADCALL (|SPADfirst| |kl|) (QREFELT $ 21)) . #2#)
               (COND
                ((SPADCALL |op| '|rootOfADE| (QREFELT $ 116))
                 (SEQ
                  (LETT |info|
                        (SPADCALL
                         (SPADCALL (SPADCALL |arg| (QREFELT $ 76))
                                   (QREFELT $ 30))
                         (QREFELT $ 77))
                        . #2#)
                  (EXIT
                   (PROGN
                    (LETT #1# (QVELT (|RECOP;getINFOSER| |info| $) 0) . #2#)
                    (GO #1#))))))
               (EXIT
                (COND
                 ((SPADCALL |op| '|rootOfRec| (QREFELT $ 116))
                  (SEQ
                   (LETT |info|
                         (SPADCALL
                          (SPADCALL (SPADCALL |arg| (QREFELT $ 76))
                                    (QREFELT $ 30))
                          (QREFELT $ 77))
                         . #2#)
                   (EXIT
                    (PROGN
                     (LETT #1# (QVELT (|RECOP;getINFOREC| |info| $) 0) . #2#)
                     (GO #1#))))))))))
        (EXIT
         (|error|
          "getEq: argument should be a single rootOfADE or rootOfRec object"))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;eltable?;FB;14| (|f| $)
  (PROG (#1=#:G3096 |info| |arg| |op| |kl|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |kl| (SPADCALL |f| (QREFELT $ 49)) . #2=(|RECOP;eltable?;FB;14|))
        (COND
         ((EQL (LENGTH |kl|) 1)
          (SEQ (LETT |op| (SPADCALL (|SPADfirst| |kl|) (QREFELT $ 77)) . #2#)
               (LETT |arg| (SPADCALL (|SPADfirst| |kl|) (QREFELT $ 21)) . #2#)
               (COND
                ((SPADCALL |op| '|rootOfADE| (QREFELT $ 116))
                 (SEQ
                  (LETT |info|
                        (SPADCALL
                         (SPADCALL (SPADCALL |arg| (QREFELT $ 76))
                                   (QREFELT $ 30))
                         (QREFELT $ 77))
                        . #2#)
                  (EXIT
                   (PROGN
                    (LETT #1#
                          (COND
                           ((QEQCAR (QVELT (|RECOP;getINFOSER| |info| $) 7) 1)
                            'NIL)
                           (#3='T 'T))
                          . #2#)
                    (GO #1#))))))
               (EXIT
                (COND
                 ((SPADCALL |op| '|rootOfRec| (QREFELT $ 116))
                  (SEQ
                   (LETT |info|
                         (SPADCALL
                          (SPADCALL (SPADCALL |arg| (QREFELT $ 76))
                                    (QREFELT $ 30))
                          (QREFELT $ 77))
                         . #2#)
                   (EXIT
                    (PROGN
                     (LETT #1#
                           (COND
                            ((QEQCAR (QVELT (|RECOP;getINFOREC| |info| $) 6) 1)
                             'NIL)
                            (#3# 'T))
                           . #2#)
                     (GO #1#))))))))))
        (EXIT
         (|error|
          "eltable?: argument should be a single rootOfADE or rootOfRec object"))))
      #1# (EXIT #1#))))) 

(DEFUN |RECOP;values;Nni;15| ($) (QREFELT $ 119)) 

(DEFUN |RECOP;values;2Nni;16| (|n| $)
  (PROG (|v|)
    (RETURN
     (SEQ (LETT |v| (SPADCALL (QREFELT $ 53)) |RECOP;values;2Nni;16|)
          (SETELT $ 119 |n|) (EXIT |v|))))) 

(DEFUN |RECOP;ddADE| (|l| $)
  (PROG (|TaylorPoly| |TaylorO| |TaylorList| |i| #1=#:G3112 |v| #2=#:G3101
         |DiffEq| |TaylorCoeff| |e| |f| |n| |x| |info|)
    (RETURN
     (SEQ
      (LETT |info|
            (|RECOP;getINFOSER|
             (SPADCALL (SPADCALL (SPADCALL |l| (QREFELT $ 76)) (QREFELT $ 30))
                       (QREFELT $ 77))
             $)
            . #3=(|RECOP;ddADE|))
      (LETT |x| (SPADCALL (QVELT |info| 3) (QREFELT $ 22)) . #3#)
      (LETT |n| (|SPADfirst| |l|) . #3#) (LETT |f| (QVELT |info| 2) . #3#)
      (LETT |e| (QVELT |info| 0) . #3#)
      (LETT |TaylorCoeff|
            (SPADCALL
             (SPADCALL (SPADCALL |x| (QREFELT $ 93))
                       (SPADCALL |n| (QREFELT $ 93)) (QREFELT $ 121))
             (QREFELT $ 98))
            . #3#)
      (EXIT
       (COND
        ((QVELT |info| 8)
         (SPADCALL
          (SPADCALL |TaylorCoeff| (SPADCALL |e| (QREFELT $ 93)) (QREFELT $ 94))
          (QREFELT $ 98)))
        (#4='T
         (SEQ
          (LETT |DiffEq|
                (SPADCALL
                 (LIST |TaylorCoeff|
                       (SPADCALL (SPADCALL |f| |x| (QREFELT $ 67))
                                 (QREFELT $ 93))
                       ": "
                       (SPADCALL (SPADCALL |e| (QREFELT $ 93))
                                 (SPADCALL (|spadConstant| $ 44)
                                           (QREFELT $ 95))
                                 (QREFELT $ 96)))
                 (QREFELT $ 122))
                . #3#)
          (LETT |v| (SPADCALL (QREFELT $ 53)) . #3#)
          (COND
           ((QEQCAR (QVELT |info| 6) 0)
            (LETT |v|
                  (MIN |v|
                       (PROG2
                           (LETT #2# (QVELT |info| 6) . #3#)
                           (QCDR #2#)
                         (|check-union| (QEQCAR #2# 0) (|NonNegativeInteger|)
                                        #2#)))
                  . #3#)))
          (LETT |TaylorList|
                (PROGN
                 (LETT #1# NIL . #3#)
                 (SEQ (LETT |i| 1 . #3#) G190
                      (COND ((QSGREATERP |i| |v|) (GO G191)))
                      (SEQ
                       (EXIT
                        (COND
                         ((COND
                           ((SPADCALL
                             (SPADCALL (QVELT |info| 5) |i| (QREFELT $ 80))
                             (QREFELT $ 65))
                            'NIL)
                           (#4# 'T))
                          (LETT #1#
                                (CONS
                                 (SPADCALL
                                  (SPADCALL
                                   (SPADCALL (QVELT |info| 5) |i|
                                             (QREFELT $ 80))
                                   (SPADCALL |x| (- |i| 1) (QREFELT $ 123))
                                   (QREFELT $ 124))
                                  (QREFELT $ 93))
                                 #1#)
                                . #3#)))))
                      (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
                      (EXIT (NREVERSE0 #1#))))
                . #3#)
          (LETT |TaylorO|
                (SPADCALL "O"
                          (LIST
                           (SPADCALL (SPADCALL |x| |v| (QREFELT $ 125))
                                     (QREFELT $ 93)))
                          (QREFELT $ 126))
                . #3#)
          (LETT |TaylorPoly|
                (SPADCALL
                 (SPADCALL (SPADCALL |f| |x| (QREFELT $ 67)) (QREFELT $ 93))
                 (SPADCALL (ELT $ 127)
                           (SPADCALL |TaylorList| |TaylorO| (QREFELT $ 129))
                           (QREFELT $ 131))
                 (QREFELT $ 96))
                . #3#)
          (EXIT
           (SPADCALL (SPADCALL (LIST |DiffEq| |TaylorPoly|) (QREFELT $ 97))
                     (QREFELT $ 98))))))))))) 

(DEFUN |RECOP;diffADE| (|l| |x| $)
  (PROG (|xF| |dummyF|)
    (RETURN
     (SEQ
      (LETT |dummyF| (SPADCALL (SPADCALL (QREFELT $ 99)) (QREFELT $ 22))
            . #1=(|RECOP;diffADE|))
      (LETT |xF| (SPADCALL |x| (QREFELT $ 22)) . #1#)
      (EXIT
       (SPADCALL (QREFELT $ 102)
                 (LIST
                  (SPADCALL (SPADCALL (QREFELT $ 12) |l| (QREFELT $ 55)) |xF|
                            |dummyF| (QREFELT $ 64))
                  |dummyF| |xF|)
                 (QREFELT $ 55))))))) 

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

(DEFUN |RecurrenceOperator;| (|#1| |#2|)
  (PROG (|pv$| $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|RecurrenceOperator|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT |dv$| (LIST '|RecurrenceOperator| DV$1 DV$2) . #1#)
      (LETT $ (GETREFV 132) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|RecurrenceOperator| (LIST DV$1 DV$2)
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 11 (SPADCALL '|rootOfRec| (QREFELT $ 10)))
      (QSETREFV $ 12 (SPADCALL '|rootOfADE| (QREFELT $ 10)))
      (SPADCALL (QREFELT $ 11) '|%dummyVar| (|spadConstant| $ 13)
                (QREFELT $ 16))
      (SPADCALL (QREFELT $ 12) '|%dummyVar| (|spadConstant| $ 13)
                (QREFELT $ 16))
      (SPADCALL (QREFELT $ 11) (CONS (|function| |RECOP;irecur|) $)
                (QREFELT $ 91))
      (SPADCALL (QREFELT $ 11) '|%specialDisp|
                (CONS (|function| |RECOP;ddrec|) $) (QREFELT $ 16))
      (QSETREFV $ 100 (SPADCALL (QREFELT $ 99)))
      (QSETREFV $ 102
                (SPADCALL
                 (|SPADfirst|
                  (SPADCALL
                   (SPADCALL
                    (SPADCALL
                     (SPADCALL (SPADCALL (QREFELT $ 99)) (QREFELT $ 10))
                     (SPADCALL (QREFELT $ 100) (QREFELT $ 22)) (QREFELT $ 67))
                    (QREFELT $ 100) (QREFELT $ 101))
                   (QREFELT $ 49)))
                 (QREFELT $ 77)))
      (SPADCALL (QREFELT $ 11) '|%specialDiff|
                (CONS (|function| |RECOP;diffRec|) $) (QREFELT $ 16))
      (SPADCALL (QREFELT $ 12) (CONS (|function| |RECOP;iADE|) $)
                (QREFELT $ 91))
      (QSETREFV $ 119 4)
      (SPADCALL (QREFELT $ 12) '|%specialDisp|
                (CONS (|function| |RECOP;ddADE|) $) (QREFELT $ 16))
      (SPADCALL (QREFELT $ 12) '|%specialDiff|
                (CONS (|function| |RECOP;diffADE|) $) (QREFELT $ 16))
      $)))) 

(MAKEPROP '|RecurrenceOperator| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|Symbol|)
              (|BasicOperator|) (0 . |operator|) '|oprecur| '|opADE|
              (5 . |One|) (9 . |One|) (|None|) (13 . |setProperty|)
              (|Union| 15 '"failed") (20 . |property|) (|List| 7) (|Kernel| 7)
              (26 . |argument|) (31 . |coerce|) (|Boolean|) (36 . |freeOf?|)
              (|Mapping| 23 7) (42 . |every?|) (|Integer|) (48 . |elt|)
              (|Kernel| $) (54 . |retract|) (|Fraction| 72) (59 . |univariate|)
              (|Fraction| 37) (65 . |denominator|) (70 . |One|) (74 . =)
              (|SparseUnivariatePolynomial| 7) (80 . |numer|)
              (|NonNegativeInteger|) (85 . |degree|) (90 . |coefficient|)
              (96 . =) (102 . |coefficients|) (107 . |Zero|) (111 . |Zero|)
              (|Union| 27 '"failed") (115 . |retractIfCan|) (|List| 29)
              (120 . |kernels|) (125 . |is?|) (131 . |new|) (136 . |operator|)
              |RECOP;values;Nni;15| (|List| $) (142 . |kernel|)
              (148 . |concat|) (154 . |denom|) (159 . |one?|) (164 . |freeOf?|)
              (170 . /) (176 . -) (181 . |coerce|) (186 . -) (192 . |eval|)
              (199 . |zero?|) (204 . +) (210 . |elt|) (216 . |first|)
              (221 . |eval|) (228 . |rest|) (233 . |first|)
              (|SparseUnivariatePolynomial| $) (239 . |gcdPolynomial|)
              (|Stream| 7) |RECOP;makeRec;BoSFLSF;7| (245 . |second|)
              (250 . |operator|) (255 . |less?|)
              (261 . |numberOfComputedEntries|) (266 . |elt|) (|Mapping| 19 19)
              (|Stream| 19) (272 . |generate|) (278 . |rest|) (|Mapping| 7 19)
              (|StreamFunctions2| 19 7) (283 . |map|) (289 . |concat|)
              (295 . |rest|) (|BasicOperatorFunctions1| 7) (301 . |evaluate|)
              (|OutputForm|) (307 . |coerce|) (312 . |hconcat|)
              (318 . |coerce|) (323 . =) (329 . |commaSeparate|)
              (334 . |bracket|) (339 . |new|) '|dummyArg| (343 . D) '|opdiff|
              (349 . |name|) (|Equation| 7) (354 . |equation|) (|Any|)
              (|ExpressionToUnivariatePowerSeries| 6 7) (360 . |taylor|)
              (366 . |complete|) (371 . |entries|)
              (|UnivariateFormalPowerSeries| 7)
              (|ExpressionSolve| 6 7 111
                                 (|UnivariateFormalPowerSeries|
                                  (|SparseMultivariatePolynomialExpressions|
                                   7)))
              (376 . |seriesSolve|) (384 . |coefficients|)
              |RECOP;makeFEq;Bo2SFLSF;11| (389 . |is?|) |RECOP;getEq;2F;13|
              |RECOP;eltable?;FB;14| '|vals| |RECOP;values;2Nni;16| (395 . ^)
              (401 . |hconcat|) (406 . ^) (412 . *) (418 . ^) (424 . |prefix|)
              (430 . +) (|List| 92) (436 . |concat|) (|Mapping| 92 92 92)
              (442 . |reduce|))
           '#(|values| 448 |makeRec| 457 |makeFEq| 466 |getEq| 476 |eltable?|
              481)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 131
                                                 '(1 9 0 8 10 0 6 0 13 0 7 0 14
                                                   3 9 0 0 8 15 16 2 9 17 0 8
                                                   18 1 20 19 0 21 1 7 0 8 22 2
                                                   7 23 0 0 24 2 19 23 25 0 26
                                                   2 19 7 0 27 28 1 7 29 0 30 2
                                                   7 31 0 29 32 1 33 0 0 34 0
                                                   33 0 35 2 33 23 0 0 36 1 33
                                                   37 0 38 1 37 39 0 40 2 37 7
                                                   0 39 41 2 7 23 0 0 42 1 37
                                                   19 0 43 0 6 0 44 0 7 0 45 1
                                                   7 46 0 47 1 7 48 0 49 2 20
                                                   23 0 9 50 1 8 0 0 51 2 9 0 8
                                                   39 52 2 7 0 9 54 55 2 19 0 0
                                                   0 56 1 33 37 0 57 1 37 23 0
                                                   58 2 7 23 0 8 59 2 7 0 0 0
                                                   60 1 7 0 0 61 1 7 0 27 62 2
                                                   7 0 0 0 63 3 7 0 0 0 0 64 1
                                                   7 23 0 65 2 7 0 0 0 66 2 7 0
                                                   9 0 67 1 19 7 0 68 3 7 0 0
                                                   54 54 69 1 19 0 0 70 2 19 0
                                                   0 39 71 2 7 72 72 72 73 1 19
                                                   7 0 76 1 20 9 0 77 2 74 23 0
                                                   39 78 1 74 39 0 79 2 74 7 0
                                                   27 80 2 82 0 81 19 83 1 82 0
                                                   0 84 2 86 74 85 82 87 2 74 0
                                                   0 0 88 2 19 0 0 39 89 2 90 9
                                                   9 85 91 1 7 92 0 93 2 92 0 0
                                                   0 94 1 6 92 0 95 2 92 0 0 0
                                                   96 1 92 0 54 97 1 92 0 0 98
                                                   0 8 0 99 2 7 0 0 8 101 1 9 8
                                                   0 103 2 104 0 7 7 105 2 107
                                                   106 7 104 108 1 74 0 0 109 1
                                                   74 19 0 110 4 112 111 7 9 8
                                                   19 113 1 111 74 0 114 2 9 23
                                                   0 8 116 2 92 0 0 0 121 1 92
                                                   0 54 122 2 7 0 0 27 123 2 7
                                                   0 0 0 124 2 7 0 0 39 125 2
                                                   92 0 0 54 126 2 92 0 0 0 127
                                                   2 128 0 0 92 129 2 128 92
                                                   130 0 131 0 0 39 53 1 0 39
                                                   39 120 5 0 7 9 8 7 19 74 75
                                                   6 0 7 9 8 8 7 19 74 115 1 0
                                                   7 7 117 1 0 23 7 118)))))
           '|lookupComplete|)) 
