
(/VERSIONCHECK 2) 

(DEFUN |FMCAT-;smaller?;2AB;1| (|p| |q| $)
  (SEQ
   (COND
    ((SPADCALL (SPADCALL |p| (QREFELT $ 9)) (SPADCALL |q| (QREFELT $ 9))
               (QREFELT $ 11))
     (COND
      ((SPADCALL (SPADCALL |p| (QREFELT $ 12)) (SPADCALL |q| (QREFELT $ 12))
                 (QREFELT $ 13))
       (SPADCALL (SPADCALL |p| (QREFELT $ 14)) (SPADCALL |q| (QREFELT $ 14))
                 (QREFELT $ 15)))
      ('T
       (SPADCALL (SPADCALL |p| (QREFELT $ 12)) (SPADCALL |q| (QREFELT $ 12))
                 (QREFELT $ 16))))))
   (EXIT
    (SPADCALL (SPADCALL |p| (QREFELT $ 9)) (SPADCALL |q| (QREFELT $ 9))
              (QREFELT $ 17))))) 

(DEFUN |FreeModuleCategory&| (|#1| |#2| |#3|)
  (PROG (|pv$| $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|FreeModuleCategory&|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT |dv$| (LIST '|FreeModuleCategory&| DV$1 DV$2 DV$3) . #1#)
      (LETT $ (GETREFV 19) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#2| '(|Comparable|))
                                          (|HasCategory| |#2|
                                                         '(|CommutativeRing|))))
                      . #1#))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (COND
       ((|testBitVector| |pv$| 1)
        (QSETREFV $ 18 (CONS (|dispatchFunction| |FMCAT-;smaller?;2AB;1|) $))))
      $)))) 

(MAKEPROP '|FreeModuleCategory&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (0 . |leadingMonomial|) (|Boolean|) (5 . =)
              (11 . |leadingCoefficient|) (16 . =) (22 . |reductum|)
              (27 . |smaller?|) (33 . |smaller?|) (39 . <) (45 . |smaller?|))
           '#(|smaller?| 51) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 18
                                                 '(1 6 8 0 9 2 8 10 0 0 11 1 6
                                                   7 0 12 2 7 10 0 0 13 1 6 0 0
                                                   14 2 6 10 0 0 15 2 7 10 0 0
                                                   16 2 8 10 0 0 17 2 0 10 0 0
                                                   18 2 0 10 0 0 18)))))
           '|lookupComplete|)) 
