  
  [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
  
