
(/VERSIONCHECK 2) 

(DEFUN |DIFEXT-;differentiate;SMNniS;1| (|x| |derivation| |n| $)
  (PROG (|i|)
    (RETURN
     (SEQ
      (SEQ (LETT |i| 1 . #1=(|DIFEXT-;differentiate;SMNniS;1|)) G190
           (COND ((QSGREATERP |i| |n|) (GO G191)))
           (SEQ
            (EXIT (LETT |x| (SPADCALL |x| |derivation| (QREFELT $ 9)) . #1#)))
           (LETT |i| (QSADD1 |i|) . #1#) (GO G190) G191 (EXIT NIL))
      (EXIT |x|))))) 

(DEFUN |DIFEXT-;D;SMS;2| (|x| |derivation| $)
  (SPADCALL |x| |derivation| (QREFELT $ 9))) 

(DEFUN |DIFEXT-;D;SMNniS;3| (|x| |derivation| |n| $)
  (SPADCALL |x| |derivation| |n| (QREFELT $ 13))) 

(DEFUN |DIFEXT-;differentiate;2S;4| (|x| $)
  (SPADCALL |x| (ELT $ 15) (QREFELT $ 9))) 

(DEFUN |DIFEXT-;differentiate;SSS;5| (|x| |v| $)
  (PROG ()
    (RETURN
     (SPADCALL |x| (CONS #'|DIFEXT-;differentiate;SSS;5!0| (VECTOR $ |v|))
               (QREFELT $ 9))))) 

(DEFUN |DIFEXT-;differentiate;SSS;5!0| (|s| $$)
  (PROG (|v| $)
    (LETT |v| (QREFELT $$ 1) . #1=(|DIFEXT-;differentiate;SSS;5|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |s| |v| (QREFELT $ 18)))))) 

(DEFUN |DifferentialExtension&| (|#1| |#2|)
  (PROG (|pv$| $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|DifferentialExtension&|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT |dv$| (LIST '|DifferentialExtension&| DV$1 DV$2) . #1#)
      (LETT $ (GETREFV 22) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#2|
                                                         '(|PartialDifferentialRing|
                                                           (|Symbol|)))
                                          (|HasCategory| |#2|
                                                         '(|DifferentialRing|))))
                      . #1#))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (COND
       ((|testBitVector| |pv$| 2)
        (QSETREFV $ 16
                  (CONS (|dispatchFunction| |DIFEXT-;differentiate;2S;4|) $))))
      (COND
       ((|testBitVector| |pv$| 1)
        (QSETREFV $ 19
                  (CONS (|dispatchFunction| |DIFEXT-;differentiate;SSS;5|)
                        $))))
      $)))) 

(MAKEPROP '|DifferentialExtension&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|Mapping| 7 7) (0 . |differentiate|) (|NonNegativeInteger|)
              |DIFEXT-;differentiate;SMNniS;1| |DIFEXT-;D;SMS;2|
              (6 . |differentiate|) |DIFEXT-;D;SMNniS;3| (13 . |differentiate|)
              (18 . |differentiate|) (|Symbol|) (23 . |differentiate|)
              (29 . |differentiate|) (|List| 17) (|List| 10))
           '#(|differentiate| 35 D 53) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 19
                                                 '(2 6 0 0 8 9 3 6 0 0 8 10 13
                                                   1 7 0 0 15 1 0 0 0 16 2 7 0
                                                   0 17 18 2 0 0 0 17 19 1 0 0
                                                   0 16 2 0 0 0 17 19 3 0 0 0 8
                                                   10 11 2 0 0 0 8 12 3 0 0 0 8
                                                   10 14)))))
           '|lookupComplete|)) 
