Goto Chapter: Top 1 2 3 Ind

### 2 Pregroups

Pregroups are the fundamental building block of pregroup presentations used in the hyperbolicity tester.

#### 2.1 Creating Pregroups

This section describes functions to create pregroups from multiplication tables, free groups, and free products of finite groups.

##### 2.1-1 PregroupByTable
 ‣ PregroupByTable( enams, table ) ( function )
 ‣ PregroupByTableNC( arg ) ( function )

Returns: A pregroup

If enams is a list of element names, which can be arbitrary GAP objects, with the convention that enams is the name of the identity element, and table is a square table of non-negative integers that is the multiplication table of a pregroup, then PregroupByTable and PregroupByTableNC return a pregroup in multiplication table representation.

By convention the elements of the pregroup are numbered [1..n] with 0 denoting an undefined product in the table.

The axioms for a pregroup are checked by PregroupByTable and not checked by PregroupByTableNC.

gap> pregroup := PregroupByTable( "1xyY",
>                [ [1,2,3,4]
>                , [2,1,0,0]
>                , [3,4,0,1]
>                , [4,0,1,3] ] );
<pregroup with 4 elements in table rep>


##### 2.1-2 PregroupByRedRelators
 ‣ PregroupByRedRelators( F, rrel, inv ) ( operation )

Returns: A pregroup in table representation

Construct a pregroup from the list rrel of red relators and the list inv of involutions over the free group F. The argument rred has to be a list of elements of length 3 in the free group F, and inv has to be a list of generators of F.

##### 2.1-3 PregroupOfFreeProduct
 ‣ PregroupOfFreeProduct( G, H ) ( operation )

Construct the pregroup of the free product of G and H. If G and H are finite groups, then PregroupOfFreeProduct returns the pregroup consisting of the non-identity elements of G and H and an identity element. A product between two non-trivial elements is defined if and only if they are in the same group.

gap> pregroup := PregroupOfFreeProduct(SmallGroup(12,2), SmallGroup(24,4));
<pregroup with 35 elements in table rep>


##### 2.1-4 PregroupOfFreeGroup
 ‣ PregroupOfFreeGroup( F ) ( function )

Return the pregroup of the free group F

#### 2.2 Filters and Representations

This section gives an overview over the filters, categories and representations defined by walrus

##### 2.2-1 IsPregroup
 ‣ IsPregroup( arg ) ( filter )

Returns: true or false

##### 2.2-2 IsPregroupTableRep
 ‣ IsPregroupTableRep( arg ) ( filter )

Returns: true or false

A pregroup represented by its multiplication table, which is a square table of integers between 0 and the size of the pregroup, where 0 represents an undefined multiplication.

##### 2.2-3 IsPregroupOfFreeGroupRep
 ‣ IsPregroupOfFreeGroupRep( arg ) ( filter )

Returns: true or false

Pregroup of a free group of rank k. The only defined products are 1⋅ x = x ⋅ 1 = x and xx^-1 = x^-1x = 1, for all generators x.

##### 2.2-4 IsPregroupOfFreeProductRep
 ‣ IsPregroupOfFreeProductRep( arg ) ( filter )

Returns: true or false

Pregroup of the free product of a list of groups where products between non-trivial elements g, h are defined if g,h are contained in the same group.

#### 2.3 Attributes, Properties, and Operations

This section gives an overview over the attributes, properties, and operatins defined for pregroups.

##### 2.3-1 []
 ‣ []( pregroup, i ) ( operation )

Get the ith element of pregroup. By convention the 1st element is the identity element.

##### 2.3-2 IntermultPairs
 ‣ IntermultPairs( pregroup ) ( attribute )

Returns the set of intermult pairs of the pregroup

##### 2.3-3 One
 ‣ One( pregroup ) ( attribute )

The identity element of pregroup.

##### 2.3-4 MultiplicationTable
 ‣ MultiplicationTable( pregroup ) ( attribute )

The multiplication table of pregroup

##### 2.3-5 SetPregroupElementNames
 ‣ SetPregroupElementNames( pregroup, names ) ( operation )

Can be used to set more user-friendly display names for the elements of pregroup. The list names has to be of length Size(pregroup).

##### 2.3-6 PregroupElementNames
 ‣ PregroupElementNames( pregroup ) ( operation )

Return the list of names of elements of pregroup

#### 2.4 Elements of Pregroups

##### 2.4-1 IsElementOfPregroup
 ‣ IsElementOfPregroup( arg ) ( filter )

Returns: true or false

##### 2.4-2 IsElementOfPregroupRep
 ‣ IsElementOfPregroupRep( arg ) ( filter )

Returns: true or false

##### 2.4-3 IsElementOfPregroupOfFreeGroupRep
 ‣ IsElementOfPregroupOfFreeGroupRep( arg ) ( filter )

Returns: true or false

##### 2.4-4 PregroupOf
 ‣ PregroupOf( p ) ( attribute )

The pregroup that the element p is contained in.

##### 2.4-5 IsDefinedMultiplication
 ‣ IsDefinedMultiplication( p, q ) ( operation )

Tests whether the multiplication of p and q is defined in the pregroup containing p and q.

##### 2.4-6 IsIntermultPair
 ‣ IsIntermultPair( p, q ) ( operation )

Tests whether (p, q) is an intermult pair. defined.

##### 2.4-7 PregroupInverse
 ‣ PregroupInverse( p ) ( attribute )

Return the inverse of p.

#### 2.5 Small Pregroups

This package contains a small database of pregroups of sizes 1 to 7. The database was computed by Chris Jefferson using the Minion constraint solver.

These small pregroups currently used for testing. Accessing the small pregroups database works as follows.

##### 2.5-1 NrSmallPregroups
 ‣ NrSmallPregroups( n ) ( function )

Returns: an integer.

Returns the number of pregroups of size n available in the database.

##### 2.5-2 SmallPregroup
 ‣ SmallPregroup( n, i ) ( function )

Returns: a pregroup.

Returns the ith pregroup of size n from the database of small pregroups.

Goto Chapter: Top 1 2 3 Ind

generated by GAPDoc2HTML