Given an automatic group G defined on r generators and a sequence [i1, ..., is] of integers lying in the range [ - r, r], excluding 0, construct the word G.|i1|ε1 * G.|i2|ε2 * ... * G.|is|εs where εj is +1 if ij is positive, and -1 if ij is negative. The word will be returned in reduced form.
Construct the identity word in the automatic group G.
The parent group G for the word w.
> F<a, b> := Group< a, b | a^2 = b^2, a*b*a = b*a*b >; > f, G<a, b> := IsAutomaticGroup(F); > G; An automatic group. Generator Ordering = [ $.1, $.1^-1, $.2, $.2^-1 ] The second word difference machine has 11 states. The word acceptor has 8 states. > Id(G); Id(G) > print G!1; Id(G) > a*b*a*b^3; a^4 * b * a > G![1,2,1,2,2,2]; a^4 * b * a
Having constructed an automatic group G one can perform arithmetic with words in G. Assuming we have u, v ∈G then the product u * v will be computed as follows:
Given words w and v belonging to a common group, return their product.
Given words w and v belonging to a common group, return the product of the word u by the inverse of the word v, i.e. the word u * v - 1.
The n-th power of the word w.
Given words w and v belonging to a common group, return the conjugate of the word u by the word v, i.e. the word v - 1 * u * v.
The inverse of the word w.
Given words w and v belonging to a common group, return the commutator of the words u and v, i.e., the word u - 1v - 1uv.
Given r words u1, ..., ur belonging to a common group, return their commutator. Commutators are left-normed, so they are evaluated from left to right.
Given words w and v belonging to the same group, return true if w and v reduce to the same normal form, false otherwise. If G is confluent this tests for equality. If G is non-confluent then two words which are the same may not reduce to the same normal form.
Given words w and v belonging to the same group, return false if w and v reduce to the same normal form, true otherwise. If G is confluent this tests for non-equality. If G is non-confluent then two words which are the same may reduce to different normal forms.
Returns true if the word w is the identity word.
The length of the word w.
The sequence Q obtained by decomposing the element u of a rewrite group into its constituent generators and generator inverses. Suppose u is a word in the rewrite group G. Then, if u = G.i1e1 ... G.imem, with each ei equaling plus or minus 1, then Q[j] = ij if ej = + 1 and Q[j] = - ij if ej = (-1), for j = 1, ..., m.
We illustrate the word operations by applying them to elements of the fundamental group of a 3-manifold.
We illustrate the word operations by applying them to elements of a free group of rank two (with lots of redundant generators).
> FG<a,b,c,d,e> := FreeGroup(5); > F := quo< FG | a*d*d=1, b*d*d*d=1, c*d*d*d*d*d*e*e*e=1>; > f, G<a,b,c,d,e> := IsAutomaticGroup(F); > G; An automatic group. Generator Ordering = [ a, a^-1, b, b^-1, c, c^-1, d, d^-1, e, e^-1 ] The second word difference machine has 41 states. The word acceptor has 42 states. > print a*d; d^-1 > print a/(d^-1); d^-1 > print c*d^5*e^2; e^-1 > print a^b, b^-1*a*b; a a > print (a*d)^-2, Inverse(a*d)^2; a^-1 a^-1 > print c^-1*d^-1*c*d eq (c,d); true > print IsIdentity(b*d^3); true > print #(c*d*d*d*d*d*e*e); 1