Words in abstract generators are a type of group elements in GAP. In the following we will abbreviate their full name to words.
A word is just a sequence of letters, where each letter is an abstract
generator or its inverse. Words are multiplied by concatenating them and
removing adjacent pairs of a generator and its inverse. Abstract generators
are created by the function AbstractGenerator (see
AbstractGenerator).
Note that words do not belong to a certain group. Any two words can be
multiplied. In effect we compute with words in a free group of potentially
infinite rank (potentially infinite because we can always create new abstract
generators with AbstractGenerator).
Words are entered as expressions in abstract generators and are displayed as
product of abstract generators (and powers thereof). The trivial word can be
entered and is displayed as IdWord.
gap> a := AbstractGenerator( "a" );
a
gap> b := AbstractGenerator( "b" );
b
gap> w := (a^2*b)^5*b^-1;
a^2*b*a^2*b*a^2*b*a^2*b*a^2
gap> a^0;
IdWord
The first sections in this chapter describe the functions that create abstract generators (see AbstractGenerator and AbstractGenerators). The next sections define the operations for words (see Comparisons of Words and Operations for Words). The next section describes the function that tests whether an object is a word (see IsWord). The next sections describe the functions that compute the number of letters of a word (see LengthWord and ExponentSumWord). The next sections describe the functions that extract or find a subword (see Subword and PositionWord). The final sections describe the functions that modify words (see SubstitutedWord, EliminatedWord, and MappedWord).
Note that words in abstract generators are different from words in finite polycyclic groups (see Words in Finite Polycyclic Groups).
This chapter contains the following sections: