[1X5 Properties of Semigroups[0X [1X5.1 Introduction[0X In this section we give the theoretical results and the corresponding [5XGAP[0m functions that can be used to determine whether a set of transformations generates a semigroup of a given type. Let [10XS[0m be a semigroup. Then -- [10XS[0m is a [13Xleft zero semigroup[0m if [10Xxy=x[0m for all [10Xx,y[0m in [10XS[0m. -- [10XS[0m is a [13Xright zero semigroup[0m if [10Xxy=y[0m for all [10Xx,y[0m in [10XS[0m. -- [10XS[0m is [13Xcommutative[0m if [10Xxy=yx[0m for all [10Xx,y[0m in [10XS[0m. -- [10XS[0m is [13Xsimple[0m if it has no proper two-sided ideals. -- [10XS[0m is [13Xregular[0m if for all [10Xx[0m in [10XS[0m there exists [10Xy[0m in [10XS[0m such that [10Xxyx=x[0m. -- [10XS[0m is [13Xcompletely regular[0m if every element of [10XS[0m lies in a subgroup. -- [10XS[0m is an [13Xinverse semigroup[0m if for all elements [10Xx[0m in [10XS[0m there exists a unique semigroup inverse, that is, a unique element [10Xy[0m such that [10Xxyx=x[0m and [10Xyxy=y[0m. -- [10XS[0m is a [13XClifford semigroup[0m if it is a regular semigroup whose idempotents are central, that is, for all [10Xe[0m in [10XS[0m with [10Xe^2=e[0m and [10Xx[0m in [10XS[0m we have that [10Xex=xe[0m. -- [10XS[0m is a [13Xband[0m if every element is an idempotent, that is, [10Xx^2=x[0m for all [10Xx[0m in [10XS[0m. -- [10XS[0m is a [13Xrectangular band[0m if for all [10Xx,y,z[0m in [10XS[0m we have that [10Xx^2=x[0m and [10Xxyz=xz[0m. -- [10XS[0m is a [13Xsemiband[0m if it is generated by its idempotent elements, that is, elements satisfying [10Xx^2=x[0m. -- [10XS[0m is an [13Xorthodox semigroup[0m if its idempotents (elements satisfying [10Xx^2=x[0m) form a subsemigroup. -- [10XS[0m is a [13Xzero semigroup[0m if there exists an element [10X0[0m in [10XS[0m such that [10Xxy=0[0m for all [10Xx,y[0m in [10XS[0m. -- [10XS[0m is a [13Xzero group[0m if there exists an element [10X0[0m in [10XS[0m such that [10XS[0m without [10X0[0m is a group and for all [10Xx[0m in [10XS[0m we have that [10Xx0=0x=0[0m. The following results provide efficient methods to determine if an arbitrary transformation semigroup is a left zero, right zero, simple, completely regular, inverse or Clifford semigroup. Proofs of these results can be found in [GM05]. Let [10XS[0m be a semigroup generated by a set of transformations [10XU[0m on a finite set. Then the following hold: -- [10XS[0m is a left zero semigroup if and only if for all [10Xf, g[0m in [10XU[0m the image of [10Xf[0m equals the image of [10Xg[0m and [10Xf^2=f[0m. -- [10XS[0m is a right zero semigroup if and only if for all [10Xf, g[0m in [10XU[0m the kernel of [10Xf[0m equals the kernel of [10Xg[0m and [10Xf^2=f[0m. -- [10XS[0m is simple if and only if for all [10Xf, g[0m in [10XU[0m every class of the kernel of [10Xf[0m contains exactly [10X1[0m element of the image of [10Xg[0m. -- [10XS[0m is completely regular if and only if for all [10Xf[0m in [10XU[0m and [10Xg[0m in [10XS[0m, every class of the kernel of [10Xf[0m contains at most [10X1[0m element of the set found by applying [10Xg[0m to the image of [10Xf[0m. -- [10XS[0m is inverse if and only if it is regular and there is a bijection [10X\phi[0m from the set of kernels of elements of [10XS[0m to the set of images of elements of [10XS[0m such that every class of a kernel [10XK[0m contains exactly [10X1[0m element in [10X(K)\phi[0m. -- [10XS[0m is a Clifford semigroup if and only if for all [10Xf, g[0m in [10XU[0m -- [10Xf[0m permutes its image -- [10Xf[0m commutes with the power of [10Xg[0m that acts as the identity on its image. It is straightforward to verify that a transformation semigroup [10XS[0m generated by [10XU[0m is a group if and only if for all [10Xf, g[0m in [10XU[0m -- the kernel of [10Xf[0m equals the kernel of [10Xg[0m. -- the image of [10Xf[0m equals the image of [10Xg[0m. -- [10Xf[0m permutes its image. At first glance it might not be obvious why these conditions are an improvement over the original definitions. The main point is that it can be easily determined whether a semigroup [10XS[0m generated by a set [10XU[0m of mappings satisfies these conditions by considering the generators [10XU[0m and their action on the underlying set only. [1X5.2 Property Tests[0X [1X5.2-1 IsCompletelyRegularSemigroup[0m [2X> IsCompletelyRegularSemigroup( [0X[3XS[0X[2X ) ________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is completely regular and [10Xfalse[0m otherwise. A semigroup is [13Xcompletely regular[0m if every element is contained in a subgroup. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 1, 2, 4, 3, 6, 5, 4 ] ), [0X [4X > Transformation( [ 1, 2, 5, 6, 3, 4, 5 ] ), [0X [4X > Transformation( [ 2, 1, 2, 2, 2, 2, 2 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsCompletelyRegularSemigroup(S);[0X [4X true[0X [4X gap> S:=RandomSemigroup(5,5);;[0X [4X gap> IsSimpleSemigroup(S);[0X [4X false[0X [4X------------------------------------------------------------------[0X [1X5.2-2 IsSimpleSemigroup[0X [2X> IsSimpleSemigroup( [0X[3XS[0X[2X ) ___________________________________________[0Xproperty [2X> IsCompletelySimpleSemigroup( [0X[3XS[0X[2X ) _________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is simple and [10Xfalse[0m otherwise. A semigroup is [13Xsimple[0m if it has no proper 2-sided ideals. A semigroup is [13Xcompletely simple[0m if it is simple and possesses minimal left and right ideals. A finite semigroup is simple if and only if it is completely simple. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 2 ] ), [0X [4X > Transformation( [ 1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 3 ] ), [0X [4X > Transformation( [ 1, 7, 3, 9, 5, 11, 7, 1, 9, 3, 11, 5, 5 ] ), [0X [4X > Transformation( [ 7, 7, 9, 9, 11, 11, 1, 1, 3, 3, 5, 5, 7 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsSimpleSemigroup(S);[0X [4X true[0X [4X gap> IsCompletelySimpleSemigroup(S);[0X [4X true[0X [4X gap> S:=RandomSemigroup(5,5);;[0X [4X gap> IsSimpleSemigroup(S);[0X [4X false[0X [4X------------------------------------------------------------------[0X [1X5.2-3 IsGroupAsSemigroup[0m [2X> IsGroupAsSemigroup( [0X[3XS[0X[2X ) __________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a group and [10Xfalse[0m otherwise. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 2, 4, 5, 3, 7, 8, 6, 9, 1 ] ), [0X [4X > Transformation( [ 3, 5, 6, 7, 8, 1, 9, 2, 4 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsGroupAsSemigroup(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-4 IsCommutativeSemigroup[0m [2X> IsCommutativeSemigroup( [0X[3XS[0X[2X ) ______________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is commutative and [10Xfalse[0m otherwise. The function [2XIsCommutative[0m ([14XReference: IsCommutative[0m) can also be used to test if a semigroup is commutative. A semigroup [10XS[0m is [13Xcommutative[0m if [10Xxy=yx[0m for all [10Xx,y[0m in [10XS[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 2, 4, 5, 3, 7, 8, 6, 9, 1 ] ), [0X [4X > Transformation( [ 3, 5, 6, 7, 8, 1, 9, 2, 4 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsCommutativeSemigroup(S);[0X [4X true[0X [4X gap> IsCommutative(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-5 IsRegularSemigroup[0m [2X> IsRegularSemigroup( [0X[3XS[0X[2X ) __________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a regular semigroup and [10Xfalse[0m otherwise. The algorithm used here is essentially the same algorithm as that used for [2XGreensRClasses[0m ([14XReference: GreensRClasses[0m) in [5XMONOID[0m. If [10XS[0m is regular, then [10XS[0m will have the attribute [10XGreensRClasses[0m after [10XIsRegularSemigroup[0m is invoked. A semigroup [10XS[0m is [13Xregular[0m if for all [10Xx[0m in [10XS[0m there exists [10Xy[0m in [10XS[0m such that [10Xxyx=x[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> IsRegularSemigroup(FullTransformationSemigroup(5));[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-6 IsInverseSemigroup[0m [2X> IsInverseSemigroup( [0X[3XS[0X[2X ) __________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is an inverse semigroup and [10Xfalse[0m otherwise. A semigroup [10XS[0m is an [13Xinverse semigroup[0m if every element [10Xx[0m in [10XS[0m has a unique semigroup inverse, that is, a unique element [10Xy[0m such that [10Xxyx=x[0m and [10Xyxy=y[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[Transformation([1,2,4,5,6,3,7,8]),[0X [4X > Transformation([3,3,4,5,6,2,7,8]),[0X [4X >Transformation([1,2,5,3,6,8,4,4])];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsInverseSemigroup(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-7 IsCliffordSemigroup[0m [2X> IsCliffordSemigroup( [0X[3XS[0X[2X ) _________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a Clifford semigroup and [10Xfalse[0m otherwise. A semigroup [10XS[0m is a [13XClifford semigroup[0m if it is a regular semigroup whose idempotents are central, that is, for all [10Xe[0m in [10XS[0m with [10Xe^2=e[0m and [10Xx[0m in [10XS[0m we have that [10Xex=xe[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[Transformation([1,2,4,5,6,3,7,8]),[0X [4X > Transformation([3,3,4,5,6,2,7,8]),[0X [4X >Transformation([1,2,5,3,6,8,4,4])];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsCliffordSemigroup(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-8 IsBand[0m [2X> IsBand( [0X[3XS[0X[2X ) ______________________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a band and [10Xfalse[0m otherwise. A semigroup [10XS[0m is a [13Xband[0m if every element is an idempotent, that is, [10Xx^2=x[0m for all [10Xx[0m in [10XS[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 1 ] ), [0X [4X > Transformation( [ 2, 2, 2, 5, 5, 5, 8, 8, 8, 2 ] ), [0X [4X > Transformation( [ 3, 3, 3, 6, 6, 6, 9, 9, 9, 3 ] ), [0X [4X > Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 4 ] ), [0X [4X > Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 7 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsBand(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-9 IsRectangularBand[0m [2X> IsRectangularBand( [0X[3XS[0X[2X ) ___________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a rectangular band and [10Xfalse[0m otherwise. A semigroup [10XS[0m is a [13Xrectangular band[0m if for all [10Xx,y,z[0m in [10XS[0m we have that [10Xx^2=x[0m and [10Xxyz=xz[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 1 ] ), [0X [4X > Transformation( [ 2, 2, 2, 5, 5, 5, 8, 8, 8, 2 ] ), [0X [4X > Transformation( [ 3, 3, 3, 6, 6, 6, 9, 9, 9, 3 ] ), [0X [4X > Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 4 ] ), [0X [4X > Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 7 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsRectangularBand(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-10 IsSemiBand[0m [2X> IsSemiBand( [0X[3XS[0X[2X ) __________________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a semiband and [10Xfalse[0m otherwise. A semigroup [10XS[0m is a [13Xsemiband[0m if it is generated by its idempotent elements, that is, elements satisfying [10Xx^2=x[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> S:=FullTransformationSemigroup(4);;[0X [4X gap> x:=Transformation( [ 1, 2, 3, 1 ] );;[0X [4X gap> D:=GreensDClassOfElement(S, x);;[0X [4X gap> T:=Semigroup(Elements(D));;[0X [4X gap> IsSemiBand(T);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-11 IsOrthodoxSemigroup[0m [2X> IsOrthodoxSemigroup( [0X[3XS[0X[2X ) _________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is orthodox and [10Xfalse[0m otherwise. A semigroup is an [13Xorthodox semigroup[0m if its idempotent elements form a subsemigroup. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 1, 1, 1, 4, 5, 4 ] ), [0X [4X > Transformation( [ 1, 2, 3, 1, 1, 2 ] ), [0X [4X > Transformation( [ 1, 2, 3, 1, 1, 3 ] ), [0X [4X > Transformation( [ 5, 5, 5, 5, 5, 5 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsOrthodoxSemigroup(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-12 IsRightZeroSemigroup[0m [2X> IsRightZeroSemigroup( [0X[3XS[0X[2X ) ________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a right zero semigroup and [10Xfalse[0m otherwise. A semigroup [10XS[0m is a [13Xright zero semigroup[0m if [10Xxy=y[0m for all [10Xx,y[0m in [10XS[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 2, 1, 4, 3, 5 ] ), [0X [4X > Transformation( [ 3, 2, 3, 1, 1 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsRightZeroSemigroup(S);[0X [4X false[0X [4X gap> gens:=[Transformation( [ 1, 2, 3, 3, 1 ] ), [0X [4X > Transformation( [ 1, 2, 4, 4, 1 ] )];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsRightZeroSemigroup(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-13 IsLeftZeroSemigroup[0m [2X> IsLeftZeroSemigroup( [0X[3XS[0X[2X ) _________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a left zero semigroup and [10Xfalse[0m otherwise. A semigroup [10XS[0m is a [13Xleft zero semigroup[0m if [10Xxy=x[0m for all [10Xx,y[0m in [10XS[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 2, 1, 4, 3, 5 ] ), [0X [4X > Transformation( [ 3, 2, 3, 1, 1 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsRightZeroSemigroup(S);[0X [4X false[0X [4X gap> gens:=[Transformation( [ 1, 2, 3, 3, 1 ] ), [0X [4X > Transformation( [ 1, 2, 3, 3, 3 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsLeftZeroSemigroup(S);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-14 IsZeroSemigroup[0m [2X> IsZeroSemigroup( [0X[3XS[0X[2X ) _____________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a zero semigroup or if [10XS[0m was created using the [2XZeroSemigroup[0m ([14X6.2-1[0m) command. Otherwise [10Xfalse[0m is returned. A semigroup [10XS[0m is a [13Xzero semigroup[0m if there exists an element [10X0[0m in [10XS[0m such that [10Xxy=0[0m for all [10Xx,y[0m in [10XS[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 4, 7, 6, 3, 1, 5, 3, 6, 5, 9 ] ), [0X [4X > Transformation( [ 5, 3, 5, 1, 9, 3, 8, 7, 4, 3 ] ), [0X [4X > Transformation( [ 5, 10, 10, 1, 7, 6, 6, 8, 7, 7 ] ), [0X [4X > Transformation( [ 7, 4, 3, 3, 2, 2, 3, 2, 9, 3 ] ), [0X [4X > Transformation( [ 8, 1, 3, 4, 9, 6, 3, 7, 1, 6 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> IsZeroSemigroup(S);[0X [4X false[0X [4X------------------------------------------------------------------[0X [1X5.2-15 IsZeroGroup[0m [2X> IsZeroGroup( [0X[3XS[0X[2X ) _________________________________________________[0Xproperty returns [10Xtrue[0m if the transformation semigroup [10XS[0m is a zero group or if [10XS[0m was created using the [2XZeroGroup[0m ([14X6.2-3[0m) command. Otherwise [10Xfalse[0m is returned. A semigroup [10XS[0m [10XS[0m is a [13Xzero group[0m if there exists an element [10X0[0m in [10XS[0m such that [10XS[0m without [10X0[0m is a group and for all [10Xx[0m in [10XS[0m we have that [10Xx0=0x=0[0m. [4X--------------------------- Example ----------------------------[0X [4X gap> S:=ZeroGroup(DihedralGroup(10));;[0X [4X gap> iso:=IsomorphismTransformationSemigroup(S);;[0X [4X gap> T:=Range(iso);;[0X [4X gap> IsZeroGroup(T);[0X [4X true[0X [4X------------------------------------------------------------------[0X [1X5.2-16 MultiplicativeZero[0m [2X> MultiplicativeZero( [0X[3XS[0X[2X ) __________________________________________[0Xproperty returns the multiplicative zero of the transformation semigroup [10XS[0m if it has one and returns [10Xfail[0m otherwise. [4X--------------------------- Example ----------------------------[0X [4X gap> gens:=[ Transformation( [ 1, 4, 2, 6, 6, 5, 2 ] ), [0X [4X > Transformation( [ 1, 6, 3, 6, 2, 1, 6 ] ) ];;[0X [4X gap> S:=Semigroup(gens);;[0X [4X gap> MultiplicativeZero(S);[0X [4X Transformation( [ 1, 1, 1, 1, 1, 1, 1 ] )[0X [4X------------------------------------------------------------------[0X