
| 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/chap51.txt |
[1X51 [33X[0;0YSemigroups and Monoids[133X[101X
[33X[0;0YThis chapter describes functions for creating semigroups and monoids and
determining information about them.[133X
[1X51.1 [33X[0;0YSemigroups[133X[101X
[1X51.1-1 IsSemigroup[101X
[33X[1;0Y[29X[2XIsSemigroup[102X( [3XD[103X ) [32X Synonym[133X
[33X[0;0Yreturns [9Xtrue[109X if the object [3XD[103X is a semigroup. A [13Xsemigroup[113X is a magma (see [14X35[114X)
with associative multiplication.[133X
[1X51.1-2 [33X[0;0YSemigroup[133X[101X
[33X[1;0Y[29X[2XSemigroup[102X( [3Xgen1[103X, [3Xgen2[103X, [3X...[103X ) [32X function[133X
[33X[1;0Y[29X[2XSemigroup[102X( [3Xgens[103X ) [32X function[133X
[33X[0;0YIn the first form, [2XSemigroup[102X returns the semigroup generated by the
arguments [3Xgen1[103X, [3Xgen2[103X, [22X...[122X, that is, the closure of these elements under
multiplication. In the second form, [2XSemigroup[102X returns the semigroup
generated by the elements in the homogeneous list [3Xgens[103X; a square matrix as
only argument is treated as one generator, not as a list of generators.[133X
[33X[0;0YIt is [13Xnot[113X checked whether the underlying multiplication is associative, use
[2XMagma[102X ([14X35.2-1[114X) and [2XIsAssociative[102X ([14X35.4-7[114X) if you want to check whether a
magma is in fact a semigroup.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xa:= Transformation( [ 2, 3, 4, 1 ] );[127X[104X
[4X[28XTransformation( [ 2, 3, 4, 1 ] )[128X[104X
[4X[25Xgap>[125X [27Xb:= Transformation( [ 2, 2, 3, 4 ] );[127X[104X
[4X[28XTransformation( [ 2, 2 ] )[128X[104X
[4X[25Xgap>[125X [27Xs:= Semigroup(a, b);[127X[104X
[4X[28X<transformation semigroup of degree 4 with 2 generators>[128X[104X
[4X[32X[104X
[1X51.1-3 Subsemigroup[101X
[33X[1;0Y[29X[2XSubsemigroup[102X( [3XS[103X, [3Xgens[103X ) [32X function[133X
[33X[1;0Y[29X[2XSubsemigroupNC[102X( [3XS[103X, [3Xgens[103X ) [32X function[133X
[33X[0;0Yare just synonyms of [2XSubmagma[102X ([14X35.2-7[114X) and [2XSubmagmaNC[102X ([14X35.2-7[114X),
respectively.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xa:=GeneratorsOfSemigroup(s)[1];[127X[104X
[4X[28XTransformation( [ 2, 3, 4, 1 ] )[128X[104X
[4X[25Xgap>[125X [27Xt:=Subsemigroup(s,[a]);[127X[104X
[4X[28X<commutative transformation semigroup of degree 4 with 1 generator>[128X[104X
[4X[32X[104X
[1X51.1-4 IsSubsemigroup[101X
[33X[1;0Y[29X[2XIsSubsemigroup[102X( [3XS[103X, [3XT[103X ) [32X operation[133X
[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0YThis operation returns [9Xtrue[109X if the semigroup [3XT[103X is a subsemigroup of the
semigroup [3XS[103X and [9Xfalse[109X if it is not.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf := Transformation([5, 6, 7, 1, 4, 3, 2, 7]);[127X[104X
[4X[28XTransformation( [ 5, 6, 7, 1, 4, 3, 2, 7 ] )[128X[104X
[4X[25Xgap>[125X [27XT := Semigroup(f);;[127X[104X
[4X[25Xgap>[125X [27XIsSubsemigroup(FullTransformationSemigroup(4), T);[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XS := Semigroup(f);;[127X[104X
[4X[25Xgap>[125X [27XT := Semigroup(f ^ 2);;[127X[104X
[4X[25Xgap>[125X [27XIsSubsemigroup(S, T);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X51.1-5 SemigroupByGenerators[101X
[33X[1;0Y[29X[2XSemigroupByGenerators[102X( [3Xgens[103X ) [32X operation[133X
[33X[0;0Yis the underlying operation of [2XSemigroup[102X ([14X51.1-2[114X).[133X
[1X51.1-6 AsSemigroup[101X
[33X[1;0Y[29X[2XAsSemigroup[102X( [3XC[103X ) [32X operation[133X
[33X[0;0YIf [3XC[103X is a collection whose elements form a semigroup (see [2XIsSemigroup[102X
([14X51.1-1[114X)) then [2XAsSemigroup[102X returns this semigroup. Otherwise [9Xfail[109X is
returned.[133X
[1X51.1-7 AsSubsemigroup[101X
[33X[1;0Y[29X[2XAsSubsemigroup[102X( [3XD[103X, [3XC[103X ) [32X operation[133X
[33X[0;0YLet [3XD[103X be a domain and [3XC[103X a collection. If [3XC[103X is a subset of [3XD[103X that forms a
semigroup then [2XAsSubsemigroup[102X returns this semigroup, with parent [3XD[103X.
Otherwise [9Xfail[109X is returned.[133X
[1X51.1-8 GeneratorsOfSemigroup[101X
[33X[1;0Y[29X[2XGeneratorsOfSemigroup[102X( [3XS[103X ) [32X attribute[133X
[33X[0;0YSemigroup generators of a semigroup [3XD[103X are the same as magma generators,
see [2XGeneratorsOfMagma[102X ([14X35.4-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XGeneratorsOfSemigroup(s);[127X[104X
[4X[28X[ Transformation( [ 2, 3, 4, 1 ] ), Transformation( [ 2, 2 ] ) ][128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfSemigroup(t);[127X[104X
[4X[28X[ Transformation( [ 2, 3, 4, 1 ] ) ][128X[104X
[4X[32X[104X
[1X51.1-9 IsGeneratorsOfSemigroup[101X
[33X[1;0Y[29X[2XIsGeneratorsOfSemigroup[102X( [3XC[103X ) [32X property[133X
[33X[0;0YThis property reflects whether the list or collection [3XC[103X generates a
semigroup. [2XIsAssociativeElementCollection[102X ([14X31.15-1[114X) implies
[2XIsGeneratorsOfSemigroup[102X, but is not used directly in semigroup code,
because of conflicts with matrices.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsGeneratorsOfSemigroup([Transformation([2,3,1])]);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X51.1-10 [33X[0;0YFreeSemigroup[133X[101X
[33X[1;0Y[29X[2XFreeSemigroup[102X( [[3Xwfilt[103X, ][3Xrank[103X[, [3Xname[103X] ) [32X function[133X
[33X[1;0Y[29X[2XFreeSemigroup[102X( [[3Xwfilt[103X, ][3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
[33X[1;0Y[29X[2XFreeSemigroup[102X( [[3Xwfilt[103X, ][3Xnames[103X ) [32X function[133X
[33X[1;0Y[29X[2XFreeSemigroup[102X( [[3Xwfilt[103X, ][3Xinfinity[103X, [3Xname[103X, [3Xinit[103X ) [32X function[133X
[33X[0;0YCalled with a positive integer [3Xrank[103X, [2XFreeSemigroup[102X returns a free semigroup
on [3Xrank[103X generators. If the optional argument [3Xname[103X is given then the
generators are printed as [3Xname[103X[10X1[110X, [3Xname[103X[10X2[110X etc., that is, each name is the
concatenation of the string [3Xname[103X and an integer from [10X1[110X to [3Xrange[103X. The default
for [3Xname[103X is the string [10X"s"[110X.[133X
[33X[0;0YCalled in the second form, [2XFreeSemigroup[102X returns a free semigroup on as many
generators as arguments, printed as [3Xname1[103X, [3Xname2[103X etc.[133X
[33X[0;0YCalled in the third form, [2XFreeSemigroup[102X returns a free semigroup on as many
generators as the length of the list [3Xnames[103X, the [22Xi[122X-th generator being printed
as [3Xnames[103X[22X[i][122X.[133X
[33X[0;0YCalled in the fourth form, [2XFreeSemigroup[102X returns a free semigroup on
infinitely many generators, where the first generators are printed by the
names in the list [3Xinit[103X, and the other generators by [3Xname[103X and an appended
number.[133X
[33X[0;0YIf the extra argument [3Xwfilt[103X is given, it must be either
[2XIsSyllableWordsFamily[102X ([14X37.6-6[114X) or [2XIsLetterWordsFamily[102X ([14X37.6-2[114X) or
[2XIsWLetterWordsFamily[102X ([14X37.6-4[114X) or [2XIsBLetterWordsFamily[102X ([14X37.6-4[114X). This filter
then specifies the representation used for the elements of the free
semigroup (see [14X37.6[114X). If no such filter is given, a letter representation is
used.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf1 := FreeSemigroup( 3 );[127X[104X
[4X[28X<free semigroup on the generators [ s1, s2, s3 ]>[128X[104X
[4X[25Xgap>[125X [27Xf2 := FreeSemigroup( 3 , "generator" );[127X[104X
[4X[28X<free semigroup on the generators [128X[104X
[4X[28X[ generator1, generator2, generator3 ]>[128X[104X
[4X[25Xgap>[125X [27Xf3 := FreeSemigroup( "gen1" , "gen2" );[127X[104X
[4X[28X<free semigroup on the generators [ gen1, gen2 ]>[128X[104X
[4X[25Xgap>[125X [27Xf4 := FreeSemigroup( ["gen1" , "gen2"] );[127X[104X
[4X[28X<free semigroup on the generators [ gen1, gen2 ]>[128X[104X
[4X[32X[104X
[33X[0;0YFor more on associative words see Chapter [14X37[114X.[133X
[33X[0;0YEach free object defines a unique alphabet (and a unique family of words).
Its generators are the letters of this alphabet, thus words of length one.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XFreeGroup( 5 );[127X[104X
[4X[28X<free group on the generators [ f1, f2, f3, f4, f5 ]>[128X[104X
[4X[25Xgap>[125X [27XFreeGroup( "a", "b" );[127X[104X
[4X[28X<free group on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27XFreeGroup( infinity );[127X[104X
[4X[28X<free group with infinity generators>[128X[104X
[4X[25Xgap>[125X [27XFreeSemigroup( "x", "y" );[127X[104X
[4X[28X<free semigroup on the generators [ x, y ]>[128X[104X
[4X[25Xgap>[125X [27XFreeMonoid( 7 );[127X[104X
[4X[28X<free monoid on the generators [ m1, m2, m3, m4, m5, m6, m7 ]>[128X[104X
[4X[32X[104X
[33X[0;0YRemember that names are just a help for printing and do not necessarily
distinguish letters. It is possible to create arbitrarily weird situations
by choosing strange names for the letters.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf:= FreeGroup( "x", "x" ); gens:= GeneratorsOfGroup( f );;[127X[104X
[4X[28X<free group on the generators [ x, x ]>[128X[104X
[4X[25Xgap>[125X [27Xgens[1] = gens[2];[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xf:= FreeGroup( "f1*f2", "f2^-1", "Group( [ f1, f2 ] )" );[127X[104X
[4X[28X<free group on the generators [ f1*f2, f2^-1, Group( [ f1, f2 ] ) ]>[128X[104X
[4X[25Xgap>[125X [27Xgens:= GeneratorsOfGroup( f );;[127X[104X
[4X[25Xgap>[125X [27Xgens[1]*gens[2];[127X[104X
[4X[28Xf1*f2*f2^-1[128X[104X
[4X[25Xgap>[125X [27Xgens[1]/gens[3];[127X[104X
[4X[28Xf1*f2*Group( [ f1, f2 ] )^-1[128X[104X
[4X[25Xgap>[125X [27Xgens[3]/gens[1]/gens[2];[127X[104X
[4X[28XGroup( [ f1, f2 ] )*f1*f2^-1*f2^-1^-1[128X[104X
[4X[32X[104X
[1X51.1-11 SemigroupByMultiplicationTable[101X
[33X[1;0Y[29X[2XSemigroupByMultiplicationTable[102X( [3XA[103X ) [32X function[133X
[33X[0;0Yreturns the semigroup whose multiplication is defined by the square matrix [3XA[103X
(see [2XMagmaByMultiplicationTable[102X ([14X35.3-1[114X)) if such a semigroup exists.
Otherwise [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSemigroupByMultiplicationTable([[1,2,3],[2,3,1],[3,1,2]]);[127X[104X
[4X[28X<semigroup of size 3, with 3 generators>[128X[104X
[4X[25Xgap>[125X [27XSemigroupByMultiplicationTable([[1,2,3],[2,3,1],[3,2,1]]);[127X[104X
[4X[28Xfail[128X[104X
[4X[32X[104X
[1X51.2 [33X[0;0YMonoids[133X[101X
[1X51.2-1 IsMonoid[101X
[33X[1;0Y[29X[2XIsMonoid[102X( [3XD[103X ) [32X Synonym[133X
[33X[0;0YA [13Xmonoid[113X is a magma-with-one (see [14X35[114X) with associative multiplication.[133X
[1X51.2-2 [33X[0;0YMonoid[133X[101X
[33X[1;0Y[29X[2XMonoid[102X( [3Xgen1[103X, [3Xgen2[103X, [3X...[103X ) [32X function[133X
[33X[1;0Y[29X[2XMonoid[102X( [3Xgens[103X[, [3Xid[103X] ) [32X function[133X
[33X[0;0YIn the first form, [2XMonoid[102X returns the monoid generated by the arguments
[3Xgen1[103X, [3Xgen2[103X, [22X...[122X, that is, the closure of these elements under multiplication
and taking the 0-th power. In the second form, [2XMonoid[102X returns the monoid
generated by the elements in the homogeneous list [3Xgens[103X; a square matrix as
only argument is treated as one generator, not as a list of generators. In
the second form, the identity element [3Xid[103X may be given as the second
argument.[133X
[33X[0;0YIt is [13Xnot[113X checked whether the underlying multiplication is associative, use
[2XMagmaWithOne[102X ([14X35.2-2[114X) and [2XIsAssociative[102X ([14X35.4-7[114X) if you want to check
whether a magma-with-one is in fact a monoid.[133X
[1X51.2-3 Submonoid[101X
[33X[1;0Y[29X[2XSubmonoid[102X( [3XM[103X, [3Xgens[103X ) [32X function[133X
[33X[1;0Y[29X[2XSubmonoidNC[102X( [3XM[103X, [3Xgens[103X ) [32X function[133X
[33X[0;0Yare just synonyms of [2XSubmagmaWithOne[102X ([14X35.2-8[114X) and [2XSubmagmaWithOneNC[102X
([14X35.2-8[114X), respectively.[133X
[1X51.2-4 MonoidByGenerators[101X
[33X[1;0Y[29X[2XMonoidByGenerators[102X( [3Xgens[103X[, [3Xone[103X] ) [32X operation[133X
[33X[0;0Yis the underlying operation of [2XMonoid[102X ([14X51.2-2[114X).[133X
[1X51.2-5 AsMonoid[101X
[33X[1;0Y[29X[2XAsMonoid[102X( [3XC[103X ) [32X operation[133X
[33X[0;0YIf [3XC[103X is a collection whose elements form a monoid, then [2XAsMonoid[102X returns
this monoid. Otherwise [9Xfail[109X is returned.[133X
[1X51.2-6 AsSubmonoid[101X
[33X[1;0Y[29X[2XAsSubmonoid[102X( [3XD[103X, [3XC[103X ) [32X operation[133X
[33X[0;0YLet [3XD[103X be a domain and [3XC[103X a collection. If [3XC[103X is a subset of [3XD[103X that forms a
monoid then [2XAsSubmonoid[102X returns this monoid, with parent [3XD[103X. Otherwise [9Xfail[109X
is returned.[133X
[1X51.2-7 GeneratorsOfMonoid[101X
[33X[1;0Y[29X[2XGeneratorsOfMonoid[102X( [3XM[103X ) [32X attribute[133X
[33X[0;0YMonoid generators of a monoid [3XM[103X are the same as magma-with-one generators
(see [2XGeneratorsOfMagmaWithOne[102X ([14X35.4-2[114X)).[133X
[1X51.2-8 TrivialSubmonoid[101X
[33X[1;0Y[29X[2XTrivialSubmonoid[102X( [3XM[103X ) [32X attribute[133X
[33X[0;0Yis just a synonym for [2XTrivialSubmagmaWithOne[102X ([14X35.4-13[114X).[133X
[1X51.2-9 [33X[0;0YFreeMonoid[133X[101X
[33X[1;0Y[29X[2XFreeMonoid[102X( [[3Xwfilt[103X, ][3Xrank[103X[, [3Xname[103X] ) [32X function[133X
[33X[1;0Y[29X[2XFreeMonoid[102X( [[3Xwfilt[103X, ][3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
[33X[1;0Y[29X[2XFreeMonoid[102X( [[3Xwfilt[103X, ][3Xnames[103X ) [32X function[133X
[33X[1;0Y[29X[2XFreeMonoid[102X( [[3Xwfilt[103X, ][3Xinfinity[103X, [3Xname[103X, [3Xinit[103X ) [32X function[133X
[33X[0;0YCalled with a positive integer [3Xrank[103X, [2XFreeMonoid[102X returns a free monoid on
[3Xrank[103X generators. If the optional argument [3Xname[103X is given then the generators
are printed as [3Xname[103X[10X1[110X, [3Xname[103X[10X2[110X etc., that is, each name is the concatenation of
the string [3Xname[103X and an integer from [10X1[110X to [3Xrange[103X. The default for [3Xname[103X is the
string [10X"m"[110X.[133X
[33X[0;0YCalled in the second form, [2XFreeMonoid[102X returns a free monoid on as many
generators as arguments, printed as [3Xname1[103X, [3Xname2[103X etc.[133X
[33X[0;0YCalled in the third form, [2XFreeMonoid[102X returns a free monoid on as many
generators as the length of the list [3Xnames[103X, the [22Xi[122X-th generator being printed
as [3Xnames[103X[10X[[110X[22Xi[122X[10X][110X.[133X
[33X[0;0YCalled in the fourth form, [2XFreeMonoid[102X returns a free monoid on infinitely
many generators, where the first generators are printed by the names in the
list [3Xinit[103X, and the other generators by [3Xname[103X and an appended number.[133X
[33X[0;0YIf the extra argument [3Xwfilt[103X is given, it must be either
[2XIsSyllableWordsFamily[102X ([14X37.6-6[114X) or [2XIsLetterWordsFamily[102X ([14X37.6-2[114X) or
[2XIsWLetterWordsFamily[102X ([14X37.6-4[114X) or [2XIsBLetterWordsFamily[102X ([14X37.6-4[114X). This filter
then specifies the representation used for the elements of the free monoid
(see [14X37.6[114X). If no such filter is given, a letter representation is used.[133X
[33X[0;0YFor more on associative words see Chapter [14X37[114X.[133X
[1X51.2-10 MonoidByMultiplicationTable[101X
[33X[1;0Y[29X[2XMonoidByMultiplicationTable[102X( [3XA[103X ) [32X function[133X
[33X[0;0Yreturns the monoid whose multiplication is defined by the square matrix [3XA[103X
(see [2XMagmaByMultiplicationTable[102X ([14X35.3-1[114X)) if such a monoid exists. Otherwise
[9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMonoidByMultiplicationTable([[1,2,3],[2,3,1],[3,1,2]]);[127X[104X
[4X[28X<monoid of size 3, with 3 generators>[128X[104X
[4X[25Xgap>[125X [27XMonoidByMultiplicationTable([[1,2,3],[2,3,1],[1,3,2]]);[127X[104X
[4X[28Xfail[128X[104X
[4X[32X[104X
[1X51.3 [33X[0;0YInverse semigroups and monoids[133X[101X
[1X51.3-1 InverseSemigroup[101X
[33X[1;0Y[29X[2XInverseSemigroup[102X( [3Xobj1[103X, [3Xobj2[103X, [3X...[103X ) [32X function[133X
[6XReturns:[106X [33X[0;10YAn inverse semigroup.[133X
[33X[0;0YIf [3Xobj1[103X, [3Xobj2[103X, ... are (any combination) of associative elements with unique
semigroup inverses, semigroups of such elements, or collections of such
elements, then [10XInverseSemigroup[110X returns the inverse semigroup generated by
the union of [3Xobj1[103X, [3Xobj2[103X, .... This equals the semigroup generated by the
union of [3Xobj1[103X, [3Xobj2[103X, ... and their inverses.[133X
[33X[0;0YFor example if [10XS[110X and [10XT[110X are inverse semigroups, then [10XInverseSemigroup(S, f,
Idempotents(T));[110X is the inverse semigroup generated by
[10XUnion(GeneratorsOfInverseSemigroup(S), [f], Idempotents(T)));[110X.[133X
[33X[0;0YAs present, the only associative elements with unique semigroup inverses,
which do not always generate a group, are partial permutations; see Chapter
[14X54[114X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS := InverseSemigroup([127X[104X
[4X[25X>[125X [27XPartialPerm( [ 1, 2, 3, 6, 8, 10 ], [ 2, 6, 7, 9, 1, 5 ] ) );;[127X[104X
[4X[25Xgap>[125X [27Xf := PartialPerm( [ 1, 2, 3, 4, 5, 8, 10 ], [127X[104X
[4X[25X>[125X [27X[ 7, 1, 4, 3, 2, 6, 5 ] );;[127X[104X
[4X[25Xgap>[125X [27XS := InverseSemigroup(S, f, Idempotents(SymmetricInverseSemigroup(5)));[127X[104X
[4X[28X<inverse partial perm semigroup of rank 10 with 34 generators>[128X[104X
[4X[25Xgap>[125X [27XSize(S);[127X[104X
[4X[28X1233[128X[104X
[4X[32X[104X
[1X51.3-2 InverseMonoid[101X
[33X[1;0Y[29X[2XInverseMonoid[102X( [3Xobj1[103X, [3Xobj2[103X, [3X...[103X ) [32X function[133X
[6XReturns:[106X [33X[0;10YAn inverse monoid.[133X
[33X[0;0YIf [3Xobj1[103X, [3Xobj2[103X, ... are (any combination) of associative elements with unique
semigroup inverses, semigroups of such elements, or collections of such
elements, then [10XInverseMonoid[110X returns the inverse monoid generated by the
union of [3Xobj1[103X, [3Xobj2[103X, .... This equals the monoid generated by the union of
[3Xobj1[103X, [3Xobj2[103X, ... and their inverses.[133X
[33X[0;0YAs present, the only associative elements with unique semigroup inverses are
partial permutations; see Chapter [14X54[114X.[133X
[33X[0;0YFor example if [10XS[110X and [10XT[110X are inverse monoids, then [10XInverseMonoid(S, f,
Idempotents(T));[110X is the inverse monoid generated by
[10XUnion(GeneratorsOfInverseMonoid(S), [f], Idempotents(T)));[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS := InverseMonoid([127X[104X
[4X[25X>[125X [27XPartialPerm( [ 1, 2, 3, 6, 8, 10 ], [ 2, 6, 7, 9, 1, 5 ] ) );;[127X[104X
[4X[25Xgap>[125X [27Xf := PartialPerm( [ 1, 2, 3, 4, 5, 8, 10 ], [127X[104X
[4X[25X>[125X [27X[ 7, 1, 4, 3, 2, 6, 5 ] );;[127X[104X
[4X[25Xgap>[125X [27XS := InverseMonoid(S, f, Idempotents(SymmetricInverseSemigroup(5)));[127X[104X
[4X[28X<inverse partial perm monoid of rank 10 with 35 generators>[128X[104X
[4X[25Xgap>[125X [27XSize(S);[127X[104X
[4X[28X1243[128X[104X
[4X[32X[104X
[1X51.3-3 GeneratorsOfInverseSemigroup[101X
[33X[1;0Y[29X[2XGeneratorsOfInverseSemigroup[102X( [3XS[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YThe generators of an inverse semigroup.[133X
[33X[0;0YIf [3XS[103X is an inverse semigroup, then [10XGeneratorsOfInverseSemigroup[110X returns the
generators used to define [3XS[103X, i.e. an inverse semigroup generating set for [3XS[103X.[133X
[33X[0;0YThe value of [10XGeneratorsOfSemigroup([3XS[103X[10X)[110X, for an inverse semigroup [3XS[103X, is the
union of inverse semigroup generator and their inverses. So, [3XS[103X is the
semigroup, as opposed to inverse semigroup, generated by the elements of
[10XGeneratorsOfInverseSemigroup([3XS[103X[10X)[110X and their inverses.[133X
[33X[0;0YIf [3XS[103X is an inverse monoid, then [10XGeneratorsOfInverseSemigroup[110X returns the
generators used to define [3XS[103X, as described above, and the identity of [3XS[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS:=InverseMonoid([127X[104X
[4X[25X>[125X [27X PartialPerm( [ 1, 2 ], [ 1, 4 ] ),[127X[104X
[4X[25X>[125X [27X PartialPerm( [ 1, 2, 4 ], [ 3, 4, 1 ] ) );;[127X[104X
[4X[25Xgap>[125X [27XGeneratorsOfSemigroup(S);[127X[104X
[4X[28X[ <identity partial perm on [ 1, 2, 3, 4 ]>, [2,4](1), [2,4,1,3], [128X[104X
[4X[28X [4,2](1), [3,1,4,2] ][128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfInverseSemigroup(S);[127X[104X
[4X[28X[ [2,4](1), [2,4,1,3], <identity partial perm on [ 1, 2, 3, 4 ]> ][128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfMonoid(S);[127X[104X
[4X[28X[ [2,4](1), [2,4,1,3], [4,2](1), [3,1,4,2] ][128X[104X
[4X[32X[104X
[1X51.3-4 GeneratorsOfInverseMonoid[101X
[33X[1;0Y[29X[2XGeneratorsOfInverseMonoid[102X( [3XS[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YThe generators of an inverse monoid.[133X
[33X[0;0YIf [3XS[103X is an inverse monoid, then [10XGeneratorsOfInverseMonoid[110X returns the
generators used to define [3XS[103X, i.e. an inverse monoid generating set for [3XS[103X.[133X
[33X[0;0YThere are four different possible generating sets which define an inverse
monoid. More precisely, an inverse monoid can be generated as an inverse
monoid, inverse semigroup, monoid, or semigroup. The different generating
sets in each case can be obtained using [2XGeneratorsOfInverseMonoid[102X,
[2XGeneratorsOfInverseSemigroup[102X ([14X51.3-3[114X), [2XGeneratorsOfMonoid[102X ([14X51.2-7[114X), and
[2XGeneratorsOfSemigroup[102X ([14X51.1-8[114X), respectively.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS:=InverseMonoid([127X[104X
[4X[25X>[125X [27X PartialPerm( [ 1, 2 ], [ 1, 4 ] ),[127X[104X
[4X[25X>[125X [27X PartialPerm( [ 1, 2, 4 ], [ 3, 4, 1 ] ) );;[127X[104X
[4X[25Xgap>[125X [27XGeneratorsOfInverseMonoid(S);[127X[104X
[4X[28X[ [2,4](1), [2,4,1,3] ][128X[104X
[4X[32X[104X
[1X51.3-5 IsInverseSubsemigroup[101X
[33X[1;0Y[29X[2XIsInverseSubsemigroup[102X( [3XS[103X, [3XT[103X ) [32X operation[133X
[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0YIf the semigroup [3XT[103X is an inverse subsemigroup of the semigroup [3XS[103X, then this
operation returns [9Xtrue[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:=InverseSemigroup(RandomPartialPerm(4));;[127X[104X
[4X[25Xgap>[125X [27XIsInverseSubsemigroup(SymmetricInverseSemigroup(4), T); [127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XT:=Semigroup(Transformation( [ 1, 2, 4, 5, 6, 3, 7, 8 ] ),[127X[104X
[4X[25X>[125X [27XTransformation( [ 3, 3, 4, 5, 6, 2, 7, 8 ] ),[127X[104X
[4X[25X>[125X [27XTransformation([ 1, 2, 5, 3, 6, 8, 4, 4 ] ));;[127X[104X
[4X[25Xgap>[125X [27XIsInverseSubsemigroup(FullTransformationSemigroup(8), T);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X51.4 [33X[0;0YProperties of Semigroups[133X[101X
[33X[0;0YThe following functions determine information about semigroups.[133X
[1X51.4-1 IsRegularSemigroup[101X
[33X[1;0Y[29X[2XIsRegularSemigroup[102X( [3XS[103X ) [32X property[133X
[33X[0;0Yreturns [9Xtrue[109X if [3XS[103X is regular, i.e., if every [13XD[113X-class of [3XS[103X is regular.[133X
[1X51.4-2 IsRegularSemigroupElement[101X
[33X[1;0Y[29X[2XIsRegularSemigroupElement[102X( [3XS[103X, [3Xx[103X ) [32X operation[133X
[33X[0;0Yreturns [9Xtrue[109X if [3Xx[103X has a general inverse in [3XS[103X, i.e., there is an element [22Xy ∈
[3XS[103X[122X such that [22X[3Xx[103X y [3Xx[103X = [3Xx[103X[122X and [22Xy [3Xx[103X y = y[122X.[133X
[1X51.4-3 InversesOfSemigroupElement[101X
[33X[1;0Y[29X[2XInversesOfSemigroupElement[102X( [3XS[103X, [3Xx[103X ) [32X operation[133X
[6XReturns:[106X [33X[0;10YA list of the inverses of an element of a semigroup.[133X
[33X[0;0Y[10XInversesOfSemigroupElement[110X returns a list of the inverses of the element [3Xx[103X
in the semigroup [3XS[103X.[133X
[33X[0;0YAn element [3Xy[103X in [3XS[103X is an [13Xinverse[113X of [3Xx[103X if [10X[3Xx[103X[10X*y*[3Xx[103X[10X=[3Xx[103X[10X[110X and [10Xy*[3Xx[103X[10X*y=y[110X. The element [3Xx[103X
has an inverse if and only if [3Xx[103X is a regular element of [3XS[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS := Semigroup([[127X[104X
[4X[25X>[125X [27X Transformation([3, 1, 4, 2, 5, 2, 1, 6, 1]), [127X[104X
[4X[25X>[125X [27X Transformation([5, 7, 8, 8, 7, 5, 9, 1, 9]), [127X[104X
[4X[25X>[125X [27X Transformation([7, 6, 2, 8, 4, 7, 5, 8, 3])]);[127X[104X
[4X[28X<transformation semigroup of degree 9 with 3 generators>[128X[104X
[4X[25Xgap>[125X [27Xx := Transformation([3, 1, 4, 2, 5, 2, 1, 6, 1]);;[127X[104X
[4X[25Xgap>[125X [27XInversesOfSemigroupElement(S, x);[127X[104X
[4X[28X[ ][128X[104X
[4X[25Xgap>[125X [27XIsRegularSemigroupElement(S, x);[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xx := Transformation([1, 9, 7, 5, 5, 1, 9, 5, 1]);;[127X[104X
[4X[25Xgap>[125X [27XSet(InversesOfSemigroupElement(S, x));[127X[104X
[4X[28X[ Transformation( [ 1, 2, 3, 5, 5, 1, 3, 5, 2 ] ), [128X[104X
[4X[28X Transformation( [ 1, 5, 1, 1, 5, 1, 3, 1, 2 ] ), [128X[104X
[4X[28X Transformation( [ 1, 5, 1, 2, 5, 1, 3, 2, 2 ] ) ][128X[104X
[4X[25Xgap>[125X [27XIsRegularSemigroupElement(S, x);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XS := ReesZeroMatrixSemigroup(Group((1,2,3)),[127X[104X
[4X[25X>[125X [27X [[(), ()], [(), 0], [(), (1,2,3)]]);;[127X[104X
[4X[25Xgap>[125X [27Xx := ReesZeroMatrixSemigroupElement(S, 2, (1,2,3), 3);;[127X[104X
[4X[25Xgap>[125X [27XInversesOfSemigroupElement(S, x);[127X[104X
[4X[28X[ (1,(1,2,3),3), (1,(1,3,2),1), (2,(),3), (2,(1,2,3),1) ][128X[104X
[4X[32X[104X
[1X51.4-4 IsSimpleSemigroup[101X
[33X[1;0Y[29X[2XIsSimpleSemigroup[102X( [3XS[103X ) [32X property[133X
[33X[0;0Yis [9Xtrue[109X if and only if the semigroup [3XS[103X has no proper ideals.[133X
[1X51.4-5 IsZeroSimpleSemigroup[101X
[33X[1;0Y[29X[2XIsZeroSimpleSemigroup[102X( [3XS[103X ) [32X property[133X
[33X[0;0Yis [9Xtrue[109X if and only if the semigroup has no proper ideals except for 0,
where [3XS[103X is a semigroup with zero. If the semigroup does not find its zero,
then a break-loop is entered.[133X
[1X51.4-6 IsZeroGroup[101X
[33X[1;0Y[29X[2XIsZeroGroup[102X( [3XS[103X ) [32X property[133X
[33X[0;0Yis [9Xtrue[109X if and only if the semigroup [3XS[103X is a group with zero adjoined.[133X
[1X51.4-7 IsReesCongruenceSemigroup[101X
[33X[1;0Y[29X[2XIsReesCongruenceSemigroup[102X( [3XS[103X ) [32X property[133X
[33X[0;0Yreturns [9Xtrue[109X if [3XS[103X is a Rees Congruence semigroup, that is, if all
congruences of [3XS[103X are Rees Congruences.[133X
[1X51.4-8 IsInverseSemigroup[101X
[33X[1;0Y[29X[2XIsInverseSemigroup[102X( [3XS[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsInverseMonoid[102X( [3XS[103X ) [32X Category[133X
[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0YA semigroup [3XS[103X is an [13Xinverse semigroup[113X if every element [10Xx[110X in [3XS[103X has a unique
semigroup inverse, that is, a unique element [10Xy[110X in [3XS[103X such that [10Xx*y*x=x[110X and
[10Xy*x*y=y[110X.[133X
[33X[0;0YA monoid that happens to be an inverse semigroup is called an [13Xinverse
monoid[113X; see [2XIsMonoid[102X ([14X51.2-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS := Semigroup([[127X[104X
[4X[25X>[125X [27X Transformation([1, 2, 4, 5, 6, 3, 7, 8]),[127X[104X
[4X[25X>[125X [27X Transformation([3, 3, 4, 5, 6, 2, 7, 8]),[127X[104X
[4X[25X>[125X [27X Transformation([1, 2, 5, 3, 6, 8, 4, 4])]);;[127X[104X
[4X[25Xgap>[125X [27XIsInverseSemigroup(S);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X51.5 [33X[0;0YIdeals of semigroups[133X[101X
[33X[0;0YIdeals of semigroups are the same as ideals of the semigroup when considered
as a magma. For documentation on ideals for magmas, see [2XMagma[102X ([14X35.2-1[114X).[133X
[1X51.5-1 SemigroupIdealByGenerators[101X
[33X[1;0Y[29X[2XSemigroupIdealByGenerators[102X( [3XS[103X, [3Xgens[103X ) [32X operation[133X
[33X[0;0Y[3XS[103X is a semigroup, [3Xgens[103X is a list of elements of [3XS[103X. Returns the two-sided
ideal of [3XS[103X generated by [3Xgens[103X.[133X
[1X51.5-2 ReesCongruenceOfSemigroupIdeal[101X
[33X[1;0Y[29X[2XReesCongruenceOfSemigroupIdeal[102X( [3XI[103X ) [32X attribute[133X
[33X[0;0YA two sided ideal [3XI[103X of a semigroup [3XS[103X defines a congruence on [3XS[103X given by [22X∆ ∪
I × I[122X.[133X
[1X51.5-3 IsLeftSemigroupIdeal[101X
[33X[1;0Y[29X[2XIsLeftSemigroupIdeal[102X( [3XI[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsRightSemigroupIdeal[102X( [3XI[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsSemigroupIdeal[102X( [3XI[103X ) [32X property[133X
[33X[0;0YCategories of semigroup ideals.[133X
[1X51.6 [33X[0;0YCongruences for semigroups[133X[101X
[33X[0;0YAn equivalence or a congruence on a semigroup is the equivalence or
congruence on the semigroup considered as a magma. So, to deal with
equivalences and congruences on semigroups, magma functions are used. For
documentation on equivalences and congruences for magmas, see [2XMagma[102X
([14X35.2-1[114X).[133X
[1X51.6-1 IsSemigroupCongruence[101X
[33X[1;0Y[29X[2XIsSemigroupCongruence[102X( [3Xc[103X ) [32X property[133X
[33X[0;0Ya magma congruence [3Xc[103X on a semigroup.[133X
[1X51.6-2 IsReesCongruence[101X
[33X[1;0Y[29X[2XIsReesCongruence[102X( [3Xc[103X ) [32X property[133X
[33X[0;0Yreturns [9Xtrue[109X if and only if the congruence [3Xc[103X has at most one nonsingleton
congruence class.[133X
[1X51.7 [33X[0;0YQuotients[133X[101X
[33X[0;0YGiven a semigroup and a congruence on the semigroup, one can construct a new
semigroup: the quotient semigroup. The following functions deal with
quotient semigroups in [5XGAP[105X. For a semigroup [22XS[122X, elements of a quotient
semigroup are equivalence classes of elements of the
[2XQuotientSemigroupPreimage[102X ([14X51.7-3[114X) value under the congruence given by the
value of [2XQuotientSemigroupCongruence[102X ([14X51.7-3[114X).[133X
[33X[0;0YIt is probably most useful for calculating the elements of the equivalence
classes by using [2XElements[102X ([14X30.3-11[114X) or by looking at the images of elements
of [2XQuotientSemigroupPreimage[102X ([14X51.7-3[114X) under the map returned by
[2XQuotientSemigroupHomomorphism[102X ([14X51.7-3[114X), which maps the
[2XQuotientSemigroupPreimage[102X ([14X51.7-3[114X) value to [3XS[103X.[133X
[33X[0;0YFor intensive computations in a quotient semigroup, it is probably
worthwhile finding another representation as the equality test could involve
enumeration of the elements of the congruence classes being compared.[133X
[1X51.7-1 IsQuotientSemigroup[101X
[33X[1;0Y[29X[2XIsQuotientSemigroup[102X( [3XS[103X ) [32X Category[133X
[33X[0;0Yis the category of semigroups constructed from another semigroup and a
congruence on it.[133X
[1X51.7-2 HomomorphismQuotientSemigroup[101X
[33X[1;0Y[29X[2XHomomorphismQuotientSemigroup[102X( [3Xcong[103X ) [32X function[133X
[33X[0;0Yfor a congruence [3Xcong[103X and a semigroup [3XS[103X. Returns the homomorphism from [3XS[103X to
the quotient of [3XS[103X by [3Xcong[103X.[133X
[1X51.7-3 QuotientSemigroupPreimage[101X
[33X[1;0Y[29X[2XQuotientSemigroupPreimage[102X( [3XS[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XQuotientSemigroupCongruence[102X( [3XS[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XQuotientSemigroupHomomorphism[102X( [3XS[103X ) [32X attribute[133X
[33X[0;0Yfor a quotient semigroup [3XS[103X.[133X
[1X51.8 [33X[0;0YGreen's Relations[133X[101X
[33X[0;0YGreen's equivalence relations play a very important role in semigroup
theory. In this section we describe how they can be used in [5XGAP[105X.[133X
[33X[0;0YThe five Green's relations are [22XR[122X, [22XL[122X, [22XJ[122X, [22XH[122X, [22XD[122X: two elements [22Xx[122X, [22Xy[122X from a
semigroup [22XS[122X are [22XR[122X-related if and only if [22XxS^1 = yS^1[122X, [22XL[122X-related if and only
if [22XS^1 x = S^1 y[122X and [22XJ[122X-related if and only if [22XS^1 xS^1 = S^1 yS^1[122X; finally,
[22XH = R ∧ L[122X, and [22XD = R ∘ L[122X.[133X
[33X[0;0YRecall that relations [22XR[122X, [22XL[122X and [22XJ[122X induce a partial order among the elements
of the semigroup [22XS[122X: for two elements [22Xx[122X, [22Xy[122X from [22XS[122X, we say that [22Xx[122X is less than
or equal to [22Xy[122X in the order on [22XR[122X if [22XxS^1 ⊆ yS^1[122X; similarly, [22Xx[122X is less than or
equal to [22Xy[122X under [22XL[122X if [22XS^1x ⊆ S^1y[122X; finally [22Xx[122X is less than or equal to [22Xy[122X
under [22XJ[122X if [22XS^1 xS^1 ⊆ S^1 tS^1[122X. We extend this preorder to a partial order
on equivalence classes in the natural way.[133X
[1X51.8-1 GreensRRelation[101X
[33X[1;0Y[29X[2XGreensRRelation[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensLRelation[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensJRelation[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensDRelation[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensHRelation[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[0;0YThe Green's relations (which are equivalence relations) are attributes of
the semigroup [3Xsemigroup[103X.[133X
[1X51.8-2 IsGreensRelation[101X
[33X[1;0Y[29X[2XIsGreensRelation[102X( [3Xbin-relation[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensRRelation[102X( [3Xequiv-relation[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensLRelation[102X( [3Xequiv-relation[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensJRelation[102X( [3Xequiv-relation[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensHRelation[102X( [3Xequiv-relation[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensDRelation[102X( [3Xequiv-relation[103X ) [32X filter[133X
[33X[0;0YCategories for the Green's relations.[133X
[1X51.8-3 IsGreensClass[101X
[33X[1;0Y[29X[2XIsGreensClass[102X( [3Xequiv-class[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensRClass[102X( [3Xequiv-class[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensLClass[102X( [3Xequiv-class[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensJClass[102X( [3Xequiv-class[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensHClass[102X( [3Xequiv-class[103X ) [32X filter[133X
[33X[1;0Y[29X[2XIsGreensDClass[102X( [3Xequiv-class[103X ) [32X filter[133X
[33X[0;0Yreturn [9Xtrue[109X if the equivalence class [3Xequiv-class[103X is a Green's class of any
type, or of [22XR[122X, [22XL[122X, [22XJ[122X, [22XH[122X, [22XD[122X type, respectively, or [9Xfalse[109X otherwise.[133X
[1X51.8-4 IsGreensLessThanOrEqual[101X
[33X[1;0Y[29X[2XIsGreensLessThanOrEqual[102X( [3XC1[103X, [3XC2[103X ) [32X operation[133X
[33X[0;0Yreturns [9Xtrue[109X if the Green's class [3XC1[103X is less than or equal to [3XC2[103X under the
respective ordering (as defined above), and [9Xfalse[109X otherwise.[133X
[33X[0;0YOnly defined for [22XR[122X, [22XL[122X and [22XJ[122X classes.[133X
[1X51.8-5 RClassOfHClass[101X
[33X[1;0Y[29X[2XRClassOfHClass[102X( [3XH[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XLClassOfHClass[102X( [3XH[103X ) [32X attribute[133X
[33X[0;0Yare attributes reflecting the natural ordering over the various Green's
classes. [2XRClassOfHClass[102X and [2XLClassOfHClass[102X return the [22XR[122X and [22XL[122X classes,
respectively, in which an [22XH[122X class is contained.[133X
[1X51.8-6 EggBoxOfDClass[101X
[33X[1;0Y[29X[2XEggBoxOfDClass[102X( [3XDclass[103X ) [32X attribute[133X
[33X[0;0Yreturns for a Green's [22XD[122X class [3XDclass[103X a matrix whose rows represent [22XR[122X classes
and columns represent [22XL[122X classes. The entries are the [22XH[122X classes.[133X
[1X51.8-7 DisplayEggBoxOfDClass[101X
[33X[1;0Y[29X[2XDisplayEggBoxOfDClass[102X( [3XDclass[103X ) [32X function[133X
[33X[0;0Ydisplays a [21Xpicture[121X of the [22XD[122X class [3XDclass[103X, as an array of 1s and 0s. A 1
represents a group [22XH[122X class.[133X
[1X51.8-8 GreensRClassOfElement[101X
[33X[1;0Y[29X[2XGreensRClassOfElement[102X( [3XS[103X, [3Xa[103X ) [32X operation[133X
[33X[1;0Y[29X[2XGreensLClassOfElement[102X( [3XS[103X, [3Xa[103X ) [32X operation[133X
[33X[1;0Y[29X[2XGreensDClassOfElement[102X( [3XS[103X, [3Xa[103X ) [32X operation[133X
[33X[1;0Y[29X[2XGreensJClassOfElement[102X( [3XS[103X, [3Xa[103X ) [32X operation[133X
[33X[1;0Y[29X[2XGreensHClassOfElement[102X( [3XS[103X, [3Xa[103X ) [32X operation[133X
[33X[0;0YCreates the [22XX[122X class of the element [3Xa[103X in the semigroup [3XS[103X where [22XX[122X is one of [22XL[122X,
[22XR[122X, [22XD[122X, [22XJ[122X, or [22XH[122X.[133X
[1X51.8-9 GreensRClasses[101X
[33X[1;0Y[29X[2XGreensRClasses[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensLClasses[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensJClasses[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensDClasses[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGreensHClasses[102X( [3Xsemigroup[103X ) [32X attribute[133X
[33X[0;0Yreturn the [22XR[122X, [22XL[122X, [22XJ[122X, [22XH[122X, or [22XD[122X Green's classes, respectively for semigroup
[3Xsemigroup[103X. [2XEquivalenceClasses[102X ([14X33.7-3[114X) for a Green's relation lead to one of
these functions.[133X
[1X51.8-10 GroupHClassOfGreensDClass[101X
[33X[1;0Y[29X[2XGroupHClassOfGreensDClass[102X( [3XDclass[103X ) [32X attribute[133X
[33X[0;0Yfor a [22XD[122X class [3XDclass[103X of a semigroup, returns a group [22XH[122X class of the [22XD[122X class,
or [9Xfail[109X if there is no group [22XH[122X class.[133X
[1X51.8-11 IsGroupHClass[101X
[33X[1;0Y[29X[2XIsGroupHClass[102X( [3XHclass[103X ) [32X property[133X
[33X[0;0Yreturns [9Xtrue[109X if the Green's [22XH[122X class [3XHclass[103X is a group, which in turn is true
if and only if [3XHclass[103X[22X^2[122X intersects [3XHclass[103X.[133X
[1X51.8-12 IsRegularDClass[101X
[33X[1;0Y[29X[2XIsRegularDClass[102X( [3XDclass[103X ) [32X property[133X
[33X[0;0Yreturns [9Xtrue[109X if the Greens [22XD[122X class [3XDclass[103X is regular. A [22XD[122X class is regular
if and only if each of its elements is regular, which in turn is true if and
only if any one element of [3XDclass[103X is regular. Idempotents are regular since
[22Xeee = e[122X so it follows that a Green's [22XD[122X class containing an idempotent is
regular. Conversely, it is true that a regular [22XD[122X class must contain at least
one idempotent. (See [How76, Prop. 3.2].)[133X
[1X51.8-13 DisplaySemigroup[101X
[33X[1;0Y[29X[2XDisplaySemigroup[102X( [3XS[103X ) [32X operation[133X
[33X[0;0YProduces a convenient display of a transformation semigroup's D-Class
structure. Let [3XS[103X be a transformation semigroup of degree [22Xn[122X. Then for each [22Xr≤
n[122X, we show all D-classes of rank [22Xr[122X.[133X
[33X[0;0YA regular D-class with a single H-class of size 120 appears as[133X
[4X[32X Example [32X[104X
[4X[28X*[H size = 120, 1 L-class, 1 R-class] [128X[104X
[4X[32X[104X
[33X[0;0Y(the [10X*[110X denoting regularity).[133X
[1X51.9 [33X[0;0YRees Matrix Semigroups[133X[101X
[33X[0;0YIn this section, we describe the functions in [5XGAP[105X for Rees matrix and
0-matrix semigroups and their subsemigroups. The importance of these
semigroups lies in the fact that Rees matrix semigroups over groups are
exactly the completely simple semigroups, and Rees 0-matrix semigroups over
groups are the completely 0-simple semigroups.[133X
[33X[0;0YLet [22XI[122X and [22XJ[122X be sets, let [22XS[122X be a semigroup, and let [22XP=(p_ji)_j∈ J, i∈ I[122X be a
[22X|J|× |I|[122X matrix with entries in [22XS[122X. Then the [13XRees matrix semigroup[113X with
underlying semigroup [22XS[122X and matrix [22XP[122X is just the direct product [22XI× S × J[122X with
multiplication defined by[133X
[24X[33X[0;6Y(i, s, j)(k, t, l)=(i,s\cdot p_{j,k}\cdot t, l).[133X
[124X
[33X[0;0YRees 0-matrix semigroups are defined as follows. If [22XI[122X, [22XJ[122X, [22XS[122X, and [22XP[122X are as
above and [22X0[122X denotes a new element, then the [13XRees 0-matrix semigroup[113X with
underlying semigroup [22XS[122X and matrix [22XP[122X is [22X(I× S× J)∪ {0}[122X with multiplication
defined by[133X
[24X[33X[0;6Y(i, s, j)(k, t, l)=(i, s\cdot p_{j,k}\cdot t, l)[133X
[124X
[33X[0;0Ywhen [22Xp_j,k[122X is not [22X0[122X and [22X0[122X if [22Xp_j,k[122X is 0.[133X
[33X[0;0YIf [22XR[122X is a Rees matrix or 0-matrix semigroup, then the [13Xrows[113X of [22XR[122X is the index
set [22XI[122X, the [13Xcolumns[113X of [22XR[122X is the index set [22XJ[122X, the semigroup [22XS[122X is the
[13Xunderlying semigroup[113X of [22XR[122X, and the [13Xmatrix[113X [22XP[122X is the matrix of [22XS[122X.[133X
[33X[0;0YThoroughout this section, wherever the distinction is unimportant, we will
refer to Rees matrix or 0-matrix semigroups collectively as Rees matrix
semigroups.[133X
[33X[0;0YMultiplication of elements of a Rees matrix semigroup obviously depends on
the matrix used to create the semigroup. Hence elements of a Rees matrix
semigroup can only be created with reference to the semigroup to which they
belong. More specifically, every collection or semigroup of Rees matrix
semigroup elements is created from a specific Rees matrix semigroup, which
contains the whole family of its elements. So, it is not possible to
multiply or compare elements belonging to distinct Rees matrix semigroups,
since they belong to different families. This situation is similar to, say,
free groups, and different to, say, permutations, which belong to a single
family, and where arbitrary permutations can be compared and multiplied
without reference to any group containing them.[133X
[33X[0;0YA subsemigroup of a Rees matrix semigroup is not necessarily a Rees matrix
semigroup. Every semigroup consisting of elements of a Rees matrix semigroup
satisfies the property [2XIsReesMatrixSubsemigroup[102X ([14X51.9-6[114X) and every semigroup
of Rees 0-matrix semigroup elements satisfies [2XIsReesZeroMatrixSubsemigroup[102X
([14X51.9-6[114X).[133X
[33X[0;0YRees matrix and 0-matrix semigroups can be created using the operations
[2XReesMatrixSemigroup[102X ([14X51.9-1[114X) and [2XReesZeroMatrixSemigroup[102X ([14X51.9-1[114X),
respectively, from an underlying semigroup and a matrix. Rees matrix
semigroups created in this way contain the whole family of their elements.
Every element of a Rees matrix semigroup belongs to a unique semigroup
created in this way; every subsemigroup of a Rees matrix semigroup is a
subsemigroup of a unique semigroup created in this way.[133X
[33X[0;0YSubsemigroups of Rees matrix semigroups can also be created by specifying
generators. A subsemigroup of a Rees matrix semigroup [22XI× U× J[122X satisfies
[2XIsReesMatrixSemigroup[102X ([14X51.9-7[114X) if and only if it is equal to [22XI'× U'× J'[122X
where [22XI'⊆ I[122X, [22XJ'⊆ J[122X, and [22XU'[122X is a subsemigroup of [22XU[122X. The analogous statements
holds for Rees 0-matrix semigroups.[133X
[33X[0;0YIt is not necessarily the case that a simple subsemigroups of Rees matrix
semigroups satisfies [2XIsReesMatrixSemigroup[102X ([14X51.9-7[114X). A Rees matrix semigroup
is simple if and only if its underlying semigroup is simple. A finite
semigroup is simple if and only if it is isomorphic to a Rees matrix
semigroup over a group; this isomorphism can be obtained explicitly using
[2XIsomorphismReesMatrixSemigroup[102X ([14X51.9-3[114X).[133X
[33X[0;0YSimilarly, 0-simple subsemigroups of Rees 0-matrix semigroups do not have to
satisfy [2XIsReesZeroMatrixSemigroup[102X ([14X51.9-7[114X). A Rees 0-matrix semigroup with
more than 2 elements is 0-simple if and only if every row and every column
of its matrix contains a non-zero entry, and its underlying semigroup is
simple. A finite semigroup is 0-simple if and only if it is isomorphic to a
Rees 0-matrix semigroup over a group; again this isomorphism can be found by
using [2XIsomorphismReesZeroMatrixSemigroup[102X ([14X51.9-3[114X).[133X
[33X[0;0YElements of a Rees matrix or 0-matrix semigroup belong to the categories
[2XIsReesMatrixSemigroupElement[102X ([14X51.9-4[114X) and [2XIsReesZeroMatrixSemigroupElement[102X
([14X51.9-4[114X), respectively. Such elements can be created directly using the
functions [2XReesMatrixSemigroupElement[102X ([14X51.9-5[114X) and
[2XReesZeroMatrixSemigroupElement[102X ([14X51.9-5[114X).[133X
[33X[0;0YA semigroup in [5XGAP[105X can either satisfies [2XIsReesMatrixSemigroup[102X ([14X51.9-7[114X) or
[2XIsReesZeroMatrixSemigroup[102X ([14X51.9-7[114X) but not both.[133X
[1X51.9-1 ReesMatrixSemigroup[101X
[33X[1;0Y[29X[2XReesMatrixSemigroup[102X( [3XS[103X, [3Xmat[103X ) [32X operation[133X
[33X[1;0Y[29X[2XReesZeroMatrixSemigroup[102X( [3XS[103X, [3Xmat[103X ) [32X operation[133X
[6XReturns:[106X [33X[0;10YA Rees matrix or 0-matrix semigroup.[133X
[33X[0;0YWhen [3XS[103X is a semigroup and [3Xmat[103X is an [10Xm[110X by [10Xn[110X matrix with entries in [3XS[103X, the
function [10XReesMatrixSemigroup[110X returns the [10Xn[110X by [10Xm[110X Rees matrix semigroup over [3XS[103X
with multiplication defined by [3Xmat[103X.[133X
[33X[0;0YThe arguments of [10XReesZeroMatrixSemigroup[110X should be a semigroup [3XS[103X and an [10Xm[110X by
[10Xn[110X matrix [3Xmat[103X with entries in [3XS[103X or equal to the integer [10X0[110X.
[10XReesZeroMatrixSemigroup[110X returns the [10Xn[110X by [10Xm[110X Rees 0-matrix semigroup over [3XS[103X
with multiplication defined by [3Xmat[103X. In [5XGAP[105X a Rees 0-matrix semigroup always
contains a multiplicative zero element, regardless of whether there are any
entries in [3Xmat[103X which are equal to [10X0[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=Random(AllGroups(Size, 32));;[127X[104X
[4X[25Xgap>[125X [27Xmat:=List([1..5], x-> List([1..3], y-> Random(G)));;[127X[104X
[4X[25Xgap>[125X [27XS:=ReesMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees matrix semigroup 3x5 over <pc group of size 32 with [128X[104X
[4X[28X 5 generators>>[128X[104X
[4X[25Xgap>[125X [27Xmat:=[[(), 0, (), ()], [0, 0, 0, 0]];;[127X[104X
[4X[25Xgap>[125X [27XS:=ReesZeroMatrixSemigroup(DihedralGroup(IsPermGroup, 8), mat);[127X[104X
[4X[28X<Rees 0-matrix semigroup 4x2 over Group([ (1,2,3,4), (2,4) ])>[128X[104X
[4X[32X[104X
[1X51.9-2 ReesMatrixSubsemigroup[101X
[33X[1;0Y[29X[2XReesMatrixSubsemigroup[102X( [3XR[103X, [3XI[103X, [3XU[103X, [3XJ[103X ) [32X operation[133X
[33X[1;0Y[29X[2XReesZeroMatrixSubsemigroup[102X( [3XR[103X, [3XI[103X, [3XU[103X, [3XJ[103X ) [32X operation[133X
[6XReturns:[106X [33X[0;10YA Rees matrix or 0-matrix subsemigroup.[133X
[33X[0;0YThe arguments of [10XReesMatrixSubsemigroup[110X should be a Rees matrix semigroup [3XR[103X,
subsets [3XI[103X and [3XJ[103X of the rows and columns of [3XR[103X, respectively, and a
subsemigroup [3XS[103X of the underlying semigroup of [3XR[103X. [10XReesMatrixSubsemigroup[110X
returns the subsemigroup of [3XR[103X generated by the direct product of [3XI[103X, [3XU[103X, and
[3XJ[103X.[133X
[33X[0;0YThe usage and returned value of [10XReesZeroMatrixSubsemigroup[110X is analogous when
[3XR[103X is a Rees 0-matrix semigroup.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=CyclicGroup(IsPermGroup, 1007);;[127X[104X
[4X[25Xgap>[125X [27Xmat:=[[(), 0, 0], [0, (), 0], [0, 0, ()], [127X[104X
[4X[25X>[125X [27X[(), (), ()], [0, 0, ()]];;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesZeroMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees 0-matrix semigroup 3x5 over [128X[104X
[4X[28X <permutation group of size 1007 with 1 generators>>[128X[104X
[4X[25Xgap>[125X [27XReesZeroMatrixSubsemigroup(R, [1,3], G, [1..5]);[127X[104X
[4X[28X<Rees 0-matrix semigroup 2x5 over [128X[104X
[4X[28X <permutation group of size 1007 with 1 generators>>[128X[104X
[4X[32X[104X
[1X51.9-3 IsomorphismReesMatrixSemigroup[101X
[33X[1;0Y[29X[2XIsomorphismReesMatrixSemigroup[102X( [3XS[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XIsomorphismReesZeroMatrixSemigroup[102X( [3XS[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YAn isomorphism.[133X
[33X[0;0YEvery finite simple semigroup is isomorphic to a Rees matrix semigroup over
a group, and every finite 0-simple semigroup is isomorphic to a Rees
0-matrix semigroup over a group.[133X
[33X[0;0YIf the argument [3XS[103X is a simple semigroup, then [10XIsomorphismReesMatrixSemigroup[110X
returns an isomorphism to a Rees matrix semigroup over a group. If [3XS[103X is not
simple, then [10XIsomorphismReesMatrixSemigroup[110X returns an error.[133X
[33X[0;0YIf the argument [3XS[103X is a 0-simple semigroup, then
[10XIsomorphismReesZeroMatrixSemigroup[110X returns an isomorphism to a Rees 0-matrix
semigroup over a group. If [3XS[103X is not 0-simple, then
[10XIsomorphismReesMatrixSemigroup[110X returns an error.[133X
[33X[0;0YSee [2XIsSimpleSemigroup[102X ([14X51.4-4[114X) and [2XIsZeroSimpleSemigroup[102X ([14X51.4-5[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS := Semigroup(Transformation([2, 1, 1, 2, 1]), [127X[104X
[4X[25X>[125X [27X Transformation([3, 4, 3, 4, 4]), [127X[104X
[4X[25X>[125X [27X Transformation([3, 4, 3, 4, 3]), [127X[104X
[4X[25X>[125X [27X Transformation([4, 3, 3, 4, 4]));;[127X[104X
[4X[25Xgap>[125X [27XIsSimpleSemigroup(S);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XRange(IsomorphismReesMatrixSemigroup(S));[127X[104X
[4X[28X<Rees matrix semigroup 4x2 over Group([ (1,2) ])>[128X[104X
[4X[25Xgap>[125X [27Xmat := [[(), 0, 0], [127X[104X
[4X[25X>[125X [27X [0, (), 0], [127X[104X
[4X[25X>[125X [27X [0, 0, ()]];;[127X[104X
[4X[25Xgap>[125X [27XR := ReesZeroMatrixSemigroup(Group((1,2,4,5,6)), mat);[127X[104X
[4X[28X<Rees 0-matrix semigroup 3x3 over Group([ (1,2,4,5,6) ])>[128X[104X
[4X[25Xgap>[125X [27XU := ReesZeroMatrixSubsemigroup(R, [1, 2], Group(()), [2, 3]);[127X[104X
[4X[28X<subsemigroup of 3x3 Rees 0-matrix semigroup with 4 generators>[128X[104X
[4X[25Xgap>[125X [27XIsZeroSimpleSemigroup(U);[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XU := ReesZeroMatrixSubsemigroup(R, [2, 3], Group(()), [2, 3]);[127X[104X
[4X[28X<subsemigroup of 3x3 Rees 0-matrix semigroup with 3 generators>[128X[104X
[4X[25Xgap>[125X [27XIsZeroSimpleSemigroup(U);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XRows(U); Columns(U);[127X[104X
[4X[28X[ 2, 3 ][128X[104X
[4X[28X[ 2, 3 ][128X[104X
[4X[25Xgap>[125X [27XV := Range(IsomorphismReesZeroMatrixSemigroup(U));[127X[104X
[4X[28X<Rees 0-matrix semigroup 2x2 over Group(())>[128X[104X
[4X[25Xgap>[125X [27XRows(V); Columns(V); [127X[104X
[4X[28X[ 1, 2 ][128X[104X
[4X[28X[ 1, 2 ][128X[104X
[4X[32X[104X
[1X51.9-4 IsReesMatrixSemigroupElement[101X
[33X[1;0Y[29X[2XIsReesMatrixSemigroupElement[102X( [3Xelt[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsReesZeroMatrixSemigroupElement[102X( [3Xelt[103X ) [32X Category[133X
[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0YEvery element of a Rees matrix semigroup belongs to the category
[10XIsReesMatrixSemigroupElement[110X, and every element of a Rees 0-matrix semigroup
belongs to the category [10XIsReesZeroMatrixSemigroupElement[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=Group((1,2,3));;[127X[104X
[4X[25Xgap>[125X [27Xmat:=[ [ (), (1,3,2) ], [ (1,3,2), () ] ];;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees matrix semigroup 2x2 over Group([ (1,2,3) ])>[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfSemigroup(R);[127X[104X
[4X[28X[ (1,(1,2,3),1), (2,(),2) ][128X[104X
[4X[25Xgap>[125X [27XIsReesMatrixSemigroupElement(last[1]);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsReesZeroMatrixSemigroupElement(last2[1]);[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X51.9-5 ReesMatrixSemigroupElement[101X
[33X[1;0Y[29X[2XReesMatrixSemigroupElement[102X( [3XR[103X, [3Xi[103X, [3Xx[103X, [3Xj[103X ) [32X function[133X
[33X[1;0Y[29X[2XReesZeroMatrixSemigroupElement[102X( [3XR[103X, [3Xi[103X, [3Xx[103X, [3Xj[103X ) [32X function[133X
[6XReturns:[106X [33X[0;10YAn element of a Rees matrix or [10X0[110X-matrix semigroup.[133X
[33X[0;0YThe arguments of [3XReesMatrixSemigroupElement[103X should be a Rees matrix
subsemigroup [3XR[103X, elements [3Xi[103X and [3Xj[103X of the the rows and columns of [3XR[103X,
respectively, and an element [3Xx[103X of the underlying semigroup of [3XR[103X.
[10XReesMatrixSemigroupElement[110X returns the element of [3XR[103X with row index [3Xi[103X,
underlying element [3Xx[103X in the underlying semigroup of [3XR[103X, and column index [3Xj[103X,
if such an element exist, if such an element exists.[133X
[33X[0;0YThe usage of [10XReesZeroMatrixSemigroupElement[110X is analogous to that of
[10XReesMatrixSemigroupElement[110X, when [3XR[103X is a Rees 0-matrix semigroup.[133X
[33X[0;0YThe row [3Xi[103X, underlying element [3Xx[103X, and column [3Xj[103X of an element [10Xy[110X of a Rees
matrix (or 0-matrix) semigroup can be recovered from [10Xy[110X using [10Xy[1][110X, [10Xy[2][110X, and
[10Xy[3][110X, respectively.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=Group((1,2,3));;[127X[104X
[4X[25Xgap>[125X [27Xmat:=[ [ 0, () ], [ (1,3,2), (1,3,2) ] ];;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesZeroMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees 0-matrix semigroup 2x2 over Group([ (1,2,3) ])>[128X[104X
[4X[25Xgap>[125X [27XReesZeroMatrixSemigroupElement(R, 1, (1,2,3), 2);[127X[104X
[4X[28X(1,(1,2,3),2)[128X[104X
[4X[25Xgap>[125X [27XMultiplicativeZero(R);[127X[104X
[4X[28X0[128X[104X
[4X[32X[104X
[1X51.9-6 IsReesMatrixSubsemigroup[101X
[33X[1;0Y[29X[2XIsReesMatrixSubsemigroup[102X( [3XR[103X ) [32X Synonym[133X
[33X[1;0Y[29X[2XIsReesZeroMatrixSubsemigroup[102X( [3XR[103X ) [32X Synonym[133X
[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0YEvery semigroup consisting of elements of a Rees matrix semigroup satisfies
the property [2XIsReesMatrixSubsemigroup[102X and every semigroup of Rees 0-matrix
semigroup elements satisfies [2XIsReesZeroMatrixSubsemigroup[102X.[133X
[33X[0;0YNote that a subsemigroup of a Rees matrix semigroup is not necessarily a
Rees matrix semigroup.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=DihedralGroup(32);;[127X[104X
[4X[25Xgap>[125X [27Xmat:=List([1..2], x-> List([1..10], x-> Random(G)));;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees matrix semigroup 10x2 over <pc group of size 32 with [128X[104X
[4X[28X 5 generators>>[128X[104X
[4X[25Xgap>[125X [27XS:=Semigroup(GeneratorsOfSemigroup(R)); [127X[104X
[4X[28X<subsemigroup of 10x2 Rees matrix semigroup with 14 generators>[128X[104X
[4X[25Xgap>[125X [27XIsReesMatrixSubsemigroup(S); [127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XS:=Semigroup(GeneratorsOfSemigroup(R)[1]);[127X[104X
[4X[28X<subsemigroup of 10x2 Rees matrix semigroup with 1 generator>[128X[104X
[4X[25Xgap>[125X [27XIsReesMatrixSubsemigroup(S);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X51.9-7 IsReesMatrixSemigroup[101X
[33X[1;0Y[29X[2XIsReesMatrixSemigroup[102X( [3XR[103X ) [32X property[133X
[33X[1;0Y[29X[2XIsReesZeroMatrixSemigroup[102X( [3XR[103X ) [32X property[133X
[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
[33X[0;0YA subsemigroup of a Rees matrix semigroup [22XI× U× J[122X satisfies
[2XIsReesMatrixSemigroup[102X if and only if it is equal to [22XI'× U'× J'[122X where [22XI'⊆ I[122X,
[22XJ'⊆ J[122X, and [22XU'[122X is a subsemigroup of [22XU[122X. It can be costly to check that a
subsemigroup defined by generators satisfies [10XIsReesMatrixSemigroup[110X. The
analogous statements holds for Rees 0-matrix semigroups.[133X
[33X[0;0YIt is not necessarily the case that a simple subsemigroups of Rees matrix
semigroups satisfies [2XIsReesMatrixSemigroup[102X. A Rees matrix semigroup is
simple if and only if its underlying semigroup is simple. A finite semigroup
is simple if and only if it is isomorphic to a Rees matrix semigroup over a
group; this isomorphism can be obtained explicitly using
[2XIsomorphismReesMatrixSemigroup[102X ([14X51.9-3[114X).[133X
[33X[0;0YSimilarly, 0-simple subsemigroups of Rees 0-matrix semigroups do not have to
satisfy [2XIsReesZeroMatrixSemigroup[102X. A Rees 0-matrix semigroup with more than
2 elements is 0-simple if and only if every row and every column of its
matrix contains a non-zero entry, and its underlying semigroup is simple. A
finite semigroup is 0-simple if and only if it is isomorphic to a Rees
0-matrix semigroup over a group; again this isomorphism can be found by
using [2XIsomorphismReesMatrixSemigroup[102X ([14X51.9-3[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=PSL(2,5);;[127X[104X
[4X[25Xgap>[125X [27Xmat:=[ [ 0, (), 0, (2,6,3,5,4) ], [127X[104X
[4X[25X>[125X [27X[ (), 0, (), 0 ], [ 0, 0, 0, () ] ];;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesZeroMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees 0-matrix semigroup 4x3 over Group([ (3,5)(4,6), (1,2,5)[128X[104X
[4X[28X(3,4,6) ])>[128X[104X
[4X[25Xgap>[125X [27XIsReesZeroMatrixSemigroup(R);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XU:=ReesZeroMatrixSubsemigroup(R, [1..3], Group(()), [1..2]);[127X[104X
[4X[28X<subsemigroup of 4x3 Rees 0-matrix semigroup with 4 generators>[128X[104X
[4X[25Xgap>[125X [27XIsReesZeroMatrixSemigroup(U);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XV:=Semigroup(GeneratorsOfSemigroup(U));[127X[104X
[4X[28X<subsemigroup of 4x3 Rees 0-matrix semigroup with 4 generators>[128X[104X
[4X[25Xgap>[125X [27XIsReesZeroMatrixSemigroup(V);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XS:=Semigroup(Transformation([1,1]), Transformation([1,2]));[127X[104X
[4X[28X<commutative transformation monoid of degree 2 with 1 generator>[128X[104X
[4X[25Xgap>[125X [27XIsSimpleSemigroup(S);[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27Xmat:=[[0, One(S), 0, One(S)], [One(S), 0, One(S), 0], [127X[104X
[4X[25X>[125X [27X[0, 0, 0, One(S)]];;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesZeroMatrixSemigroup(S, mat);;[127X[104X
[4X[25Xgap>[125X [27XU:=ReesZeroMatrixSubsemigroup(R, [1..3], [127X[104X
[4X[25X>[125X [27XSemigroup(Transformation([1,1])), [1..2]);[127X[104X
[4X[28X<subsemigroup of 4x3 Rees 0-matrix semigroup with 6 generators>[128X[104X
[4X[25Xgap>[125X [27XV:=Semigroup(GeneratorsOfSemigroup(U));[127X[104X
[4X[28X<subsemigroup of 4x3 Rees 0-matrix semigroup with 6 generators>[128X[104X
[4X[25Xgap>[125X [27XIsReesZeroMatrixSemigroup(V);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XT:=Semigroup([127X[104X
[4X[25X>[125X [27XReesZeroMatrixSemigroupElement(R, 3, Transformation( [ 1, 1 ] ), 3), [127X[104X
[4X[25X>[125X [27XReesZeroMatrixSemigroupElement(R, 2, Transformation( [ 1, 1 ] ), 2));[127X[104X
[4X[28X<subsemigroup of 4x3 Rees 0-matrix semigroup with 2 generators>[128X[104X
[4X[25Xgap>[125X [27XIsReesZeroMatrixSemigroup(T);[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X51.9-8 Matrix[101X
[33X[1;0Y[29X[2XMatrix[102X( [3XR[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YA matrix.[133X
[33X[0;0YIf [3XR[103X is a Rees matrix or 0-matrix semigroup, then [10XMatrix[110X returns the matrix
used to define multiplication in [3XR[103X.[133X
[33X[0;0YMore specifically, if [3XR[103X is a Rees matrix or 0-matrix semigroup, which is a
proper subsemigroup of another such semigroup, then [10XMatrix[110X returns the
matrix used to define the Rees matrix (or 0-matrix) semigroup consisting of
the whole family to which the elements of [3XR[103X belong. Thus, for example, a [10X1[110X
by [10X1[110X Rees matrix semigroup can have a [10X65[110X by [10X15[110X matrix.[133X
[33X[0;0YArbitrary subsemigroups of Rees matrix or 0-matrix semigroups do not have a
matrix. Such a subsemigroup [3XR[103X has a matrix if and only if it satisfies
[2XIsReesMatrixSemigroup[102X ([14X51.9-7[114X) or [2XIsReesZeroMatrixSemigroup[102X ([14X51.9-7[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=AlternatingGroup(5);;[127X[104X
[4X[25Xgap>[125X [27Xmat:=[[(), (), ()], [(), (), ()]];;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesMatrixSemigroup(G, mat);[127X[104X
[4X[28X<Rees matrix semigroup 3x2 over Alt( [ 1 .. 5 ] )>[128X[104X
[4X[25Xgap>[125X [27XMatrix(R); [127X[104X
[4X[28X[ [ (), (), () ], [ (), (), () ] ][128X[104X
[4X[25Xgap>[125X [27XR:=ReesMatrixSubsemigroup(R, [1,2], Group(()), [2]);[127X[104X
[4X[28X<subsemigroup of 3x2 Rees matrix semigroup with 2 generators>[128X[104X
[4X[25Xgap>[125X [27XMatrix(R);[127X[104X
[4X[28X[ [ (), (), () ], [ (), (), () ] ][128X[104X
[4X[32X[104X
[1X51.9-9 [33X[0;0YRows and columns[133X[101X
[33X[1;0Y[29X[2XRows[102X( [3XR[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XColumns[102X( [3XR[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YThe rows or columns of [3XR[103X.[133X
[33X[0;0Y[10XRows[110X returns the rows of the Rees matrix or 0-matrix semigroup [3XR[103X. Note that
the rows of the semigroup correspond to the columns of the matrix used to
define multiplication in [3XR[103X.[133X
[33X[0;0Y[10XColumns[110X returns the columns of the Rees matrix or 0-matrix semigroup [3XR[103X. Note
that the columns of the semigroup correspond to the rows of the matrix used
to define multiplication in [3XR[103X.[133X
[33X[0;0YArbitrary subsemigroups of Rees matrix or 0-matrix semigroups do not have
rows or columns. Such a subsemigroup [3XR[103X has rows and columns if and only if
it satisfies [2XIsReesMatrixSemigroup[102X ([14X51.9-7[114X) or [2XIsReesZeroMatrixSemigroup[102X
([14X51.9-7[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=Group((1,2,3));; [127X[104X
[4X[25Xgap>[125X [27Xmat:=List([1..100], x-> List([1..200], x->Random(G)));;[127X[104X
[4X[25Xgap>[125X [27XR:=ReesZeroMatrixSemigroup(G, mat); [127X[104X
[4X[28X<Rees 0-matrix semigroup 200x100 over Group([ (1,2,3) ])>[128X[104X
[4X[25Xgap>[125X [27XRows(R);[127X[104X
[4X[28X[ 1 .. 200 ][128X[104X
[4X[25Xgap>[125X [27XColumns(R);[127X[104X
[4X[28X[ 1 .. 100 ][128X[104X
[4X[32X[104X
[1X51.9-10 UnderlyingSemigroup[101X
[33X[1;0Y[29X[2XUnderlyingSemigroup[102X( [3XR[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XUnderlyingSemigroup[102X( [3XR[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YA semigroup.[133X
[33X[0;0Y[10XUnderlyingSemigroup[110X returns the underlying semigroup of the Rees matrix or
0-matrix semigroup [3XR[103X.[133X
[33X[0;0YArbitrary subsemigroups of Rees matrix or 0-matrix semigroups do not have an
underlying semigroup. Such a subsemigroup [3XR[103X has an underlying semigroup if
and only if it satisfies [2XIsReesMatrixSemigroup[102X ([14X51.9-7[114X) or
[2XIsReesZeroMatrixSemigroup[102X ([14X51.9-7[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS:=Semigroup(Transformation( [ 2, 1, 1, 2, 1 ] ), [127X[104X
[4X[25X>[125X [27XTransformation( [ 3, 4, 3, 4, 4 ] ), Transformation([ 3, 4, 3, 4, 3 ] ),[127X[104X
[4X[25X>[125X [27XTransformation([ 4, 3, 3, 4, 4 ] ) );;[127X[104X
[4X[25Xgap>[125X [27XR:=Range(IsomorphismReesMatrixSemigroup(S)); [127X[104X
[4X[28X<Rees matrix semigroup 4x2 over Group([ (1,2) ])>[128X[104X
[4X[25Xgap>[125X [27XUnderlyingSemigroup(R);[127X[104X
[4X[28XGroup([ (1,2) ])[128X[104X
[4X[32X[104X
[1X51.9-11 AssociatedReesMatrixSemigroupOfDClass[101X
[33X[1;0Y[29X[2XAssociatedReesMatrixSemigroupOfDClass[102X( [3XD[103X ) [32X attribute[133X
[6XReturns:[106X [33X[0;10YA Rees matrix or 0-matrix semigroup.[133X
[33X[0;0YIf [3XD[103X is a regular [13XD[113X-class of a finite semigroup [10XS[110X, then there is a standard
way of associating a Rees matrix semigroup to [3XD[103X. If [3XD[103X is a subsemigroup of
[10XS[110X, then [3XD[103X is simple and hence is isomorphic to a Rees matrix semigroup. In
this case, the associated Rees matrix semigroup of [3XD[103X is just the Rees matrix
semigroup isomorphic to [3XD[103X.[133X
[33X[0;0YIf [3XD[103X is not a subsemigroup of [10XS[110X, then we define a semigroup with elements [3XD[103X
and a new element [10X0[110X with multiplication of [22Xx,y∈ D[122X defined by:[133X
[33X[0;0Y[10Xxy[110X equals the product of [10Xx[110X and [10Xy[110X if it belongs to [3XD[103X and [10X0[110X if it does not.[133X
[33X[0;0YThe semigroup thus defined is 0-simple and hence is isomorphic to a Rees
0-matrix semigroup. This semigroup can also be described as the Rees
quotient of the ideal generated by [3XD[103X by it maximal subideal. The associated
Rees matrix semigroup of [3XD[103X is just the Rees 0-matrix semigroup isomorphic to
the semigroup defined above.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XS:=FullTransformationSemigroup(5);;[127X[104X
[4X[25Xgap>[125X [27XD:=GreensDClasses(S)[3];[127X[104X
[4X[28X{Transformation( [ 1, 1, 1, 2, 3 ] )}[128X[104X
[4X[25Xgap>[125X [27XAssociatedReesMatrixSemigroupOfDClass(D);[127X[104X
[4X[28X<Rees 0-matrix semigroup 25x10 over Group([ (1,2)(3,5)(4,6), (1,3)[128X[104X
[4X[28X(2,4)(5,6) ])>[128X[104X
[4X[32X[104X