Goto Chapter: Top 1 2 3 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

2 Pregroups
 2.1 Creating Pregroups
 2.2 Filters and Representations
 2.3 Attributes, Properties, and Operations
 2.4 Elements of Pregroups
 2.5 Small Pregroups

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[1] 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.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 Ind

generated by GAPDoc2HTML