
| Current Path : /usr/share/gap/doc/ref/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/share/gap/doc/ref/chap52.txt |
[1X52 [33X[0;0YFinitely Presented Semigroups and Monoids[133X[101X
[33X[0;0YA [13Xfinitely presented semigroup[113X (resp. [13Xfinitely presented monoid[113X) is a
quotient of a free semigroup (resp. free monoid) on a finite number of
generators over a finitely generated congruence on the free semigroup (resp.
free monoid).[133X
[33X[0;0YFinitely presented semigroups are obtained by factoring a free semigroup by
a set of relations (a generating set for the congruence), i.e., a set of
pairs of words in the free semigroup.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf := FreeSemigroup( "a", "b" );;[127X[104X
[4X[25Xgap>[125X [27Xx := GeneratorsOfSemigroup( f );;[127X[104X
[4X[25Xgap>[125X [27Xs := f / [ [ x[1] * x[2], x[2] * x[1] ] ];[127X[104X
[4X[28X<fp semigroup on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfSemigroup( s );[127X[104X
[4X[28X[ a, b ][128X[104X
[4X[25Xgap>[125X [27XRelationsOfFpSemigroup( s );[127X[104X
[4X[28X[ [ a*b, b*a ] ][128X[104X
[4X[32X[104X
[33X[0;0YFinitely presented monoids are obtained by factoring a free monoid by a set
of relations, i.e. a set of pairs of words in the free monoid.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf := FreeMonoid( "a", "b" );;[127X[104X
[4X[25Xgap>[125X [27Xx := GeneratorsOfMonoid( f );[127X[104X
[4X[28X[ a, b ][128X[104X
[4X[25Xgap>[125X [27Xe := Identity( f );[127X[104X
[4X[28X<identity ...>[128X[104X
[4X[25Xgap>[125X [27Xm := f / [ [ x[1] * x[2], e ] ];[127X[104X
[4X[28X<fp monoid on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27XRelationsOfFpMonoid( m );[127X[104X
[4X[28X[ [ a*b, <identity ...> ] ][128X[104X
[4X[32X[104X
[33X[0;0YNotice that for [5XGAP[105X a finitely presented monoid is not a finitely presented
semigroup.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsFpSemigroup( m );[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[33X[0;0YHowever, one can build a finitely presented semigroup isomorphic to that
finitely presented monoid (see [2XIsomorphismFpSemigroup[102X ([14X52.2-3[114X)).[133X
[33X[0;0YAlso note that is not possible to refer to the generators by their names.
These names are not variables, but just display figures. So, if one wants to
access the generators by their names, one first has to introduce the
respective variables and to assign the generators to them.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XUnbind( a );[127X[104X
[4X[25Xgap>[125X [27Xf := FreeSemigroup( "a", "b" );;[127X[104X
[4X[25Xgap>[125X [27Xs := f / [ [ f.1 * f.2, f.2 * f.1 ] ];;[127X[104X
[4X[25Xgap>[125X [27Xa;[127X[104X
[4X[28XError, Variable: 'a' must have a value[128X[104X
[4X[25Xgap>[125X [27Xa := s.1;[127X[104X
[4X[28Xa[128X[104X
[4X[25Xgap>[125X [27Xa in f;[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xa in s;[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[33X[0;0YThe generators of the free semigroup (resp. free monoid) are different from
the generators of the finitely presented semigroup (resp. finitely presented
monoid) (even though they are displayed by the same names). This means that
words in the generators of the free semigroup (resp. free monoid) are not
elements of the finitely presented semigroup (resp. finitely presented
monoid). Conversely elements of the finitely presented semigroup (resp.
finitely presented monoid) are not words of the free semigroup (resp. free
monoid).[133X
[33X[0;0YCalculations comparing elements of a finitely presented semigroup may run
into problems: there are finitely presented semigroups for which no
algorithm exists (it is known that no such algorithm can exist) that will
tell for two arbitrary words in the generators whether the corresponding
elements in the finitely presented semigroup are equal. Therefore the
methods used by [5XGAP[105X to compute in finitely presented semigroups may run into
warning errors, run out of memory or run forever. If the finitely presented
semigroup is (by theory) known to be finite the algorithms are guaranteed to
terminate (if there is sufficient memory available), but the time needed for
the calculation cannot be bounded a priori. The same can be said for
monoids. (See [14X52.5[114X.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xb := s.2;; [127X[104X
[4X[25Xgap>[125X [27Xa*b = a^5;[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xa^5 * b^2 * a = a^6 * b^2;[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[33X[0;0YNote that elements of a finitely presented semigroup (or monoid) are not
printed in a unique way:[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xa^5 * b^2 * a;[127X[104X
[4X[28Xa^5*b^2*a[128X[104X
[4X[25Xgap>[125X [27Xa^6 * b^2;[127X[104X
[4X[28Xa^6*b^2[128X[104X
[4X[32X[104X
[1X52.1 [33X[0;0YIsSubsemigroupFpSemigroup (Filter)[133X[101X
[1X52.1-1 IsSubsemigroupFpSemigroup[101X
[33X[1;0Y[29X[2XIsSubsemigroupFpSemigroup[102X( [3Xt[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsSubmonoidFpMonoid[102X( [3Xt[103X ) [32X filter[133X
[33X[0;0YThe first function returns true if [3Xt[103X is a finitely presented semigroup or a
subsemigroup of a finitely presented semigroup. The second function does the
equivalent thing for monoids. (Generally speaking, such a subsemigroup or
monoid can be constructed with [10XSemigroup([3Xgens[103X[10X)[110X or [10XMonoid([3Xgens[103X[10X)[110X, where [3Xgens[103X
is a list of elements of a finitely presented semigroup or monoid.)[133X
[33X[0;0YA submonoid of a monoid has the same identity as the monoid.[133X
[1X52.1-2 IsFpSemigroup[101X
[33X[1;0Y[29X[2XIsFpSemigroup[102X( [3Xs[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsFpMonoid[102X( [3Xm[103X ) [32X filter[133X
[33X[0;0YThe first function is a synonym for [10XIsSubsemigroupFpSemigroup([3Xs[103X[10X)[110X and
[10XIsWholeFamily([3Xs[103X[10X)[110X (this is because a subsemigroup of a finitely presented
semigroup is not necessarily finitely presented).[133X
[33X[0;0YSimilarly, the second function is a synonym for [10XIsSubmonoidFpMonoid([3Xm[103X[10X)[110X and
[10XIsWholeFamily([3Xm[103X[10X)[110X.[133X
[1X52.1-3 IsElementOfFpSemigroup[101X
[33X[1;0Y[29X[2XIsElementOfFpSemigroup[102X( [3Xelm[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsElementOfFpMonoid[102X( [3Xelm[103X ) [32X Category[133X
[33X[0;0Yreturns true if [3Xelm[103X is an element of a finitely presented semigroup or
monoid.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf := FreeSemigroup( "a", "b" );;[127X[104X
[4X[25Xgap>[125X [27XIsFpSemigroup( f );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xs := f / [ [ f.1^2, f.2^2 ] ];;[127X[104X
[4X[25Xgap>[125X [27XIsFpSemigroup( s );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xt := Semigroup( [ s.1^2 ] );[127X[104X
[4X[28X<commutative semigroup with 1 generator>[128X[104X
[4X[25Xgap>[125X [27XIsSubsemigroupFpSemigroup( t );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsSubsemigroupFpSemigroup( s );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsSubsemigroupFpSemigroup( f );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XIsElementOfFpSemigroup( t.1^3 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X52.1-4 FpGrpMonSmgOfFpGrpMonSmgElement[101X
[33X[1;0Y[29X[2XFpGrpMonSmgOfFpGrpMonSmgElement[102X( [3Xelm[103X ) [32X operation[133X
[33X[0;0Yreturns the finitely presented group, monoid or semigroup to which [3Xelm[103X
belongs.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xs = FpGrpMonSmgOfFpGrpMonSmgElement( s.1 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xs = FpGrpMonSmgOfFpGrpMonSmgElement( t.1 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xf := FreeMonoid( 2 );;[127X[104X
[4X[25Xgap>[125X [27Xm := f / [ [ f.1^2, f.2^2 ] ];[127X[104X
[4X[28X<fp monoid on the generators [ m1, m2 ]>[128X[104X
[4X[25Xgap>[125X [27Xm = FpGrpMonSmgOfFpGrpMonSmgElement( m.1 * m.2 );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X52.2 [33X[0;0YCreating Finitely Presented Semigroups and Monoids[133X[101X
[1X52.2-1 \/[101X
[33X[1;0Y[29X[2X\/[102X( [3XF[103X, [3Xrels[103X ) [32X method[133X
[33X[0;0Ycreates a finitely presented semigroup or monoid given by the presentation [22X⟨
[3Xgens[103X ∣ [3Xrels[103X ⟩[122X where [3Xgens[103X are the generators of the free semigroup or free
monoid [3XF[103X, and the relations [3Xrels[103X are entered as pairs of words in the
generators of the free semigroup or free monoid.[133X
[33X[0;0YThe same result is obtained with the infix operator [10X/[110X, i.e. as [3XF[103X [10X/[110X [3Xrels[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xfs := FreeSemigroup( 3 );;[127X[104X
[4X[25Xgap>[125X [27Xx := GeneratorsOfSemigroup( fs );;[127X[104X
[4X[25Xgap>[125X [27Xs := fs / [ [ x[1] * x[2] * x[1], x[1] ], [ x[2]^4, x[1] ] ];[127X[104X
[4X[28X<fp semigroup on the generators [ s1, s2, s3 ]>[128X[104X
[4X[32X[104X
[1X52.2-2 FactorFreeSemigroupByRelations[101X
[33X[1;0Y[29X[2XFactorFreeSemigroupByRelations[102X( [3Xf[103X, [3Xrels[103X ) [32X function[133X
[33X[1;0Y[29X[2XFactorFreeMonoidByRelations[102X( [3Xf[103X, [3Xrels[103X ) [32X function[133X
[33X[0;0Yfor a free semigroup or free monoid [3Xf[103X and a list [3Xrels[103X of pairs of elements
of [3Xf[103X. Returns the finitely presented semigroup or monoid which is the
quotient of [3Xf[103X by the least congruence on [3Xf[103X generated by the pairs in [3Xrels[103X.[133X
[33X[0;0YUsers should be aware that much of the code described in this chapter is in
need of substantial revision. In particular, the two functions described
here are [13Xnot[113X called by the operation [10X\/[110X of the previous subsection, and so
are liable to be removed in due course.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xfm := FreeMonoid( 3 );;[127X[104X
[4X[25Xgap>[125X [27Xy := GeneratorsOfMonoid( fm );;[127X[104X
[4X[25Xgap>[125X [27Xm := FactorFreeMonoidByRelations( fm, [127X[104X
[4X[25X>[125X [27X [ [ y[1] * y[2] * y[1], y[1] ],[ y[2]^4, y[1] ] ] );[127X[104X
[4X[28X<fp monoid on the generators [ m1, m2, m3 ]>[128X[104X
[4X[32X[104X
[1X52.2-3 IsomorphismFpSemigroup[101X
[33X[1;0Y[29X[2XIsomorphismFpSemigroup[102X( [3Xm[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XIsomorphismFpMonoid[102X( [3Xg[103X ) [32X attribute[133X
[33X[0;0Yfor a finitely presented monoid [3Xm[103X or a finitely presented group [3Xg[103X. Returns
an isomorphism from [3Xm[103X or [3Xg[103X to a finitely presented semigroup or monoid.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xphis := IsomorphismFpSemigroup( m );[127X[104X
[4X[28XMappingByFunction( <fp monoid on the generators [128X[104X
[4X[28X[ m1, m2, m3 ]>, <fp semigroup on the generators [ <identity ...>, m1, m2, m3 [128X[104X
[4X[28X ]>, function( x ) ... end, function( x ) ... end )[128X[104X
[4X[25Xgap>[125X [27Xfg := FreeGroup( 2 );;[127X[104X
[4X[25Xgap>[125X [27Xg := fg / [ fg.1^4, fg.2^5 ];[127X[104X
[4X[28X<fp group on the generators [ f1, f2 ]>[128X[104X
[4X[25Xgap>[125X [27Xphim := IsomorphismFpMonoid( g ); [127X[104X
[4X[28XMappingByFunction( <fp group on the generators [128X[104X
[4X[28X[ f1, f2 ]>, <fp monoid on the generators [ f1, f1^-1, f2, f2^-1 [128X[104X
[4X[28X ]>, function( x ) ... end, function( x ) ... end )[128X[104X
[4X[32X[104X
[1X52.3 [33X[0;0YComparison of Elements of Finitely Presented Semigroups[133X[101X
[1X52.3-1 \=[101X
[33X[1;0Y[29X[2X\=[102X( [3Xa[103X, [3Xb[103X ) [32X method[133X
[33X[0;0YTwo elements [3Xa[103X, [3Xb[103X of a finitely presented semigroup are equal if they are
equal in the semigroup. Nevertheless they may be represented as different
words in the generators. Because of the fundamental problems mentioned in
the introduction to this chapter such a test may take a very long time and
cannot be guaranteed to finish (see [14X52.5[114X).[133X
[1X52.4 [33X[0;0YPreimages in the Free Semigroup or Monoid[133X[101X
[33X[0;0YElements of a finitely presented semigroup or monoid are not words, but are
represented using a word from the free semigroup or free monoid as
representative.[133X
[1X52.4-1 UnderlyingElement[101X
[33X[1;0Y[29X[2XUnderlyingElement[102X( [3Xelm[103X ) [32X operation[133X
[33X[0;0Yfor an element [3Xelm[103X of a finitely presented semigroup or monoid. Returns the
word from the free semigroup or free monoid that is used as a representative
for [3Xelm[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xgenm := GeneratorsOfMonoid( m );;[127X[104X
[4X[25Xgap>[125X [27Xe := genm[2]^4;[127X[104X
[4X[28Xm2^4[128X[104X
[4X[25Xgap>[125X [27XIsWord( e );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xue := UnderlyingElement( e );[127X[104X
[4X[28Xm2^4[128X[104X
[4X[25Xgap>[125X [27XIsWord( ue );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X52.4-2 ElementOfFpSemigroup[101X
[33X[1;0Y[29X[2XElementOfFpSemigroup[102X( [3Xfam[103X, [3Xword[103X ) [32X operation[133X
[33X[1;0Y[29X[2XElementOfFpMonoid[102X( [3Xfam[103X, [3Xword[103X ) [32X operation[133X
[33X[0;0Yfor a family [3Xfam[103X of elements of a finitely presented semigroup or monoid and
a word [3Xword[103X in the free generators underlying this finitely presented
semigroup or monoid. Returns the element of the finitely presented semigroup
or monoid with the representative [3Xword[103X in the free semigroup or free monoid.
These operations are inverse to [10XUnderlyingElement[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xfam := FamilyObj( genm[1] );;[127X[104X
[4X[25Xgap>[125X [27Xw := y[1]^3 * y[2]^4 * y[3]^5;[127X[104X
[4X[28Xm1^3*m2^4*m3^5[128X[104X
[4X[25Xgap>[125X [27Xew := ElementOfFpMonoid( fam, w );[127X[104X
[4X[28Xm1^3*m2^4*m3^5[128X[104X
[4X[25Xgap>[125X [27Xew in fm;[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xew in m;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xw = UnderlyingElement( ew );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X52.4-3 FreeSemigroupOfFpSemigroup[101X
[33X[1;0Y[29X[2XFreeSemigroupOfFpSemigroup[102X( [3Xs[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XFreeMonoidOfFpMonoid[102X( [3Xm[103X ) [32X attribute[133X
[33X[0;0Yreturns the underlying free semigroup or free monoid for the finitely
presented semigroup [3Xs[103X or monoid [3Xm[103X, i.e. the free semigroup or free monoid
over which [3Xs[103X or [3Xm[103X is defined as a quotient. (This is the free semigroup or
free monoid generated by the free generators provided by
[10XFreeGeneratorsOfFpSemigroup([3Xs[103X[10X)[110X or [10XFreeGeneratorsOfFpMonoid([3Xm[103X[10X)[110X).[133X
[1X52.4-4 FreeGeneratorsOfFpSemigroup[101X
[33X[1;0Y[29X[2XFreeGeneratorsOfFpSemigroup[102X( [3Xs[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XFreeGeneratorsOfFpMonoid[102X( [3Xm[103X ) [32X attribute[133X
[33X[0;0Yreturns the underlying free generators corresponding to the generators of
the finitely presented semigroup [3Xs[103X or monoid [3Xm[103X.[133X
[1X52.4-5 RelationsOfFpSemigroup[101X
[33X[1;0Y[29X[2XRelationsOfFpSemigroup[102X( [3Xs[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XRelationsOfFpMonoid[102X( [3Xm[103X ) [32X attribute[133X
[33X[0;0Yreturns the relations of the finitely presented semigroup [3Xs[103X or monoid [3Xm[103X as
pairs of words in the free generators provided by
[10XFreeGeneratorsOfFpSemigroup([3Xs[103X[10X)[110X or [10XFreeGeneratorsOfFpMonoid([3Xm[103X[10X)[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xfs = FreeSemigroupOfFpSemigroup( s );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XFreeGeneratorsOfFpMonoid( m );[127X[104X
[4X[28X[ m1, m2, m3 ][128X[104X
[4X[25Xgap>[125X [27XRelationsOfFpSemigroup( s );[127X[104X
[4X[28X[ [ s1*s2*s1, s1 ], [ s2^4, s1 ] ][128X[104X
[4X[32X[104X
[1X52.5 [33X[0;0YRewriting Systems and the Knuth-Bendix Procedure[133X[101X
[33X[0;0YIf a finitely presented semigroup (or monoid) has a confluent rewriting
system then it has a solvable word problem, that is, there is an algorithm
to decide when two words in the free underlying semigroup represent the same
element of the finitely presented semigroup. Indeed, once we have a
confluent rewriting system, it is possible to successfully test that two
words represent the same element in the semigroup, by reducing both words
using the rewriting system rules. This is, at the moment, the method that
[5XGAP[105X uses to check equality in finitely presented semigroups and monoids.[133X
[1X52.5-1 ReducedConfluentRewritingSystem[101X
[33X[1;0Y[29X[2XReducedConfluentRewritingSystem[102X( [3XS[103X[, [3Xordering[103X] ) [32X attribute[133X
[33X[0;0Yreturns a reduced confluent rewriting system of the finitely presented
semigroup or monoid [3XS[103X with respect to the reduction ordering [3Xordering[103X (see
[14X34[114X).[133X
[33X[0;0YThe default for [3Xordering[103X is the length plus lexicographic ordering on words,
also called the shortlex ordering; for the definition see for example
[Sim94].[133X
[33X[0;0YNotice that this might not terminate. In particular, if the semigroup or
monoid [3XS[103X does not have a solvable word problem then it this will certainly
never end. Also, in this case, the object returned is an immutable rewriting
system, because once we have a confluent rewriting system for a finitely
presented semigroup or monoid we do not want to allow it to change (as it
was most probably very time consuming to get it in the first place).
Furthermore, this is also an attribute storing object (see [14X13.4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf := FreeSemigroup( "a", "b" );;[127X[104X
[4X[25Xgap>[125X [27Xa := f.1;; b := f.2;;[127X[104X
[4X[25Xgap>[125X [27Xs := f / [ [ a*b*a, b ], [ b*a*b, a ] ];;[127X[104X
[4X[25Xgap>[125X [27Xrws := ReducedConfluentRewritingSystem( s );[127X[104X
[4X[28XRewriting System for Semigroup( [ a, b ] ) with rules [128X[104X
[4X[28X[ [ a*b*a, b ], [ b*a*b, a ], [ b*a^2, a^2*b ], [ b^2, a^2 ], [ a^3*b, b*a ], [128X[104X
[4X[28X [ a^5, a ] ][128X[104X
[4X[25Xgap>[125X [27Xc := s.1;; d := s.2;;[127X[104X
[4X[25Xgap>[125X [27Xe := (c*d^2)^3;[127X[104X
[4X[28X(a*b^2)^3[128X[104X
[4X[25Xgap>[125X [27X## ReducedForm( rws, e ); gives an error! [127X[104X
[4X[25Xgap>[125X [27Xw := UnderlyingElement( e );[127X[104X
[4X[28X(a*b^2)^3[128X[104X
[4X[25Xgap>[125X [27XReducedForm( rws, w );[127X[104X
[4X[28Xa[128X[104X
[4X[32X[104X
[33X[0;0YThe creation of a reduced confluent rewriting system for a semigroup or for
a monoid, in [5XGAP[105X, uses the Knuth-Bendix procedure for strings, which
manipulates a rewriting system of the semigroup or monoid and attempts to
make it confluent, (see Chapter [14X38[114X and also Sims [Sim94]). (Since the word
problem for semigroups/monoids is not solvable in general, the Knuth-Bendix
procedure cannot always terminate).[133X
[33X[0;0YIn order to apply this procedure we will build a rewriting system for the
semigroup or monoid, which we will call a [13XKnuth-Bendix Rewriting System[113X (we
need to define this because we need the rewriting system to store some
information needed for the implementation of the Knuth-Bendix procedure).[133X
[33X[0;0YActually, Knuth-Bendix Rewriting Systems do not only serve this purpose.
Indeed these are objects which are mutable and which can be manipulated (see
[14X38[114X).[133X
[33X[0;0YNote that the implemented version of the Knuth-Bendix procedure, in [5XGAP[105X
returns, if it terminates, a confluent rewriting system which is reduced.
Also, a reduction ordering has to be specified when building a rewriting
system. If none is specified, the shortlex ordering is assumed (note that
the procedure may terminate with a certain ordering and not with another
one).[133X
[33X[0;0YOn Unix systems it is possible to replace the built-in Knuth-Bendix by other
routines, for example the package [5Xkbmag[105X offers such a possibility.[133X
[1X52.5-2 KB_REW[101X
[33X[1;0Y[29X[2XKB_REW[102X[32X global variable[133X
[33X[1;0Y[29X[2XGAPKB_REW[102X[32X global variable[133X
[33X[0;0Y[10XKB_REW[110X is a global record variable whose components contain functions used
for Knuth-Bendix. By default [10XKB_REW[110X is assigned to [10XGAPKB_REW[110X, which contains
the KB functions provided by the GAP library.[133X
[1X52.5-3 [33X[0;0YKnuthBendixRewritingSystem[133X[101X
[33X[1;0Y[29X[2XKnuthBendixRewritingSystem[102X( [3Xs[103X, [3Xwordord[103X ) [32X operation[133X
[33X[1;0Y[29X[2XKnuthBendixRewritingSystem[102X( [3Xm[103X, [3Xwordord[103X ) [32X operation[133X
[33X[0;0Yin the first form, for a semigroup [3Xs[103X and a reduction ordering for the
underlying free semigroup, it returns the Knuth-Bendix rewriting system of
the finitely presented semigroup [3Xs[103X using the reduction ordering [3Xwordord[103X. In
the second form, for a monoid [3Xm[103X and a reduction ordering for the underlying
free monoid, it returns the Knuth-Bendix rewriting system of the finitely
presented monoid [3Xm[103X using the reduction ordering [3Xwordord[103X.[133X
[1X52.5-4 SemigroupOfRewritingSystem[101X
[33X[1;0Y[29X[2XSemigroupOfRewritingSystem[102X( [3Xrws[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XMonoidOfRewritingSystem[102X( [3Xrws[103X ) [32X attribute[133X
[33X[0;0Yreturns the semigroup or monoid over which [3Xrws[103X is a rewriting system.[133X
[1X52.5-5 FreeSemigroupOfRewritingSystem[101X
[33X[1;0Y[29X[2XFreeSemigroupOfRewritingSystem[102X( [3Xrws[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XFreeMonoidOfRewritingSystem[102X( [3Xrws[103X ) [32X attribute[133X
[33X[0;0Yreturns the free semigroup or monoid over which [3Xrws[103X is a rewriting system.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf1 := FreeSemigroupOfRewritingSystem( rws );[127X[104X
[4X[28X<free semigroup on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27Xf1 = f;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xs1 := SemigroupOfRewritingSystem( rws );[127X[104X
[4X[28X<fp semigroup on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27Xs1 = s;[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[33X[0;0YAs mentioned before, having a confluent rewriting system, one can decide
whether two words represent the same element of a finitely presented
semigroup (or finitely presented monoid).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xd^6 = c^2;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XReducedForm( rws, UnderlyingElement( d^6 ) );[127X[104X
[4X[28Xa^2[128X[104X
[4X[25Xgap>[125X [27XReducedForm( rws, UnderlyingElement( c^2 ) );[127X[104X
[4X[28Xa^2[128X[104X
[4X[32X[104X
[1X52.6 [33X[0;0YTodd-Coxeter Procedure[133X[101X
[33X[0;0YThis procedure gives a standard way of finding a transformation
representation of a finitely presented semigroup. Usually one does not
explicitly call this procedure but uses [2XIsomorphismTransformationSemigroup[102X
([14X53.7-5[114X).[133X
[1X52.6-1 CosetTableOfFpSemigroup[101X
[33X[1;0Y[29X[2XCosetTableOfFpSemigroup[102X( [3Xr[103X ) [32X attribute[133X
[33X[0;0Y[3Xr[103X is a right congruence of an fp-semigroup [3XS[103X. This attribute is the coset
table of FP semigroup [3XS[103X on a right congruence [3Xr[103X. Given a right congruence [3Xr[103X
we represent [3XS[103X as a set of transformations of the congruence classes of [3Xr[103X.[133X
[33X[0;0YThe images of the cosets under the generators are compiled in a list [3Xtable[103X
such that [3Xtable[i][s][103X contains the image of coset [3Xs[103X under generator [3Xi[103X.[133X