# HallBasisΒΆ

Author : Larry Lambe Date Created : August 1988 Related Constructors: OrderedSetInts, Commutator, FreeNilpotentLie AMS Classification: Primary 17B05, 17B30; Secondary 17A50 Keywords: free Lie algebra, Hall basis, basic commutators Description : Generate a basis for the free Lie algebra on `n` generators over a ring `R` with identity up to basic commutators of length `c` using the algorithm of `P`. Hall as given in Serre`'s` book Lie Groups `--` Lie Algebras

basis: (NonNegativeInteger, NonNegativeInteger) -> Vector List Integer

`basis(numberOfGens, maximalWeight)` generates a vector of elements of the form [left, weight, right] which represents a `P`. Hall basis element for the free lie algebra on `numberOfGens` generators. We only generate those basis elements of weight less than or equal to maximalWeight

inHallBasis?: (Integer, Integer, Integer, Integer) -> Boolean

`inHallBasis?(numberOfGens, leftCandidate, rightCandidate, left)` tests to see if a new element should be added to the `P`. Hall basis being constructed. The list `[leftCandidate, wt, rightCandidate]` is included in the basis if in the unique factorization of `rightCandidate`, we have left factor leftOfRight, and leftOfRight `<=` `leftCandidate`

lfunc: (Integer, Integer) -> Integer

`lfunc(d, n)` computes the rank of the `n`th factor in the lower central series of the free `d`-generated free Lie algebra; This rank is `d` if `n` = 1 and binom(`d`, 2) if `n` = 2