Presentations and Tietze Transformations

A finite presentation describes a group, but usually there is a multitude of presentations that describe isomorphic groups. Therefore a presentation in &GAP; is different from a finitely presented group though there are ways to translate between both.

An important feature of presentations is that they can be modified (see sections to ).

If you only want to get new presentations for subgroups of a finitely presented group (and do not want to manipulate presentations yourself), chances are that the operation already does what you want (see ).

Creating Presentations

Most of the functions creating presentations and all functions performing Tietze transformations on them sort the relators by increasing lengths. The function is an exception because it is intended to reflect the relators that were used to define the involved f. p. group. You may use the command to sort the presentation.

<#Include Label="PresentationFpGroup"> <#Include Label="TzSort"> <#Include Label="GeneratorsOfPresentation"> <#Include Label="FpGroupPresentation"> <#Include Label="PresentationViaCosetTable"> <#Include Label="SimplifiedFpGroup">

Subgroup Presentations
Schreier
<#Include Label="PresentationSubgroup"> <#Include Label="PresentationSubgroupRrs"> <#Include Label="PrimaryGeneratorWords"> <#Include Label="PresentationSubgroupMtc"> <#Include Label="PresentationNormalClosureRrs"> <#Include Label="PresentationNormalClosure">

Relators in a Presentation

In order to speed up the Tietze transformation routines, each relator in a presentation is internally represented by a list of positive or negative generator numbers, i.e., each factor of the proper &GAP; word is represented by the position number of the corresponding generator with respect to the current list of generators, or by the respective negative number, if the factor is the inverse of a generator. Note that the numbering of the generators in Tietze words is always relative to a generator list and bears no relation to the internal numbering of generators in a family of associative words.

<#Include Label="TietzeWordAbstractWord"> <#Include Label="AbstractWordTietzeWord">

Printing Presentations

Whenever you create a presentation P, say, or assign it to a variable, &GAP; will respond by printing P. However, as P may contain a lot of generators and many relators of large length, it would be annoying if the standard print facilities displayed all this information in detail. So they restrict the printout to just one line of text containing the number of generators, the number of relators, and the total length of all relators of P. As compensation, &GAP; offers some special print commands which display various details of a presentation.

Note that there is also a function . It is described in Section .

<#Include Label="TzPrintGenerators"> <#Include Label="TzPrintRelators"> <#Include Label="TzPrintLengths"> <#Include Label="TzPrintStatus"> <#Include Label="TzPrintPresentation"> <#Include Label="TzPrint"> <#Include Label="TzPrintPairs">

Changing Presentations

The functions described in this section may be used to change a presentation. Note, however, that in general they do not perform Tietze transformations because they change or may change the isomorphism type of the group defined by the presentation.

<#Include Label="AddGenerator"> <#Include Label="TzNewGenerator"> <#Include Label="AddRelator"> <#Include Label="RemoveRelator">

Tietze Transformations

The commands in this section can be used to modify a presentation by Tietze transformations.

In general, the aim of such modifications will be to simplify the given presentation, i.e., to reduce the number of generators and the number of relators without increasing too much the sum of all relator lengths which we will call the total length of the presentation. Depending on the concrete presentation under investigation one may end up with a nice, short presentation or with a very huge one.

Unfortunately there is no algorithm which could be applied to find the shortest presentation which can be obtained by Tietze transformations from a given one. Therefore, what &GAP; offers are some lower-level Tietze transformation commands and, in addition, some higher-level commands which apply the lower-level ones in a kind of default strategy which of course cannot be the optimal choice for all presentations.

The design of these commands follows closely the concept of the ANU Tietze transformation program and its later revisions (see , ).

<#Include Label="TzGo"> <#Include Label="SimplifyPresentation"> <#Include Label="TzGoGo">

Elementary Tietze Transformations
<#Include Label="TzEliminate"> <#Include Label="TzSearch"> <#Include Label="TzSearchEqual"> <#Include Label="TzFindCyclicJoins">

Tietze Transformations that introduce new Generators

Some of the Tietze transformation commands listed so far may eliminate generators and hence change the given presentation to a presentation on a subset of the given set of generators, but they all do not introduce new generators. However, sometimes there will be the need to substitute certain words as new generators in order to improve a presentation. Therefore &GAP; offers the two commands and which introduce new generators.

<#Include Label="TzSubstitute"> <#Include Label="TzSubstituteCyclicJoins">

Tracing generator images through Tietze transformations

Any sequence of Tietze transformations applied to a presentation, starting from some presentation P_1 and ending up with some presentation P_2, defines an isomorphism, \varphi say, between the groups defined by P_1 and P_2, respectively. Sometimes it is desirable to know the images of the (old) generators of P_1 or the preimages of the (new) generators of P_2 under \varphi. The &GAP; Tietze transformation functions are able to trace these images. This is not automatically done because the involved words may grow to tremendous length, but it will be done if you explicitly request for it by calling the function .

<#Include Label="TzInitGeneratorImages"> <#Include Label="OldGeneratorsOfPresentation"> <#Include Label="TzImagesOldGens"> <#Include Label="TzPreImagesNewGens"> <#Include Label="TzPrintGeneratorImages">

The Decoding Tree Procedure
<#Include Label="DecodeTree">

Tietze Options

Several of the Tietze transformation commands described above are controlled by certain parameters, the Tietze options, which often have a tremendous influence on their performance and results. However, in each application of the commands, an appropriate choice of these option parameters will depend on the concrete presentation under investigation. Therefore we have implemented the Tietze options in such a way that they are associated to the presentation: Each presentation keeps its own set of Tietze option parameters as an attribute.

<#Include Label="TzOptions"> <#Include Label="TzPrintOptions">