
(/VERSIONCHECK 2) 

(DEFUN |FNLA;dimension;Nni;1| ($) (QVSIZE (QREFELT $ 14))) 

(DEFUN |FNLA;have| (|i| |j| $)
  (PROG (|hi| |lo| |mid| |wt|)
    (RETURN
     (SEQ
      (LETT |wt|
            (+
             (SPADCALL (SPADCALL (QREFELT $ 14) |i| (QREFELT $ 18)) 2
                       (QREFELT $ 19))
             (SPADCALL (SPADCALL (QREFELT $ 14) |j| (QREFELT $ 18)) 2
                       (QREFELT $ 19)))
            . #1=(|FNLA;have|))
      (EXIT
       (COND ((< (QREFELT $ 7) |wt|) (|spadConstant| $ 20))
             ('T
              (SEQ (LETT |lo| 1 . #1#)
                   (LETT |hi| (SPADCALL (QREFELT $ 15)) . #1#)
                   (SEQ G190 (COND ((NULL (< 1 (- |hi| |lo|))) #2=(GO G191)))
                        (SEQ (LETT |mid| (QUOTIENT2 (+ |hi| |lo|) 2) . #1#)
                             (EXIT
                              (COND
                               ((<
                                 (SPADCALL
                                  (SPADCALL (QREFELT $ 14) |mid|
                                            (QREFELT $ 18))
                                  2 (QREFELT $ 19))
                                 |wt|)
                                (LETT |lo| |mid| . #1#))
                               ('T (LETT |hi| |mid| . #1#)))))
                        NIL #3=(GO G190) G191 (EXIT NIL))
                   (SEQ G190
                        (COND
                         ((NULL
                           (<
                            (SPADCALL
                             (SPADCALL (QREFELT $ 14) |hi| (QREFELT $ 18)) 1
                             (QREFELT $ 19))
                            |i|))
                          #2#))
                        (SEQ (EXIT (LETT |hi| (+ |hi| 1) . #1#))) NIL #3# G191
                        (EXIT NIL))
                   (SEQ G190
                        (COND
                         ((NULL
                           (<
                            (SPADCALL
                             (SPADCALL (QREFELT $ 14) |hi| (QREFELT $ 18)) 3
                             (QREFELT $ 19))
                            |j|))
                          #2#))
                        (SEQ (EXIT (LETT |hi| (+ |hi| 1) . #1#))) NIL #3# G191
                        (EXIT NIL))
                   (EXIT
                    (SPADCALL (|spadConstant| $ 23)
                              (SPADCALL |hi| (QREFELT $ 22))
                              (QREFELT $ 24))))))))))) 

(DEFUN |FNLA;generator;Nni$;3| (|i| $)
  (COND ((< (SPADCALL (QREFELT $ 15)) |i|) (|spadConstant| $ 25))
        ('T
         (SPADCALL (|spadConstant| $ 23) (SPADCALL |i| (QREFELT $ 22))
                   (QREFELT $ 24))))) 

(DEFUN |FNLA;putIn| (|i| $)
  (SPADCALL (|spadConstant| $ 23) (SPADCALL |i| (QREFELT $ 22)) (QREFELT $ 24))) 

(DEFUN |FNLA;brkt| (|k| |f| $)
  (PROG (|dg|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |f| (|spadConstant| $ 20) (QREFELT $ 28))
        (|spadConstant| $ 20))
       (#1='T
        (SEQ
         (LETT |dg| (SPADCALL (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 30))
               |FNLA;brkt|)
         (EXIT
          (COND
           ((SPADCALL (SPADCALL |f| (QREFELT $ 31)) (|spadConstant| $ 20)
                      (QREFELT $ 28))
            (COND ((EQL |k| |dg|) (|spadConstant| $ 20))
                  ((< |dg| |k|)
                   (SPADCALL
                    (SPADCALL (SPADCALL |f| (QREFELT $ 32))
                              (|FNLA;brkt| |dg| (|FNLA;putIn| |k| $) $)
                              (QREFELT $ 33))
                    (QREFELT $ 34)))
                  (#1#
                   (COND
                    ((SPADCALL (QREFELT $ 6) |k| |dg|
                               (SPADCALL
                                (SPADCALL (QREFELT $ 14) |dg| (QREFELT $ 18)) 1
                                (QREFELT $ 19))
                               (QREFELT $ 35))
                     (SPADCALL (SPADCALL |f| (QREFELT $ 32))
                               (|FNLA;have| |k| |dg| $) (QREFELT $ 33)))
                    (#1#
                     (SPADCALL (SPADCALL |f| (QREFELT $ 32))
                               (SPADCALL
                                (|FNLA;brkt|
                                 (SPADCALL
                                  (SPADCALL (QREFELT $ 14) |dg| (QREFELT $ 18))
                                  1 (QREFELT $ 19))
                                 (|FNLA;brkt| |k|
                                  (|FNLA;putIn|
                                   (SPADCALL
                                    (SPADCALL (QREFELT $ 14) |dg|
                                              (QREFELT $ 18))
                                    3 (QREFELT $ 19))
                                   $)
                                  $)
                                 $)
                                (|FNLA;brkt|
                                 (SPADCALL
                                  (SPADCALL (QREFELT $ 14) |dg| (QREFELT $ 18))
                                  3 (QREFELT $ 19))
                                 (|FNLA;brkt| |k|
                                  (|FNLA;putIn|
                                   (SPADCALL
                                    (SPADCALL (QREFELT $ 14) |dg|
                                              (QREFELT $ 18))
                                    1 (QREFELT $ 19))
                                   $)
                                  $)
                                 $)
                                (QREFELT $ 36))
                               (QREFELT $ 33)))))))
           (#1#
            (SPADCALL
             (|FNLA;brkt| |k|
              (SPADCALL (SPADCALL |f| (QREFELT $ 32))
                        (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 24))
              $)
             (|FNLA;brkt| |k| (SPADCALL |f| (QREFELT $ 31)) $)
             (QREFELT $ 37)))))))))))) 

(DEFUN |FNLA;*;3$;6| (|f| |g| $)
  (COND
   ((SPADCALL (SPADCALL |f| (QREFELT $ 31)) (|spadConstant| $ 20)
              (QREFELT $ 28))
    (SPADCALL (SPADCALL |f| (QREFELT $ 32))
              (|FNLA;brkt|
               (SPADCALL (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 30)) |g| $)
              (QREFELT $ 33)))
   ('T
    (SPADCALL
     (SPADCALL
      (SPADCALL (SPADCALL |f| (QREFELT $ 32)) (SPADCALL |f| (QREFELT $ 29))
                (QREFELT $ 24))
      |g| (QREFELT $ 38))
     (SPADCALL (SPADCALL |f| (QREFELT $ 31)) |g| (QREFELT $ 38))
     (QREFELT $ 37))))) 

(DEFUN |FNLA;Fac| (|m| $)
  (COND
   ((EQL
     (SPADCALL (SPADCALL (QREFELT $ 14) |m| (QREFELT $ 18)) 1 (QREFELT $ 19))
     0)
    (SPADCALL |m| (QREFELT $ 40)))
   ('T
    (SPADCALL
     (|FNLA;Fac|
      (SPADCALL (SPADCALL (QREFELT $ 14) |m| (QREFELT $ 18)) 1 (QREFELT $ 19))
      $)
     (|FNLA;Fac|
      (SPADCALL (SPADCALL (QREFELT $ 14) |m| (QREFELT $ 18)) 3 (QREFELT $ 19))
      $)
     (QREFELT $ 41))))) 

(DEFUN |FNLA;shallowE| (|r| |s| $)
  (PROG (|k|)
    (RETURN
     (SEQ (LETT |k| (SPADCALL |s| (QREFELT $ 30)) |FNLA;shallowE|)
          (EXIT
           (COND
            ((SPADCALL |r| (|spadConstant| $ 23) (QREFELT $ 42))
             (COND
              ((< (QREFELT $ 6) |k|)
               (SPADCALL
                (SPADCALL
                 (SPADCALL
                  (SPADCALL (SPADCALL (QREFELT $ 14) |k| (QREFELT $ 18)) 1
                            (QREFELT $ 19))
                  (QREFELT $ 40))
                 (SPADCALL
                  (SPADCALL (SPADCALL (QREFELT $ 14) |k| (QREFELT $ 18)) 3
                            (QREFELT $ 19))
                  (QREFELT $ 40))
                 (QREFELT $ 41))
                (QREFELT $ 44)))
              (#1='T (SPADCALL |s| (QREFELT $ 45)))))
            ((< (QREFELT $ 6) |k|)
             (SPADCALL (SPADCALL |r| (QREFELT $ 46))
                       (SPADCALL
                        (SPADCALL
                         (SPADCALL
                          (SPADCALL
                           (SPADCALL (QREFELT $ 14) |k| (QREFELT $ 18)) 1
                           (QREFELT $ 19))
                          (QREFELT $ 40))
                         (SPADCALL
                          (SPADCALL
                           (SPADCALL (QREFELT $ 14) |k| (QREFELT $ 18)) 3
                           (QREFELT $ 19))
                          (QREFELT $ 40))
                         (QREFELT $ 41))
                        (QREFELT $ 44))
                       (QREFELT $ 47)))
            (#1#
             (SPADCALL (SPADCALL |r| (QREFELT $ 46))
                       (SPADCALL |s| (QREFELT $ 45)) (QREFELT $ 47))))))))) 

(DEFUN |FNLA;shallowExpand;$Of;9| (|f| $)
  (COND
   ((SPADCALL |f| (|spadConstant| $ 20) (QREFELT $ 28))
    (SPADCALL 0 (QREFELT $ 49)))
   ((SPADCALL (SPADCALL |f| (QREFELT $ 31)) (|spadConstant| $ 20)
              (QREFELT $ 28))
    (|FNLA;shallowE| (SPADCALL |f| (QREFELT $ 32))
     (SPADCALL |f| (QREFELT $ 29)) $))
   ('T
    (SPADCALL
     (|FNLA;shallowE| (SPADCALL |f| (QREFELT $ 32))
      (SPADCALL |f| (QREFELT $ 29)) $)
     (SPADCALL (SPADCALL |f| (QREFELT $ 31)) (QREFELT $ 50)) (QREFELT $ 51))))) 

(DEFUN |FNLA;deepExpand;$Of;10| (|f| $)
  (COND
   ((SPADCALL |f| (|spadConstant| $ 20) (QREFELT $ 28))
    (SPADCALL 0 (QREFELT $ 49)))
   ((SPADCALL (SPADCALL |f| (QREFELT $ 31)) (|spadConstant| $ 20)
              (QREFELT $ 28))
    (COND
     ((SPADCALL (SPADCALL |f| (QREFELT $ 32)) (|spadConstant| $ 23)
                (QREFELT $ 42))
      (SPADCALL
       (|FNLA;Fac| (SPADCALL (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 30)) $)
       (QREFELT $ 44)))
     (#1='T
      (SPADCALL (SPADCALL (SPADCALL |f| (QREFELT $ 32)) (QREFELT $ 46))
                (SPADCALL
                 (|FNLA;Fac|
                  (SPADCALL (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 30)) $)
                 (QREFELT $ 44))
                (QREFELT $ 47)))))
   ((SPADCALL (SPADCALL |f| (QREFELT $ 32)) (|spadConstant| $ 23)
              (QREFELT $ 42))
    (SPADCALL
     (SPADCALL
      (|FNLA;Fac| (SPADCALL (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 30)) $)
      (QREFELT $ 44))
     (SPADCALL (SPADCALL |f| (QREFELT $ 31)) (QREFELT $ 52)) (QREFELT $ 51)))
   (#1#
    (SPADCALL
     (SPADCALL (SPADCALL (SPADCALL |f| (QREFELT $ 32)) (QREFELT $ 46))
               (SPADCALL
                (|FNLA;Fac|
                 (SPADCALL (SPADCALL |f| (QREFELT $ 29)) (QREFELT $ 30)) $)
                (QREFELT $ 44))
               (QREFELT $ 47))
     (SPADCALL (SPADCALL |f| (QREFELT $ 31)) (QREFELT $ 52)) (QREFELT $ 51))))) 

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

(DEFUN |FreeNilpotentLie;| (|#1| |#2| |#3|)
  (PROG (|pv$| $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|FreeNilpotentLie|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT |dv$| (LIST '|FreeNilpotentLie| DV$1 DV$2 DV$3) . #1#)
      (LETT $ (GETREFV 57) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|FreeNilpotentLie| (LIST DV$1 DV$2 DV$3)
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (QSETREFV $ 9 (|FreeModule| |#3| (|OrdSetInts|)))
      (QSETREFV $ 14 (SPADCALL |#1| |#2| (QREFELT $ 13)))
      $)))) 

(MAKEPROP '|FreeNilpotentLie| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL (|FreeModule| 8 21) (|local| |#1|)
              (|local| |#2|) (|local| |#3|) '|Rep| (|Vector| 16)
              (|NonNegativeInteger|) (|HallBasis|) (0 . |generate|) '|coms|
              |FNLA;dimension;Nni;1| (|List| 17) (|Integer|) (6 . |elt|)
              (12 . |elt|) (18 . |Zero|) (|OrdSetInts|) (22 . |coerce|)
              (27 . |One|) (31 . |monomial|) (37 . |Zero|)
              |FNLA;generator;Nni$;3| (|Boolean|) (41 . =)
              (47 . |leadingSupport|) (52 . |value|) (57 . |reductum|)
              (62 . |leadingCoefficient|) (67 . *) (73 . -)
              (78 . |inHallBasis?|) (86 . -) (92 . +) |FNLA;*;3$;6|
              (|Commutator|) (98 . |mkcomm|) (103 . |mkcomm|) (109 . =)
              (|OutputForm|) (115 . |coerce|) (120 . |coerce|) (125 . |coerce|)
              (130 . *) (136 . |Zero|) (140 . |coerce|)
              |FNLA;shallowExpand;$Of;9| (145 . +) |FNLA;deepExpand;$Of;10|
              (|PositiveInteger|) (|Union| $ '"failed") (|String|)
              (|SingleInteger|))
           '#(~= 151 |zero?| 157 |subtractIfCan| 162 |shallowExpand| 168
              |sample| 173 |rightPower| 177 |plenaryPower| 183 |leftPower| 189
              |latex| 195 |hash| 200 |generator| 205 |dimension| 210
              |deepExpand| 214 |commutator| 219 |coerce| 225 |associator| 230
              |antiCommutator| 237 ^ 243 |Zero| 249 = 253 - 259 + 270 * 276)
           'NIL
           (CONS (|makeByteWordVec2| 1 '(0 0 0 0 0 0 0 0 0 0 0 0 0 0))
                 (CONS
                  '#(|NonAssociativeAlgebra&| |Module&| NIL
                     |NonAssociativeRng&| NIL NIL |AbelianGroup&| NIL
                     |AbelianMonoid&| |AbelianSemiGroup&| |Monad&|
                     |SetCategory&| |BasicType&| NIL)
                  (CONS
                   '#((|NonAssociativeAlgebra| 8) (|Module| 8) (|BiModule| 8 8)
                      (|NonAssociativeRng|) (|RightModule| 8) (|LeftModule| 8)
                      (|AbelianGroup|) (|CancellationAbelianMonoid|)
                      (|AbelianMonoid|) (|AbelianSemiGroup|) (|Monad|)
                      (|SetCategory|) (|BasicType|) (|CoercibleTo| 43))
                   (|makeByteWordVec2| 56
                                       '(2 12 10 11 11 13 2 10 16 0 17 18 2 16
                                         17 0 17 19 0 0 0 20 1 21 0 17 22 0 8 0
                                         23 2 5 0 8 21 24 0 9 0 25 2 0 27 0 0
                                         28 1 9 21 0 29 1 21 17 0 30 1 9 0 0 31
                                         1 9 8 0 32 2 0 0 8 0 33 1 0 0 0 34 4
                                         12 27 17 17 17 17 35 2 0 0 0 0 36 2 0
                                         0 0 0 37 1 39 0 17 40 2 39 0 0 0 41 2
                                         8 27 0 0 42 1 39 43 0 44 1 21 43 0 45
                                         1 8 43 0 46 2 43 0 0 0 47 0 8 0 48 1
                                         11 43 0 49 2 43 0 0 0 51 2 0 27 0 0 1
                                         1 0 27 0 1 2 0 54 0 0 1 1 0 43 0 50 0
                                         0 0 1 2 0 0 0 53 1 2 0 0 0 53 1 2 0 0
                                         0 53 1 1 0 55 0 1 1 0 56 0 1 1 0 0 11
                                         26 0 0 11 15 1 0 43 0 52 2 0 0 0 0 1 1
                                         0 43 0 1 3 0 0 0 0 0 1 2 0 0 0 0 1 2 0
                                         0 0 53 1 0 0 0 20 2 0 27 0 0 28 1 0 0
                                         0 34 2 0 0 0 0 36 2 0 0 0 0 37 2 0 0 0
                                         8 1 2 0 0 8 0 33 2 0 0 0 0 38 2 0 0 17
                                         0 1 2 0 0 11 0 1 2 0 0 53 0 1)))))
           '|lookupComplete|)) 
