|  |  7.7.3 Functionality and release notes of LETTERPLACE 
Over free associative algebras over fields or over a ring 
 ,
one can perform many different computations with arbitrary two-sided ideals.
It is possible to define a free bimodule of a fixed finite rank and also
work with subbimodules of such. Groebner bases and related tools are thoroughly
implemented, with respect to a variety of monomial module orderings. 
The variables can be weighted by nonnegative weights, which are determined by the monomial ordering.
 
Restrictions/conventions of the LETTERPLACE subsystem:
 
Since free algebra is not Noetherian, one has to work with explicitly fixed degree (length) bound,
up to which a partial Groebner basis will be computed. The initialization
routine freeAlgebra (letterplace)constructs the ring with this bound.
For increasing the length bound one needs to define another ring and to useimapfor mapping the objects back and forth.All the computations happen up to the length bound, which is
explicitly fixed during the definition of the current ring.
The options redSB, redTailare effective for computations involving Groebner bases,The options prot, memare effective for the whole LETTERPLACE subsystem.For monomial orderings, which are not compatible with the length, the following error
message might appear:
degree bound of Letterplace ring is 11, but at least 12 is needed for this multiplicationIn such a situation, activatingoption(redSB),option(redTail)and increasing the
length (degree) bound might help. Though there are situations, where nothing leads to a finite
computation simply while the nature of non-Noetherian rings is so. 
Operations for polynomials in Letterplace rings are the usual ones:
+(addition),-(subtraction),*(multiplication) and^(power). 
The functions  bracket,  maxideal and  std (an alias for  twostd (letterplace)) also work within letterplace rings:
 
 |  | LIB "freegb.lib";
ring r = 0,(x,y,z),dp; // the ordering will be degree right lex
ring R = freeAlgebra(r, 5);  // degree (length) bound is 5
// maxideal in a letterplace ring:
print(matrix(maxideal(2))); // all monomials of length 2
==> x*x,y*x,z*x,x*y,y*y,z*y,x*z,y*z,z*z
// bracket in a letterplace ring:
bracket(x,y);
==> -y*x+x*y
poly f = x*x + x*y - z;
bracket(f,x);
==> x*y*x-x*x*y-z*x+x*z
bracket(f,x,2); // left-normed iterated bracket [f,[f,x]]
==> -x*y*x*x*x+x*x*y*x*x+x*x*x*y*x+x*y*x*y*x-x*x*x*x*y-2*x*y*x*x*y+x*x*y*x*y+\
   z*x*x*x-x*z*x*x-z*x*y*x-x*x*z*x-x*y*z*x+2*z*x*x*y-x*z*x*y+x*x*x*z+2*x*y*x\
   *z-x*x*y*z+z*z*x-2*z*x*z+x*z*z
 | 
 
Further functionality is provided in the libraries for the LETTERPACE subsystem:
see  LETTERPLACE libraries for details.
 
In the  freegb_lib one finds e.g. Letterplace initialization together with
legacy, conversion and convenience tools.
 
The  fpadim_lib contains procedures for computations with vector space basis
of a factor algebra including finiteness check and dimension computation.
 
The  fpaprops_lib contains procedures for determining important ring-theoretic properties
including Gelfand-Kirillov dimension.
 
The  fpalgebras_lib contains procedures for the generation of various algebras, including group algebras of finitely presented groups in the Letterplace ring.
 
The  ncfactor_lib contains the procedure ncfactorfor factorizing polynomials in the Letterplace ring. 
See
 bracket;
 maxideal;
 reduce (letterplace);
 rightstd (letterplace);
 std (letterplace);
 twostd (letterplace).
 
 |