
(PUT '|BOOLEAN;test;2%;1| '|SPADreplace| '(XLAM (|a|) |a|)) 

(SDEFUN |BOOLEAN;test;2%;1| ((|a| (%)) (% (|Boolean|))) |a|) 

(SDEFUN |BOOLEAN;nt| ((|b| (%)) (% (%))) (COND (|b| 'NIL) ('T 'T))) 

(PUT '|BOOLEAN;true;%;3| '|SPADreplace| '(XLAM NIL 'T)) 

(SDEFUN |BOOLEAN;true;%;3| ((% (%))) 'T) 

(PUT '|BOOLEAN;false;%;4| '|SPADreplace| '(XLAM NIL NIL)) 

(SDEFUN |BOOLEAN;false;%;4| ((% (%))) NIL) 

(PUT '|BOOLEAN;not;2%;5| '|SPADreplace| 'NOT) 

(SDEFUN |BOOLEAN;not;2%;5| ((|b| (%)) (% (%))) (NOT |b|)) 

(PUT '|BOOLEAN;~;2%;6| '|SPADreplace| 'NOT) 

(SDEFUN |BOOLEAN;~;2%;6| ((|b| (%)) (% (%))) (NOT |b|)) 

(PUT '|BOOLEAN;and;3%;7| '|SPADreplace| 'AND) 

(SDEFUN |BOOLEAN;and;3%;7| ((|a| (%)) (|b| (%)) (% (%))) (AND |a| |b|)) 

(PUT '|BOOLEAN;/\\;3%;8| '|SPADreplace| 'AND) 

(SDEFUN |BOOLEAN;/\\;3%;8| ((|a| (%)) (|b| (%)) (% (%))) (AND |a| |b|)) 

(PUT '|BOOLEAN;or;3%;9| '|SPADreplace| 'OR) 

(SDEFUN |BOOLEAN;or;3%;9| ((|a| (%)) (|b| (%)) (% (%))) (OR |a| |b|)) 

(PUT '|BOOLEAN;\\/;3%;10| '|SPADreplace| 'OR) 

(SDEFUN |BOOLEAN;\\/;3%;10| ((|a| (%)) (|b| (%)) (% (%))) (OR |a| |b|)) 

(SDEFUN |BOOLEAN;xor;3%;11| ((|a| (%)) (|b| (%)) (% (%)))
        (COND (|a| (|BOOLEAN;nt| |b| %)) ('T |b|))) 

(SDEFUN |BOOLEAN;nor;3%;12| ((|a| (%)) (|b| (%)) (% (%)))
        (COND (|a| 'NIL) ('T (|BOOLEAN;nt| |b| %)))) 

(SDEFUN |BOOLEAN;nand;3%;13| ((|a| (%)) (|b| (%)) (% (%)))
        (COND (|a| (|BOOLEAN;nt| |b| %)) ('T 'T))) 

(PUT '|BOOLEAN;=;3%;14| '|SPADreplace| '|BooleanEquality|) 

(SDEFUN |BOOLEAN;=;3%;14| ((|a| (%)) (|b| (%)) (% (|Boolean|)))
        (|BooleanEquality| |a| |b|)) 

(SDEFUN |BOOLEAN;implies;3%;15| ((|a| (%)) (|b| (%)) (% (%)))
        (COND (|a| |b|) ('T 'T))) 

(SDEFUN |BOOLEAN;<;3%;16| ((|a| (%)) (|b| (%)) (% (|Boolean|)))
        (COND (|b| (NULL |a|)) ('T NIL))) 

(PUT '|BOOLEAN;size;Nni;17| '|SPADreplace| '(XLAM NIL 2)) 

(SDEFUN |BOOLEAN;size;Nni;17| ((% (|NonNegativeInteger|))) 2) 

(SDEFUN |BOOLEAN;index;Pi%;18| ((|i| (|PositiveInteger|)) (% (%)))
        (COND ((EVENP |i|) 'NIL) ('T 'T))) 

(SDEFUN |BOOLEAN;lookup;%Pi;19| ((|a| (%)) (% (|PositiveInteger|)))
        (COND (|a| 1) ('T 2))) 

(SDEFUN |BOOLEAN;random;%;20| ((% (%)))
        (COND ((EVENP (RANDOM 2)) 'NIL) ('T 'T))) 

(SDEFUN |BOOLEAN;convert;%If;21| ((|x| (%)) (% (|InputForm|)))
        (COND (|x| (SPADCALL '|true| (QREFELT % 30)))
              ('T (SPADCALL '|false| (QREFELT % 30))))) 

(SDEFUN |BOOLEAN;coerce;%Of;22| ((|x| (%)) (% (|OutputForm|)))
        (COND (|x| (SPADCALL "true" (QREFELT % 34)))
              ('T (SPADCALL "false" (QREFELT % 34))))) 

(DECLAIM (NOTINLINE |Boolean;|)) 

(DEFUN |Boolean| ()
  (SPROG NIL
         (PROG (#1=#:G284)
           (RETURN
            (COND
             ((LETT #1# (HGET |$ConstructorCache| '|Boolean|))
              (|CDRwithIncrement| (CDAR #1#)))
             ('T
              (UNWIND-PROTECT
                  (PROG1
                      (CDDAR
                       (HPUT |$ConstructorCache| '|Boolean|
                             (LIST (CONS NIL (CONS 1 (|Boolean;|))))))
                    (LETT #1# T))
                (COND ((NOT #1#) (HREM |$ConstructorCache| '|Boolean|)))))))))) 

(DEFUN |Boolean;| ()
  (SPROG ((|dv$| NIL) (% NIL) (|pv$| NIL))
         (PROGN
          (LETT |dv$| '(|Boolean|))
          (LETT % (GETREFV 39))
          (QSETREFV % 0 |dv$|)
          (QSETREFV % 3 (LETT |pv$| (|buildPredVector| 0 0 NIL)))
          (|haddProp| |$ConstructorCache| '|Boolean| NIL (CONS 1 %))
          (|stuffDomainSlots| %)
          (SETF |pv$| (QREFELT % 3))
          %))) 

(MAKEPROP '|Boolean| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|Boolean|) |BOOLEAN;test;2%;1|
              (CONS IDENTITY
                    (FUNCALL (|dispatchFunction| |BOOLEAN;true;%;3|) %))
              (CONS IDENTITY
                    (FUNCALL (|dispatchFunction| |BOOLEAN;false;%;4|) %))
              |BOOLEAN;not;2%;5| |BOOLEAN;~;2%;6| |BOOLEAN;and;3%;7|
              |BOOLEAN;/\\;3%;8| |BOOLEAN;or;3%;9| |BOOLEAN;\\/;3%;10|
              |BOOLEAN;xor;3%;11| |BOOLEAN;nor;3%;12| |BOOLEAN;nand;3%;13|
              |BOOLEAN;=;3%;14| |BOOLEAN;implies;3%;15| |BOOLEAN;<;3%;16|
              (|NonNegativeInteger|) |BOOLEAN;size;Nni;17| (|PositiveInteger|)
              |BOOLEAN;index;Pi%;18| |BOOLEAN;lookup;%Pi;19|
              |BOOLEAN;random;%;20| (|Symbol|) (|InputForm|) (0 . |convert|)
              |BOOLEAN;convert;%If;21| (|String|) (|OutputForm|)
              (5 . |message|) |BOOLEAN;coerce;%Of;22| (|List| %)
              (|SingleInteger|) (|HashState|))
           '#(~= 10 ~ 16 |xor| 21 |true| 27 |test| 31 |smaller?| 36 |size| 42
              |random| 46 |or| 50 |not| 56 |nor| 61 |nand| 67 |min| 73 |max| 79
              |lookup| 85 |latex| 90 |index| 95 |implies| 100 |hashUpdate!| 106
              |hash| 112 |false| 117 |enumerate| 121 |convert| 125 |coerce| 130
              |and| 135 |_\|_| 141 |\\/| 145 T$ 151 >= 155 > 161 = 167 <= 173 <
              179 |/\\| 185)
           'NIL
           (CONS (|makeByteWordVec2| 1 '(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
                 (CONS
                  '#(|Logic&| NIL NIL NIL |Finite&| NIL NIL NIL |OrderedSet&|
                     NIL NIL NIL |SetCategory&| |Hashable&| NIL |PartialOrder&|
                     |BasicType&| NIL)
                  (CONS
                   '#((|Logic|) (|BoundedDistributiveLattice|)
                      (|BoundedLattice|) (|DistributiveLattice|) (|Finite|)
                      (|BoundedMeetSemilattice|) (|BoundedJoinSemilattice|)
                      (|Lattice|) (|OrderedSet|) (|MeetSemilattice|)
                      (|JoinSemilattice|) (|Comparable|) (|SetCategory|)
                      (|Hashable|) (|CoercibleTo| 33) (|PartialOrder|)
                      (|BasicType|) (|ConvertibleTo| 29))
                   (|makeByteWordVec2| 38
                                       '(1 29 0 28 30 1 33 0 32 34 2 0 6 0 0 1
                                         1 0 0 0 11 2 0 0 0 0 16 0 0 0 8 1 0 6
                                         0 7 2 0 6 0 0 1 0 0 22 23 0 0 0 27 2 0
                                         0 0 0 14 1 0 0 0 10 2 0 0 0 0 17 2 0 0
                                         0 0 18 2 0 0 0 0 1 2 0 0 0 0 1 1 0 24
                                         0 26 1 0 32 0 1 1 0 0 24 25 2 0 0 0 0
                                         20 2 0 38 38 0 1 1 0 37 0 1 0 0 0 9 0
                                         0 36 1 1 0 29 0 31 1 0 33 0 35 2 0 0 0
                                         0 12 0 0 0 1 2 0 0 0 0 15 0 0 0 1 2 0
                                         6 0 0 1 2 0 6 0 0 1 2 0 6 0 0 19 2 0 6
                                         0 0 1 2 0 6 0 0 21 2 0 0 0 0 13)))))
           '|lookupComplete|)) 
