Free Algebras
Let X be a finite set, and F a field. The free algebra A on X over F can be regarded as the semigroup ring of the free monoid on X over F. Addition and multiplication of elements are performed by dealing with sums of words in abstract generators, with coefficients in F.
Free algebras and also their subalgebras in GAP are always unital, that is, for an element a in a subalgebra A of a free algebra always the element a^0 lies in A (see Algebras and Unital Algebras). Thus the free algebra on the empty set over a field F is defined to consist of all elements f e where f is in F, and e is the multiplicative neutral element, corresponding to the empty word.
Free algebras are useful when dealing with other algebras, like matrix
algebras, since they allow to handle expressions in terms of the generators.
This is just a generalization of handling words in abstract generators and
concrete group elements in parallel, as is done for example in MappedWord
(see MappedWord) or functions that construct images and preimages under
homomorphisms. This mechanism is also provided for the records representing
matrices in the MeatAxe share library (see chapter The MeatAxe).
Finitely Presented Algebras
A finitely presented algebra is defined as quotient A / I of a free algebra A by a two-sided ideal I in A that is generated by a finite set S of elements in F.
Thus computations with finitely presented algebras are similar to those with finitely presented groups. For example, in general it is impossible to decide whether two elements of the free algebra A are equal modulo I.
For finitely presented groups a permutation representation on the cosets of a subgroup of finite index can be computed by the Todd-Coxeter coset enumeration method. An analogue of this method for finitely presented algebras is Steve Linton's VE method that tries to compute a matrix representation of the action on a quotient of a free module of the algebra. This method is available in GAP as a share library (see chapter Vector Enumeration, and the references there), and this makes finitely presented algebra in GAP more than an object one can only use for the obvious arithmetics with elements of free algebras.
GAP only handles the data structures, all the work in done by
the standalone program. Thus all functions for finitely presented algebras,
like Size
, delegate the work to the VE program.
Note that (contrary to the situation in finitely presented groups, and
several places in VE) relators are meant to be equal to zero, not to
the identity. Two examples for this. If x^2 - a.one
is a relator in
the presentation of the algebra a
, with x
a generator, then x
is an
involution. If x^2
is a relator then x
is nilpotent. If the generator
x
occurs in relators of the form x * v - a.one
and w * x - a.one
,
for v
and w
elements of the free algebra, then x
is known to be
invertible.
The VE package is loaded automatically as soon as it is needed. You can also load it explicitly using
gap> RequirePackage( "ve" );
Elements of Finitely Presented Algebras
The elements of finitely presented algebras in GAP are records that
store lists of coefficients and of words in abstract generators.
Note that the elements of the ground field are not regarded as elements
of the algebra, especially the identity and zero element are denoted by
a.one
and a.zero
, respectively.
Functions and operators for elements of finitely presented algebras are
listed in Elements of Finitely Presented Algebras.
Implementation of Functions for Finitely Presented Algebras
Every question about a finitely presented algebra A that cannot be answered from the presentation directly is delegated to an isomorphic matrix algebra M using the VE share library. This may be impossible because the dimension of an isomorphic matrix algebra is too large. But for small A it seems to be valuable.
For example, if one asks for the size of A, VE tries to find such a
matrix algebra M, and then GAP computes its size.
M and the isomorphism between A and M are stored in the component
A.matAlgebraA
, so VE is called only once for A.
GAP 3.4.4