
(/VERSIONCHECK 2) 

(DEFUN |PMQFCAT;patternMatch;QP2Pmr;1| (|x| |p| |l| $)
  (PROG (|r| #0=#:G1821 |u| #1=#:G1832 |ur|)
    (RETURN
      (SEQ (COND
             ((SPADCALL |p| (QREFELT $ 11))
              (SPADCALL |p| |x| |l| (QREFELT $ 13)))
             ((QEQCAR (LETT |r| (SPADCALL |x| (QREFELT $ 15))
                            . #2=(|PMQFCAT;patternMatch;QP2Pmr;1|))
                      0)
              (SPADCALL
                  (PROG2 (LETT #0# |r| . #2#) (QCDR #0#)
                    (|check-union| (QEQCAR #0# 0) (QREFELT $ 7) #0#))
                  |p| |l| (QREFELT $ 17)))
             ((QEQCAR (LETT |u| (SPADCALL |p| (QREFELT $ 20)) . #2#) 0)
              (SEQ (LETT |ur|
                         (PROG2 (LETT #1# |u| . #2#) (QCDR #1#)
                           (|check-union| (QEQCAR #1# 0)
                               (|Record|
                                   (|:| |num|
                                    (|Pattern| (QREFELT $ 6)))
                                   (|:| |den|
                                    (|Pattern| (QREFELT $ 6))))
                               #1#)) . #2#)
                   (EXIT (COND
                           ((SPADCALL
                                (LETT |l|
                                      (SPADCALL
                                       (SPADCALL |x| (QREFELT $ 21))
                                       (QCAR |ur|) |l| (QREFELT $ 17)) . #2#)
                                (QREFELT $ 22))
                            |l|)
                           ('T
                            (SPADCALL (SPADCALL |x| (QREFELT $ 23))
                                (QCDR |ur|) |l| (QREFELT $ 17)))))))
             ('T (SPADCALL (QREFELT $ 24)))))))) 

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

(DEFUN |PatternMatchQuotientFieldCategory;| (|#1| |#2| |#3|)
  (PROG (DV$1 DV$2 DV$3 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|PatternMatchQuotientFieldCategory|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT |dv$|
              (LIST '|PatternMatchQuotientFieldCategory| DV$1 DV$2
                    DV$3) . #0#)
        (LETT $ (GETREFV 26) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache|
            '|PatternMatchQuotientFieldCategory| (LIST DV$1 DV$2 DV$3)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        $)))) 

(MAKEPROP '|PatternMatchQuotientFieldCategory| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (|Boolean|) (|Pattern| 6) (0 . |generic?|)
             (|PatternMatchResult| 6 8) (5 . |addMatch|)
             (|Union| 7 '"failed") (12 . |retractIfCan|)
             (|PatternMatchPushDown| 6 7 8) (17 . |patternMatch|)
             (|Record| (|:| |num| $) (|:| |den| $))
             (|Union| 18 '"failed") (24 . |isQuotient|) (29 . |numer|)
             (34 . |failed?|) (39 . |denom|) (44 . |failed|)
             |PMQFCAT;patternMatch;QP2Pmr;1|)
          '#(|patternMatch| 48) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 25
                                '(1 10 9 0 11 3 12 0 10 8 0 13 1 8 14 0
                                  15 3 16 12 7 10 12 17 1 10 19 0 20 1
                                  8 7 0 21 1 12 9 0 22 1 8 7 0 23 0 12
                                  0 24 3 0 12 8 10 12 25)))))
          '|lookupComplete|)) 
