
(/VERSIONCHECK 2) 

(DEFUN |COMM;=;2$B;1| (|x| |y| $)
  (PROG (|yy| |xx|)
    (RETURN
     (SEQ
      (COND
       ((QEQCAR |x| 0)
        (COND
         ((QEQCAR |y| 0)
          (EXIT
           (SPADCALL (CONS 0 (QCDR |x|)) (CONS 0 (QCDR |y|))
                     (QREFELT $ 9)))))))
      (COND
       ((QEQCAR |x| 1)
        (COND
         ((QEQCAR |y| 1)
          (EXIT
           (SEQ (LETT |xx| (QCDR |x|) . #1=(|COMM;=;2$B;1|))
                (LETT |yy| (QCDR |y|) . #1#)
                (EXIT
                 (COND
                  ((SPADCALL (QCDR |xx|) (QCDR |yy|) (QREFELT $ 9))
                   (SPADCALL (QCAR |xx|) (QCAR |yy|) (QREFELT $ 9)))
                  ('T 'NIL)))))))))
      (EXIT 'NIL))))) 

(DEFUN |COMM;mkcomm;I$;2| (|i| $) (CONS 0 (SPADCALL |i| (QREFELT $ 12)))) 

(DEFUN |COMM;mkcomm;3$;3| (|x| |y| $) (CONS 1 (CONS |x| |y|))) 

(DEFUN |COMM;coerce;$Of;4| (|x| $)
  (PROG (|xx|)
    (RETURN
     (SEQ
      (COND ((QEQCAR |x| 0) (SPADCALL (QCDR |x|) (QREFELT $ 16)))
            ('T
             (SEQ (LETT |xx| (QCDR |x|) |COMM;coerce;$Of;4|)
                  (EXIT
                   (SPADCALL
                    (LIST (SPADCALL (QCAR |xx|) (QREFELT $ 17))
                          (SPADCALL (QCDR |xx|) (QREFELT $ 17)))
                    (QREFELT $ 19)))))))))) 

(DEFUN |Commutator| #1=()
  (PROG #1#
    (RETURN
     (PROG (#2=#:G679)
       (RETURN
        (COND
         ((LETT #2# (HGET |$ConstructorCache| '|Commutator|)
                . #3=(|Commutator|))
          (|CDRwithIncrement| (CDAR #2#)))
         ('T
          (UNWIND-PROTECT
              (PROG1
                  (CDDAR
                   (HPUT |$ConstructorCache| '|Commutator|
                         (LIST (CONS NIL (CONS 1 (|Commutator;|))))))
                (LETT #2# T . #3#))
            (COND ((NOT #2#) (HREM |$ConstructorCache| '|Commutator|))))))))))) 

(DEFUN |Commutator;| ()
  (PROG (|dv$| $ |pv$|)
    (RETURN
     (PROGN
      (LETT |dv$| '(|Commutator|) . #1=(|Commutator|))
      (LETT $ (GETREFV 22) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|Commutator| NIL (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 (|Record| (|:| |left| $) (|:| |right| $)))
      (QSETREFV $ 7 (|Union| (|OrdSetInts|) (QREFELT $ 6)))
      $)))) 

(MAKEPROP '|Commutator| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL 'P '|Rep| (|Boolean|) |COMM;=;2$B;1|
              (|Integer|) (|OrdSetInts|) (0 . |coerce|) |COMM;mkcomm;I$;2|
              |COMM;mkcomm;3$;3| (|OutputForm|) (5 . |coerce|)
              |COMM;coerce;$Of;4| (|List| $) (10 . |bracket|) (|String|)
              (|SingleInteger|))
           '#(~= 15 |mkcomm| 21 |latex| 32 |hash| 37 |coerce| 42 = 47) 'NIL
           (CONS (|makeByteWordVec2| 1 '(0 0 0))
                 (CONS '#(|SetCategory&| |BasicType&| NIL)
                       (CONS
                        '#((|SetCategory|) (|BasicType|) (|CoercibleTo| 15))
                        (|makeByteWordVec2| 21
                                            '(1 11 0 10 12 1 11 15 0 16 1 15 0
                                              18 19 2 0 8 0 0 1 2 0 0 0 0 14 1
                                              0 0 10 13 1 0 20 0 1 1 0 21 0 1 1
                                              0 15 0 17 2 0 8 0 0 9)))))
           '|lookupComplete|)) 

(MAKEPROP '|Commutator| 'NILADIC T) 
