
(/VERSIONCHECK 2) 

(DEFUN |PMPREDFS;suchThat;FMF;1| (|p| |f| $)
  (SPADCALL |p| (LIST |f|) (QREFELT $ 15))) 

(DEFUN |PMPREDFS;mkk| (|op| $) (SPADCALL |op| NIL (QREFELT $ 19))) 

(DEFUN |PMPREDFS;preds| (|k| $)
  (PROG (|u|)
    (RETURN
      (SEQ (LETT |u|
                 (SPADCALL (SPADCALL |k| (QREFELT $ 21)) (QREFELT $ 12)
                     (QREFELT $ 23))
                 |PMPREDFS;preds|)
           (EXIT (COND ((QEQCAR |u| 1) NIL) ('T (QCDR |u|)))))))) 

(DEFUN |PMPREDFS;st| (|k| |l| $)
  (PROG (|kk|)
    (RETURN
      (SEQ (LETT |kk|
                 (SPADCALL (SPADCALL |k| (QREFELT $ 21))
                     (QREFELT $ 24))
                 |PMPREDFS;st|)
           (SPADCALL |kk| (QREFELT $ 12)
               (SPADCALL (|PMPREDFS;preds| |k| $) |l| (QREFELT $ 26))
               (QREFELT $ 28))
           (EXIT (SPADCALL |kk| NIL (QREFELT $ 19))))))) 

(DEFUN |PMPREDFS;suchThat;FLF;5| (|p| |l| $)
  (PROG (#0=#:G1841 |f| #1=#:G1842)
    (RETURN
      (SEQ (COND
             ((QEQCAR (SPADCALL |p| (QREFELT $ 30)) 0)
              (|PMPREDFS;st| (SPADCALL |p| (QREFELT $ 32))
                  (PROGN
                    (LETT #0# NIL . #2=(|PMPREDFS;suchThat;FLF;5|))
                    (SEQ (LETT |f| NIL . #2#) (LETT #1# |l| . #2#) G190
                         (COND
                           ((OR (ATOM #1#)
                                (PROGN (LETT |f| (CAR #1#) . #2#) NIL))
                            (GO G191)))
                         (SEQ (EXIT (LETT #0#
                                     (CONS
                                      (SPADCALL |f| (QREFELT $ 35))
                                      #0#) . #2#)))
                         (LETT #1# (CDR #1#) . #2#) (GO G190) G191
                         (EXIT (NREVERSE0 #0#))))
                  $))
             ('T (|error| "suchThat must be applied to symbols only"))))))) 

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

(DEFUN |FunctionSpaceAttachPredicates;| (|#1| |#2| |#3|)
  (PROG (DV$1 DV$2 DV$3 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|FunctionSpaceAttachPredicates|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT |dv$|
              (LIST '|FunctionSpaceAttachPredicates| DV$1 DV$2 DV$3) . #0#)
        (LETT $ (GETREFV 36) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache|
            '|FunctionSpaceAttachPredicates| (LIST DV$1 DV$2 DV$3)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (QSETREFV $ 12 (SPADCALL "%pmpredicate" (QREFELT $ 11)))
        $)))) 

(MAKEPROP '|FunctionSpaceAttachPredicates| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (|String|) (|Symbol|) (0 . |coerce|)
             'PMPRED (|Mapping| (|Boolean|) 8) (|List| 13)
             |PMPREDFS;suchThat;FLF;5| |PMPREDFS;suchThat;FMF;1|
             (|BasicOperator|) (|List| $) (5 . |kernel|) (|Kernel| 7)
             (11 . |operator|) (|Union| 27 '"failed") (16 . |property|)
             (22 . |copy|) (|List| 33) (27 . |concat|) (|None|)
             (33 . |setProperty|) (|Union| 10 '"failed")
             (40 . |retractIfCan|) (|Kernel| $) (45 . |retract|)
             (|Any|) (|AnyFunctions1| 13) (50 . |coerce|))
          '#(|suchThat| 55) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 35
                                '(1 10 0 9 11 2 7 0 17 18 19 1 20 17 0
                                  21 2 17 22 0 10 23 1 17 0 0 24 2 25 0
                                  0 0 26 3 17 0 0 10 27 28 1 7 29 0 30
                                  1 7 31 0 32 1 34 33 13 35 2 0 7 7 14
                                  15 2 0 7 7 13 16)))))
          '|lookupComplete|)) 
