
(/VERSIONCHECK 2) 

(DEFUN |COMM;=;2$B;1| (|x| |y| $)
  (PROG (|xx| |yy|)
    (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|)
                                  . #0=(|COMM;=;2$B;1|))
                            (LETT |yy| (QCDR |y|) . #0#)
                            (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| ()
  (PROG ()
    (RETURN
      (PROG (#0=#:G1833)
        (RETURN
          (COND
            ((LETT #0# (HGET |$ConstructorCache| '|Commutator|)
                   . #1=(|Commutator|))
             (|CDRwithIncrement| (CDAR #0#)))
            ('T
             (UNWIND-PROTECT
               (PROG1 (CDDAR (HPUT |$ConstructorCache| '|Commutator|
                                   (LIST
                                    (CONS NIL (CONS 1 (|Commutator;|))))))
                 (LETT #0# T . #1#))
               (COND
                 ((NOT #0#) (HREM |$ConstructorCache| '|Commutator|))))))))))) 

(DEFUN |Commutator;| ()
  (PROG (|dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT |dv$| '(|Commutator|) . #0=(|Commutator|))
        (LETT $ (GETREFV 22) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|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) 
