  
  [1X7 [33X[0;0YStandard examples[133X[101X
  
  [33X[0;0YIn this chapter we describe some standard families of examples of semigroups
  and monoids which are available in the [5XSemigroups[105X package.[133X
  
  
  [1X7.1 [33X[0;0YTransformation semigroups[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to create transformation semigroups belonging to several standard classes of
  example.   See  [14X'Reference:  Transformations'[114X  for  more  information  about
  transformations.[133X
  
  [1X7.1-1 CatalanMonoid[101X
  
  [33X[1;0Y[29X[2XCatalanMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA transformation monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is a positive integer, then this operation returns the Catalan monoid
  of degree [3Xn[103X. The [13XCatalan monoid[113X is the semigroup of the order-preserving and
  order-decreasing transformations of [10X[1 .. n][110X with the usual ordering.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := CatalanMonoid(6);[127X[104X
    [4X[28X<transformation monoid of degree 6 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X132[128X[104X
  [4X[32X[104X
  
  [1X7.1-2 EndomorphismsPartition[101X
  
  [33X[1;0Y[29X[2XEndomorphismsPartition[102X( [3Xlist[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA transformation monoid.[133X
  
  [33X[0;0YIf  [3Xlist[103X is a list of positive integers, then [10XEndomorphismsPartition[110X returns
  a  monoid of endomorphisms preserving a partition of [10X[1 .. Sum([3Xlist[103X[10X)][110X with a
  part  of  length [10X[3Xlist[103X[10X[i][110X for every [10Xi[110X. For example, if [10X[3Xlist[103X[10X = [1, 2, 3][110X, then
  [10XEndomorphismsPartition[110X  returns the monoid of endomorphisms of the partition
  [10X[[1], [2, 3], [4, 5, 6]][110X.[133X
  
  [33X[0;0YIf  [10Xf[110X  is  a  transformation  of  [10X[1  .. n][110X, then it is an [12Xendomorphism[112X of a
  partition [10XP[110X on [10X[1 .. n][110X if [10X(i, j)[110X in [10XP[110X implies that [10X(i ^ f, j ^ f)[110X is in [10XP[110X.[133X
  
  [33X[0;0Y[10XEndomorphismsPartition[110X  returns a monoid with a minimal size generating set,
  as described in [ABMS15].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := EndomorphismsPartition([3, 3, 3]);[127X[104X
    [4X[28X<transformation semigroup of degree 9 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X531441[128X[104X
  [4X[32X[104X
  
  [1X7.1-3 PartialTransformationMonoid[101X
  
  [33X[1;0Y[29X[2XPartialTransformationMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA transformation monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a  positive  integer,  then  this function returns a semigroup of
  transformations  on  [10X[3Xn[103X[10X  +  1[110X  points  which  is  isomorphic to the semigroup
  consisting  of  all partial transformation on [3Xn[103X points. This monoid has [10X([3Xn[103X[10X +
  1) ^ [3Xn[103X[10X[110X elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := PartialTransformationMonoid(5);[127X[104X
    [4X[28X<regular transformation monoid of degree 6 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X7776[128X[104X
  [4X[32X[104X
  
  [1X7.1-4 SingularTransformationSemigroup[101X
  
  [33X[1;0Y[29X[2XSingularTransformationSemigroup[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularTransformationMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe semigroup of non-invertible transformations.[133X
  
  [33X[0;0YIf  [3Xn[103X  is a integer greater than 1, then this function returns the semigroup
  of  non-invertible  transformations,  which  is  generated  by  the [10X[3Xn[103X[10X([3Xn[103X[10X - 1)[110X
  idempotents of degree [3Xn[103X and rank [10X[3Xn[103X[10X - 1[110X and has [22Xn ^ n - n![122X elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := SingularTransformationSemigroup(4);[127X[104X
    [4X[28X<regular transformation semigroup ideal of degree 4 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X232[128X[104X
  [4X[32X[104X
  
  
  [1X7.1-5 [33X[0;0YSemigroups of order-preserving transformations[133X[101X
  
  [33X[1;0Y[29X[2XOrderEndomorphisms[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularOrderEndomorphisms[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XOrderAntiEndomorphisms[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPartialOrderEndomorphisms[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPartialOrderAntiEndomorphisms[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA semigroup of transformations related to a linear order.[133X
  
  [8X[10XOrderEndomorphisms([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XOrderEndomorphisms([3Xn[103X[10X)[110X  returns  the  monoid  of  transformations  that
        preserve  the  usual  order  on  [22X{1, 2, ..., n}[122X, where [3Xn[103X is a positive
        integer.[133X
  
  [8X[10XSingularOrderEndomorphisms([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XSingularOrderEndomorphisms([3Xn[103X[10X)[110X      returns      the      ideal      of
        [10XOrderEndomorphisms([3Xn[103X[10X)[110X  consisting of the non-invertible elements, when
        [3Xn[103X  is at least [10X2[110X. The only invertible element in [10XOrderEndomorphisms([3Xn[103X[10X)[110X
        is the identity transformation.[133X
  
  [8X[10XOrderAntiEndomorphisms([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XOrderAntiEndomorphisms([3Xn[103X[10X)[110X  returns  the monoid of transformations that
        preserve  or  reverse  the usual order on [22X{1, 2, ..., n}[122X, where [3Xn[103X is a
        positive   integer.  [10XOrderAntiEndomorphisms([3Xn[103X[10X)[110X  is  generated  by  the
        generators   of   [10XOrderEndomorphisms([3Xn[103X[10X)[110X   along   with  the  bijective
        transformation  that  reverses the order on [22X{1, 2, ..., n}[122X. The monoid
        [10XOrderAntiEndomorphisms([3Xn[103X[10X)[110X has [22X2n-1choose n-1 - n[122X elements.[133X
  
  [8X[10XPartialOrderEndomorphisms([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XPartialOrderEndomorphisms([3Xn[103X[10X)[110X  returns a monoid of transformations on [10X[3Xn[103X[10X
        +  1[110X points that is isomorphic to the monoid consisting of all partial
        transformations that preserve the usual order on [22X{1, 2, ..., n}[122X.[133X
  
  [8X[10XPartialOrderAntiEndomorphisms([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XPartialAntiOrderEndomorphisms([3Xn[103X[10X)[110X  returns  a monoid of transformations
        on  [10X[3Xn[103X[10X  +  1[110X  points that is isomorphic to the monoid consisting of all
        partial  transformations  that  preserve or reverse the usual order on
        [22X{1, 2, ..., n}[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := OrderEndomorphisms(5);[127X[104X
    [4X[28X<regular transformation monoid of degree 5 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsIdempotentGenerated(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(S) = Binomial(2 * 5 - 1, 5 - 1);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XDifference(S, SingularOrderEndomorphisms(5));[127X[104X
    [4X[28X[ IdentityTransformation ][128X[104X
    [4X[25Xgap>[125X [27XSingularOrderEndomorphisms(10);[127X[104X
    [4X[28X<regular transformation semigroup ideal of degree 10 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XT := OrderAntiEndomorphisms(4);[127X[104X
    [4X[28X<regular transformation monoid of degree 4 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XTransformation([4, 2, 2, 1]) in T;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XU := PartialOrderEndomorphisms(6);[127X[104X
    [4X[28X<regular transformation monoid of degree 7 with 12 generators>[128X[104X
    [4X[25Xgap>[125X [27XV := PartialOrderAntiEndomorphisms(6);[127X[104X
    [4X[28X<regular transformation monoid of degree 7 with 13 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(V, U);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.1-6 EndomorphismMonoid[101X
  
  [33X[1;0Y[29X[2XEndomorphismMonoid[102X( [3Xdigraph[103X ) [32X attribute[133X
  [33X[1;0Y[29X[2XEndomorphismMonoid[102X( [3Xdigraph[103X, [3Xcolors[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid.[133X
  
  [33X[0;0YAn  endomorphism of [3Xdigraph[103X is a homomorphism [2XDigraphHomomorphism[102X ([14XDigraphs:
  DigraphHomomorphism[114X) from [3Xdigraph[103X back to itself.[133X
  
  [33X[0;0Y[10XEndomorphismMonoid[110X, called with a single argument, returns the monoid of all
  endomorphisms of [3Xdigraph[103X.[133X
  
  [33X[0;0YIf  the  [3Xcolors[103X  argument  is  specified,  then it will return the monoid of
  endomorphisms which respect the given colouring. The colouring [3Xcolors[103X can be
  in one of two forms:[133X
  
  [30X    [33X[0;6YA list of positive integers of size the number of vertices of [3Xdigraph[103X,
        where [3Xcolors[103X[10X[i][110X is the colour of vertex [10Xi[110X.[133X
  
  [30X    [33X[0;6YA  list  of  lists, such that [3Xcolors[103X[10X[i][110X is a list of all vertices with
        colour [10Xi[110X.[133X
  
  [33X[0;0YSee          also          [2XGeneratorsOfEndomorphismMonoid[102X         ([14XDigraphs:
  GeneratorsOfEndomorphismMonoid[114X).    Note    that    the    performance    of
  [10XEndomorphismMonoid[110X  may  differ  from that of [2XGeneratorsOfEndomorphismMonoid[102X
  ([14XDigraphs:  GeneratorsOfEndomorphismMonoid[114X)  since  the former incrementally
  adds  newly  discovered  endomorphisms  to  the  monoid  using [2XClosureMonoid[102X
  ([14X6.4-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph(List([1 .. 3], x -> [1 .. 3]));;[127X[104X
    [4X[25Xgap>[125X [27XEndomorphismMonoid(gr);[127X[104X
    [4X[28X<transformation monoid of degree 3 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27Xgr := CompleteDigraph(3);;[127X[104X
    [4X[25Xgap>[125X [27XEndomorphismMonoid(gr);[127X[104X
    [4X[28X<transformation group of size 6, degree 3 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XS := EndomorphismMonoid(gr, [1, 2, 2]);;[127X[104X
    [4X[25Xgap>[125X [27XIsGroupAsSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XS := EndomorphismMonoid(gr, [[1], [2, 3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := EndomorphismMonoid(gr, [1, 2, 2]);;[127X[104X
    [4X[25Xgap>[125X [27XIsGroupAsSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X7.2 [33X[0;0YSemigroups of partial permutations[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to  create  semigroups of partial permutations belonging to several standard
  classes   of   example.  See  [14X'Reference:  Partial  permutations'[114X  for  more
  information about partial permutations.[133X
  
  [1X7.2-1 MunnSemigroup[101X
  
  [33X[1;0Y[29X[2XMunnSemigroup[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YThe Munn semigroup of a semilattice.[133X
  
  [33X[0;0YIf  [3XS[103X  is a semilattice, then [10XMunnSemigroup[110X returns the inverse semigroup of
  partial  permutations  of  isomorphisms of principal ideals of [3XS[103X; called the
  [13XMunn semigroup[113X of [3XS[103X.[133X
  
  [33X[0;0YThis  function  was  written  jointly  by  J.  D. Mitchell, Yann Péresse (St
  Andrews), Yanhui Wang (York).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := InverseSemigroup([[127X[104X
    [4X[25X>[125X [27XPartialPerm([1, 2, 3, 4, 5, 6, 7, 10], [4, 6, 7, 3, 8, 2, 9, 5]),[127X[104X
    [4X[25X>[125X [27XPartialPerm([1, 2, 7, 9], [5, 6, 4, 3])]);[127X[104X
    [4X[28X<inverse partial perm semigroup of rank 10 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XT := IdempotentGeneratedSubsemigroup(S);;[127X[104X
    [4X[25Xgap>[125X [27XM := MunnSemigroup(T);[127X[104X
    [4X[28X<inverse partial perm semigroup of rank 60 with 7 generators>[128X[104X
    [4X[25Xgap>[125X [27XNrIdempotents(M);[127X[104X
    [4X[28X60[128X[104X
    [4X[25Xgap>[125X [27XNrIdempotents(S);[127X[104X
    [4X[28X60[128X[104X
  [4X[32X[104X
  
  [1X7.2-2 RookMonoid[101X
  
  [33X[1;0Y[29X[2XRookMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YAn inverse monoid of partial permutations.[133X
  
  [33X[0;0Y[10XRookMonoid[110X    is    a   synonym   for   [2XSymmetricInverseMonoid[102X   ([14XReference:
  SymmetricInverseMonoid[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := RookMonoid(4);[127X[104X
    [4X[28X<symmetric inverse monoid of degree 4>[128X[104X
    [4X[25Xgap>[125X [27XS = SymmetricInverseMonoid(4);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X7.2-3 [33X[0;0YInverse monoids of order-preserving partial permutations[133X[101X
  
  [33X[1;0Y[29X[2XPOI[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPODI[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPOPI[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPORI[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YAn  inverse  monoid  of  partial  permutations related to a linear
            order.[133X
  
  [8X[10XPOI([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XPOI([3Xn[103X[10X)[110X  returns  the  inverse  monoid  of  partial  permutations  that
        preserve  the  usual  order  on  [22X{1, 2, ..., n}[122X, where [3Xn[103X is a positive
        integer.[133X
  
  [8X[10XPODI([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XPODI([3Xn[103X[10X)[110X  returns  the  inverse  monoid  of  partial  permutations that
        preserve  or  reverse  the usual order on [22X{1, 2, ..., n}[122X, where [3Xn[103X is a
        positive  integer.  [10XPODI([3Xn[103X[10X)[110X  is generated by the generators of [10XPOI([3Xn[103X[10X)[110X,
        along  with  the  permutation  that reverses the usual order on [22X{1, 2,
        ..., n}[122X.[133X
  
  [8X[10XPOPI([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XPOPI([3Xn[103X[10X)[110X  returns  the  inverse  monoid  of  partial  permutations that
        preserve  the  orientation  of  [22X{1,2,...,  n}[122X,  where  [22Xn[122X is a positive
        integer.[133X
  
  [8X[10XPORI([3Xn[103X[8X[10X)[110X[8X[108X
        [33X[0;6Y[10XPORI([3Xn[103X[10X)[110X  returns  the  inverse  monoid  of  partial  permutations that
        preserve  or  reverse  the orientation of [22X{1, 2, ..., n}[122X, where [22Xn[122X is a
        positive  integer.  [10XPORI([3Xn[103X[10X)[110X is generated by the generators of [10XPOPI([3Xn[103X[10X)[110X,
        along  with  the  permutation  that reverses the usual order on [22X{1, 2,
        ..., n}[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := PORI(10);[127X[104X
    [4X[28X<inverse partial perm monoid of rank 10 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XS := POPI(10);[127X[104X
    [4X[28X<inverse partial perm monoid of rank 10 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S) = 1 + 5 * Binomial(20, 10);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := PODI(10);[127X[104X
    [4X[28X<inverse partial perm monoid of rank 10 with 11 generators>[128X[104X
    [4X[25Xgap>[125X [27XS := POI(10);[127X[104X
    [4X[28X<inverse partial perm monoid of rank 10 with 10 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S) = Binomial(20, 10);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(PORI(10), PODI(10))[127X[104X
    [4X[25X>[125X [27Xand IsSubsemigroup(PORI(10), POPI(10))[127X[104X
    [4X[25X>[125X [27Xand IsSubsemigroup(PODI(10), POI(10))[127X[104X
    [4X[25X>[125X [27Xand IsSubsemigroup(POPI(10), POI(10));[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X7.3 [33X[0;0YSemigroups of bipartitions[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to  create  bipartition  semigroups belonging to several standard classes of
  example. See Chapter [14X3[114X for more information about bipartitions.[133X
  
  [1X7.3-1 PartitionMonoid[101X
  
  [33X[1;0Y[29X[2XPartitionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XRookPartitionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularPartitionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a non-negative integer, then this operation returns the partition
  monoid  of  degree  [3Xn[103X.  The  [13Xpartition  monoid  of  degree  [3Xn[103X[113X  is the monoid
  consisting of all the bipartitions of degree [3Xn[103X.[133X
  
  [33X[0;0Y[10XSingularPartitionMonoid[110X returns the ideal of the partition monoid consisting
  of  the non-invertible elements (i.e. those not in the group of units), when
  [3Xn[103X is positive.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  positive,  then  [10XRookPartitionMonoid[110X  returns  submonoid  of  the
  partition monoid of degree [10X[3Xn[103X[10X + 1[110X consisting of those bipartitions with [10X[3Xn[103X[10X + 1[110X
  and [10X-[3Xn[103X[10X - 1[110X in the same block; see [HR05], [Gro06], and [Eas19].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := PartitionMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of size 4140, degree 4 with 4[128X[104X
    [4X[28X generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X4140[128X[104X
    [4X[25Xgap>[125X [27XT := SingularPartitionMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 4 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XSize(S) - Size(T) = Factorial(4);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := RookPartitionMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 5 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X21147[128X[104X
  [4X[32X[104X
  
  [1X7.3-2 BrauerMonoid[101X
  
  [33X[1;0Y[29X[2XBrauerMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPartialBrauerMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularBrauerMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a  non-negative  integer,  then this operation returns the Brauer
  monoid  of  degree  [3Xn[103X.  The  [13XBrauer monoid[113X is the submonoid of the partition
  monoid consisting of those bipartitions where the size of every block is 2.[133X
  
  [33X[0;0Y[10XPartialBrauerMonoid[110X   returns  the  partial  Brauer  monoid,  which  is  the
  submonoid of the partition monoid consisting of those bipartitions where the
  size  of  every  block  is [13Xat most[113X 2. The partial Brauer monoid contains the
  Brauer monoid as a submonoid.[133X
  
  [33X[0;0Y[10XSingularBrauerMonoid[110X  returns  the  ideal of the Brauer monoid consisting of
  the  non-invertible  elements (i.e. those not in the group of units), when [3Xn[103X
  is at least 2.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := BrauerMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(S, JonesMonoid(4));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X105[128X[104X
    [4X[25Xgap>[125X [27XSingularBrauerMonoid(8);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 8 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XS := PartialBrauerMonoid(3);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 3 with 8 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(S, BrauerMonoid(3));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X76[128X[104X
  [4X[32X[104X
  
  [1X7.3-3 JonesMonoid[101X
  
  [33X[1;0Y[29X[2XJonesMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XTemperleyLiebMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularJonesMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf [3Xn[103X is a non-negative integer, then this operation returns the Jones monoid
  of  degree  [3Xn[103X.  The  [13XJones  monoid[113X  is the subsemigroup of the Brauer monoid
  consisting  of those bipartitions that are planar; see [2XPlanarPartitionMonoid[102X
  ([14X7.3-9[114X).  The  Jones  monoid  is sometimes referred to as the [12XTemperley-Lieb
  monoid[112X.[133X
  
  [33X[0;0Y[10XSingularJonesMonoid[110X  returns the ideal of the Jones monoid consisting of the
  non-invertible elements (i.e. those not in the group of units), when [3Xn[103X is at
  least 2.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := JonesMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XS = TemperleyLiebMonoid(4);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSingularJonesMonoid(8);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 8 with 1 generator>[128X[104X
  [4X[32X[104X
  
  [1X7.3-4 PartialJonesMonoid[101X
  
  [33X[1;0Y[29X[2XPartialJonesMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X is a non-negative integer, then [10XPartialJonesMonoid[110X returns the partial
  Jones  monoid of degree [3Xn[103X. The [13Xpartial Jones monoid[113X is a subsemigroup of the
  partial  Brauer monoid. An element of the partial Brauer monoid is contained
  in  the  partial Jones monoid if the partition that it defines is finer than
  the  partition  defined by some element of the Jones monoid. In other words,
  an  element of the partial Jones monoid can be formed from some element [10Xx[110X of
  the  Jones  monoid  by replacing some blocks [10X[a, b][110X of [10Xx[110X by singleton blocks
  [10X[a], [b][110X.[133X
  
  [33X[0;0YNote  that,  in  general,  the  partial Jones monoid of degree [3Xn[103X is strictly
  contained in the Motzkin monoid of the same degree.[133X
  
  [33X[0;0YSee  [2XPartialBrauerMonoid[102X  ([14X7.3-2[114X),  [2XJonesMonoid[102X  ([14X7.3-3[114X),  and [2XMotzkinMonoid[102X
  ([14X7.3-6[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := PartialJonesMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 7 generators>[128X[104X
    [4X[25Xgap>[125X [27XT := JonesMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XU := MotzkinMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 8 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(U, S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(S, T);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(U);[127X[104X
    [4X[28X323[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X143[128X[104X
    [4X[25Xgap>[125X [27XSize(T);[127X[104X
    [4X[28X14[128X[104X
  [4X[32X[104X
  
  [1X7.3-5 AnnularJonesMonoid[101X
  
  [33X[1;0Y[29X[2XAnnularJonesMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X is a non-negative integer, then [10XAnnularJonesMonoid[110X returns the annular
  Jones  monoid  of  degree [3Xn[103X. The [13Xannular Jones monoid[113X is the subsemigroup of
  the  partition  monoid  consisting  of all annular bipartitions whose blocks
  have   size   2  (annular  bipartitions  are  defined  in  Chapter  [14X3[114X).  See
  [2XBrauerMonoid[102X ([14X7.3-2[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := AnnularJonesMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 2 generators>[128X[104X
  [4X[32X[104X
  
  [1X7.3-6 MotzkinMonoid[101X
  
  [33X[1;0Y[29X[2XMotzkinMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a  non-negative  integer, then this operation returns the Motzkin
  monoid  of  degree  [3Xn[103X. The [13XMotzkin monoid[113X is the subsemigroup of the partial
  Brauer  monoid  consisting  of  those  bipartitions  that are planar (planar
  bipartitions are defined in Chapter [14X3[114X).[133X
  
  [33X[0;0YNote  that  the Motzkin monoid of degree [3Xn[103X contains the partial Jones monoid
  of   degree   [3Xn[103X,   but   in  general,  these  monoids  are  not  equal;  see
  [2XPartialJonesMonoid[102X ([14X7.3-4[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := MotzkinMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 8 generators>[128X[104X
    [4X[25Xgap>[125X [27XT := PartialJonesMonoid(4);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 4 with 7 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsSubsemigroup(S, T);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X323[128X[104X
    [4X[25Xgap>[125X [27XSize(T);[127X[104X
    [4X[28X143[128X[104X
  [4X[32X[104X
  
  [1X7.3-7 DualSymmetricInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XDualSymmetricInverseSemigroup[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XDualSymmetricInverseMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularDualSymmetricInverseMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPartialDualSymmetricInverseMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YAn inverse bipartition monoid.[133X
  
  [33X[0;0YIf     [3Xn[103X     is     a     positive     integer,    then    the    operations
  [10XDualSymmetricInverseSemigroup[110X and [10XDualSymmetricInverseMonoid[110X return the dual
  symmetric  inverse  monoid  of  degree  [3Xn[103X,  which is the subsemigroup of the
  partition monoid consisting of the block bijections of degree [3Xn[103X.[133X
  
  [33X[0;0Y[10XSingularDualSymmetricInverseMonoid[110X  returns  the ideal of the dual symmetric
  inverse  monoid consisting of the non-invertible elements (i.e. those not in
  the group of units), when [3Xn[103X is at least 2.[133X
  
  [33X[0;0Y[10XPartialDualSymmetricInverseMonoid[110X   returns   the   submonoid  of  the  dual
  symmetric  inverse  monoid  of  degree  [10X[3Xn[103X[10X  +  1[110X  consisting  of  those block
  bijections with [10X[3Xn[103X[10X + 1[110X and [10X-[3Xn[103X[10X - 1[110X in the same block; see [KM11] and [KMU15].[133X
  
  [33X[0;0YSee [2XIsBlockBijection[102X ([14X3.5-16[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XNumber(PartitionMonoid(3), IsBlockBijection);[127X[104X
    [4X[28X25[128X[104X
    [4X[25Xgap>[125X [27XS := DualSymmetricInverseSemigroup(3);[127X[104X
    [4X[28X<inverse block bijection monoid of degree 3 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X25[128X[104X
    [4X[25Xgap>[125X [27XS := PartialDualSymmetricInverseMonoid(5);[127X[104X
    [4X[28X<inverse block bijection monoid of degree 6 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X29072[128X[104X
  [4X[32X[104X
  
  [1X7.3-8 UniformBlockBijectionMonoid[101X
  
  [33X[1;0Y[29X[2XUniformBlockBijectionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XFactorisableDualSymmetricInverseMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularUniformBlockBijectionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPartialUniformBlockBijectionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularFactorisableDualSymmetricInverseMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPlanarUniformBlockBijectionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularPlanarUniformBlockBijectionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YAn inverse bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a positive integer, then this operation returns the uniform block
  bijection  monoid  of  degree  [3Xn[103X.  The [13Xuniform block bijection monoid[113X is the
  submonoid  of  the  partition  monoid  consisting of the block bijections of
  degree  [10Xn[110X where the number of positive integers in a block equals the number
  of  negative  integers  in that block. The uniform block bijection monoid is
  also referred to as the [13Xfactorisable dual symmetric inverse monoid[113X.[133X
  
  [33X[0;0Y[10XSingularUniformBlockBijectionMonoid[110X  returns  the ideal of the uniform block
  bijection  monoid  consisting of the non-invertible elements (i.e. those not
  in the group of units), when [3Xn[103X is at least 2.[133X
  
  [33X[0;0Y[10XPlanarUniformBlockBijectionMonoid[110X returns the submonoid of the uniform block
  bijection monoid consisting of the planar elements (i.e. those in the planar
  partition monoid, see [2XPlanarPartitionMonoid[102X ([14X7.3-9[114X)).[133X
  
  [33X[0;0Y[10XSingularPlanarUniformBlockBijectionMonoid[110X  returns  the  ideal of the planar
  uniform  block  bijection  monoid  consisting of the non-invertible elements
  (i.e. those not in the group of units), when [3Xn[103X is at least 2.[133X
  
  [33X[0;0Y[10XPartialUniformBlockBijectionMonoid[110X  returns  the  submonoid  of  the uniform
  block  bijection  monoid  of  degree [10X[3Xn[103X[10X + 1[110X consisting of those uniform block
  bijection with [10X[3Xn[103X[10X + 1[110X and [10X-[3Xn[103X[10X - 1[110X in the same block.[133X
  
  [33X[0;0YSee [2XIsUniformBlockBijection[102X ([14X3.5-17[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := UniformBlockBijectionMonoid(4);[127X[104X
    [4X[28X<inverse block bijection monoid of degree 4 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(PlanarUniformBlockBijectionMonoid(8));[127X[104X
    [4X[28X128[128X[104X
    [4X[25Xgap>[125X [27XS := DualSymmetricInverseMonoid(4);[127X[104X
    [4X[28X<inverse block bijection monoid of degree 4 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsFactorisableInverseMonoid(S);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XS := UniformBlockBijectionMonoid(4);[127X[104X
    [4X[28X<inverse block bijection monoid of degree 4 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsFactorisableInverseMonoid(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := AsSemigroup(IsBipartitionSemigroup,[127X[104X
    [4X[25X>[125X [27X                    SymmetricInverseMonoid(5));[127X[104X
    [4X[28X<inverse bipartition monoid of degree 5 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsFactorisableInverseMonoid(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := PartialUniformBlockBijectionMonoid(5);[127X[104X
    [4X[28X<inverse block bijection monoid of degree 6 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XNrIdempotents(S);[127X[104X
    [4X[28X203[128X[104X
    [4X[25Xgap>[125X [27XIsFactorisableInverseMonoid(S);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.3-9 PlanarPartitionMonoid[101X
  
  [33X[1;0Y[29X[2XPlanarPartitionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularPlanarPartitionMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf [3Xn[103X is a positive integer, then this operation returns the planar partition
  monoid  of  degree  [3Xn[103X  which  is  the  monoid  consisting  of all the planar
  bipartitions of degree [3Xn[103X (planar bipartitions are defined in Chapter [14X3[114X).[133X
  
  [33X[0;0Y[10XSingularPlanarPartitionMonoid[110X  returns  the  ideal  of  the planar partition
  monoid  consisting  of  the  non-invertible  elements (i.e. those not in the
  group of units).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := PlanarPartitionMonoid(3);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 3 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X132[128X[104X
    [4X[25Xgap>[125X [27XT := SingularPlanarPartitionMonoid(3);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 3 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XSize(T);[127X[104X
    [4X[28X131[128X[104X
    [4X[25Xgap>[125X [27XDifference(S, T);[127X[104X
    [4X[28X[ <block bijection: [ 1, -1 ], [ 2, -2 ], [ 3, -3 ]> ][128X[104X
  [4X[32X[104X
  
  [1X7.3-10 ModularPartitionMonoid[101X
  
  [33X[1;0Y[29X[2XModularPartitionMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularModularPartitionMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XPlanarModularPartitionMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularPlanarModularPartitionMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xm[103X and [3Xn[103X are positive integers, then this operation returns the modular-[3Xm[103X
  partition  monoid  of  degree  [3Xn[103X.  The  [13Xmodular-[113X[3Xm[103X  [13Xpartition  monoid[113X  is the
  submonoid  of  the  partition  monoid  such that the numbers of positive and
  negative integers contained in each block are congruent mod [3Xm[103X.[133X
  
  [33X[0;0Y[10XSingularModularPartitionMonoid[110X  returns  the  ideal of the modular partition
  monoid  consisting  of  the  non-invertible  elements (i.e. those not in the
  group of units), when either [3Xm = n = 1[103X or [3Xm, n > 1[103X.[133X
  
  [33X[0;0Y[10XPlanarModularPartitionMonoid[110X   returns   the   submonoid  of  the  modular-[3Xm[103X
  partition monoid consisting of the planar elements (i.e. those in the planar
  partition monoid, see [2XPlanarPartitionMonoid[102X ([14X7.3-9[114X)).[133X
  
  [33X[0;0Y[10XSingularPlanarModularPartitionMonoid[110X returns the ideal of the planar modular
  partition  monoid  consisting of the non-invertible elements (i.e. those not
  in the group of units), when either [3Xm = n = 1[103X or [3Xm, n > 1[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := ModularPartitionMonoid(3, 6);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 6 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X36243[128X[104X
    [4X[25Xgap>[125X [27XS := SingularModularPartitionMonoid(1, 1);[127X[104X
    [4X[28X<commutative inverse bipartition semigroup ideal of degree 1 with[128X[104X
    [4X[28X  1 generator>[128X[104X
    [4X[25Xgap>[125X [27XSize(SingularModularPartitionMonoid(2, 4));[127X[104X
    [4X[28X355[128X[104X
    [4X[25Xgap>[125X [27XS := PlanarModularPartitionMonoid(4, 9);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 9 with 14 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X1795[128X[104X
    [4X[25Xgap>[125X [27XS := SingularPlanarModularPartitionMonoid(3, 5);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 5 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XSize(SingularPlanarModularPartitionMonoid(1, 2));[127X[104X
    [4X[28X13[128X[104X
  [4X[32X[104X
  
  [1X7.3-11 ApsisMonoid[101X
  
  [33X[1;0Y[29X[2XApsisMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularApsisMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XCrossedApsisMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSingularCrossedApsisMonoid[102X( [3Xm[103X, [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA bipartition monoid.[133X
  
  [33X[0;0YIf  [3Xm[103X  and  [3Xn[103X are positive integers, then this operation returns the [3Xm[103X-apsis
  monoid  of  degree  [3Xn[103X.  The  [3Xm[103X[13X-apsis  monoid[113X  is  the monoid of bipartitions
  generated  when  the  diapses in generators of the Jones monoid are replaced
  with  [3Xm[103X-apses.  Note  that  an  [3Xm[103X[13X-apsis[113X is a block that contains precisely [3Xm[103X
  consecutive integers.[133X
  
  [33X[0;0Y[10XSingularApsisMonoid[110X  returns the ideal of the apsis monoid consisting of the
  non-invertible elements (i.e. those not in the group of units), when [3Xm[103X [22X≤[122X [3Xn[103X.[133X
  
  [33X[0;0Y[10XCrossedApsisGeneratedMonoid[110X returns the semigroup generated by the symmetric
  group of degree [3Xn[103X and the [3Xm[103X-apsis monoid of degree [3Xn[103X.[133X
  
  [33X[0;0Y[10XSingularCrossedApsisMonoid[110X  returns  the  ideal  of the crossed apsis monoid
  consisting  of  the  non-invertible elements (i.e. those not in the group of
  units), when [3Xm <= n[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := ApsisMonoid(3, 7);[127X[104X
    [4X[28X<regular bipartition *-monoid of degree 7 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X320[128X[104X
    [4X[25Xgap>[125X [27XT := SingularApsisMonoid(3, 7);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 7 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XDifference(S, T) = [One(S)];[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(CrossedApsisMonoid(2, 5));[127X[104X
    [4X[28X945[128X[104X
    [4X[25Xgap>[125X [27XSingularCrossedApsisMonoid(4, 6);[127X[104X
    [4X[28X<regular bipartition *-semigroup ideal of degree 6 with 1 generator>[128X[104X
  [4X[32X[104X
  
  
  [1X7.4 [33X[0;0YStandard PBR semigroups[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to  create  standard  examples of semigroups of partitioned binary relations
  (PBRs). See Chapter [14X4[114X for more information about PBRs.[133X
  
  [1X7.4-1 FullPBRMonoid[101X
  
  [33X[1;0Y[29X[2XFullPBRMonoid[102X( [3Xn[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA PBR monoid.[133X
  
  [33X[0;0YIf  [3Xn[103X  is a positive integer not greater than [10X2[110X, then this operation returns
  the  monoid  consisting of all of the partitioned binary relations (PBRs) of
  degree  [3Xn[103X;  called  the [13Xfull PBR monoid[113X. There are [10X2 ^ ((2 * n) ^ 2)[110X PBRs of
  degree  [3Xn[103X. The full PBR monoid of degree [3Xn[103X is currently too large to compute
  when [22X[3Xn[103X ≥ 3[122X.[133X
  
  [33X[0;0YThe full PBR monoid is not regular in general.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FullPBRMonoid(1);[127X[104X
    [4X[28X<pbr monoid of degree 1 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XS := FullPBRMonoid(2);[127X[104X
    [4X[28X<pbr monoid of degree 2 with 10 generators>[128X[104X
  [4X[32X[104X
  
  
  [1X7.5 [33X[0;0YSemigroups of matrices over a finite field[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to  create  semigroups  of  matrices  over  a finite field that belonging to
  several  standard  classes of example. See the section [14X'[33X[0;0YMatrices over finite
  fields[133X'[114X for more information about matrices over a finite field.[133X
  
  [1X7.5-1 FullMatrixMonoid[101X
  
  [33X[1;0Y[29X[2XFullMatrixMonoid[102X( [3Xd[103X, [3Xq[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGeneralLinearMonoid[102X( [3Xd[103X, [3Xq[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGLM[102X( [3Xd[103X, [3Xq[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA matrix monoid.[133X
  
  [33X[0;0YThese  operations  return the full matrix monoid of [3Xd[103X by [3Xd[103X matrices over the
  field  with  [3Xq[103X  elements.  The [13Xfull matrix monoid[113X, also known as the [13Xgeneral
  linear monoid[113X, with these parameters, is the monoid consisting of all [3Xd[103X by [3Xd[103X
  matrices  with  entries  from  the  field [10XGF([3Xq[103X[10X)[110X. This monoid has [10X[3Xq[103X[10X ^ ([3Xd[103X[10X ^ 2)[110X
  elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FullMatrixMonoid(2, 4);[127X[104X
    [4X[28X<general linear monoid 2x2 over GF(2^2)>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X256[128X[104X
    [4X[25Xgap>[125X [27XS = GeneralLinearMonoid(2, 4);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XGLM(2, 2);[127X[104X
    [4X[28X<general linear monoid 2x2 over GF(2)>[128X[104X
  [4X[32X[104X
  
  [1X7.5-2 SpecialLinearMonoid[101X
  
  [33X[1;0Y[29X[2XSpecialLinearMonoid[102X( [3Xd[103X, [3Xq[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XSLM[102X( [3Xd[103X, [3Xq[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA matrix monoid.[133X
  
  [33X[0;0YThese  operations  return  the special linear monoid of [3Xd[103X by [3Xd[103X matrices over
  the  field  with  [3Xq[103X  elements.  The  [13Xspecial  linear  monoid[113X  is  the monoid
  consisting  of  all  [3Xd[103X  by [3Xd[103X matrices with entries from the field [10XGF([3Xq[103X[10X)[110X that
  have determinant [10X0[110X or [10X1[110X. In other words, the special linear monoid is formed
  from the general linear monoid of the same parameters by replacing its group
  of units (the general linear group) by the special linear group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := SpecialLinearMonoid(2, 4);[127X[104X
    [4X[28X<regular monoid of 2x2 matrices over GF(2^2) with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XS = SLM(2, 4);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X136[128X[104X
  [4X[32X[104X
  
  [1X7.5-3 IsFullMatrixMonoid[101X
  
  [33X[1;0Y[29X[2XIsFullMatrixMonoid[102X( [3XS[103X ) [32X property[133X
  [33X[1;0Y[29X[2XIsGeneralLinearMonoid[102X( [3XS[103X ) [32X property[133X
  
  [33X[0;0Y[10XIsFullMatrixMonoid[110X  and [10XIsGeneralLinearMonoid[110X return [9Xtrue[109X if the semigroup [10XS[110X
  was  created  using  either  of  the  commands  [2XFullMatrixMonoid[102X  ([14X7.5-1[114X) or
  [2XGeneralLinearMonoid[102X ([14X7.5-1[114X) and [9Xfalse[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := RandomSemigroup(IsTransformationSemigroup, 4, 4);;[127X[104X
    [4X[25Xgap>[125X [27XIsFullMatrixMonoid(S);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XS := GeneralLinearMonoid(3, 3);[127X[104X
    [4X[28X<general linear monoid 3x3 over GF(3)>[128X[104X
    [4X[25Xgap>[125X [27XIsFullMatrixMonoid(S);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X7.6 [33X[0;0YSemigroups of boolean matrices[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to  create  semigroups  of  boolean  matrices  belonging to several standard
  classes  of example. See the section [14X'[33X[0;0YBoolean matrices[133X'[114X for more information
  about boolean matrices.[133X
  
  [1X7.6-1 FullBooleanMatMonoid[101X
  
  [33X[1;0Y[29X[2XFullBooleanMatMonoid[102X( [3Xd[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YThe monoid of all boolean matrices of dimension [3Xd[103X.[133X
  
  [33X[0;0YIf  [3Xd[103X  is  a  positive  integer less than or equal to [10X5[110X, then this operation
  returns  the  full  boolean  matrix  monoid of dimension [3Xd[103X. The [13Xfull boolean
  matrix  monoid of dimension [3Xd[103X[113X is the monoid consisting of all [3Xd[103X by [3Xd[103X boolean
  matrices, and has [10X2 ^ ([3Xn[103X[10X ^ 2)[110X matrices.[133X
  
  [33X[0;0Y[10XFullBooleanMatMonoid[110X  returns a monoid with a generating set that is minimal
  in size. These generating sets are pre-computed.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FullBooleanMatMonoid(3);[127X[104X
    [4X[28X<monoid of 3x3 boolean matrices with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X512[128X[104X
  [4X[32X[104X
  
  [1X7.6-2 RegularBooleanMatMonoid[101X
  
  [33X[1;0Y[29X[2XRegularBooleanMatMonoid[102X( [3Xd[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of boolean matrices.[133X
  
  [33X[0;0YIf  [3Xd[103X is a positive integer, then [10XRegularBooleanMatMonoid[110X returns the monoid
  generated  by  the regular [3Xd[103X by [3Xd[103X boolean matrices. Note that this monoid is
  [13Xnot[113X  regular in general. [10XRegularBooleanMatMonoid([3Xd[103X[10X)[110X is generated by the four
  boolean matrices [10XA, B, C, D[110X, whose [9Xtrue[109X entries are:[133X
  
  [30X    [33X[0;6Y[10XA[i][i + 1][110X and [10XA[n][1][110X, for [22Xi ∈ {1, ..., n - 1}[122X;[133X
  
  [30X    [33X[0;6Y[10XB[1][2][110X, [10XB[2][1][110X, and [10XB[i][i][110X for [22Xi ∈ {3, ..., n}[122X;[133X
  
  [30X    [33X[0;6Y[10XC[1][2][110X and [10XC[i][i][110X, for [22Xi ∈ {2, ..., n - 1}[122X; and[133X
  
  [30X    [33X[0;6Y[10XD[1][2][110X, [10XD[i][i][110X, for [22Xi ∈ {2, ..., n}[122X, and [10XD[n][1][110X.[133X
  
  [33X[0;0YThis monoid has nearly [10X2 ^ (n ^ 2)[110X elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := RegularBooleanMatMonoid(3);[127X[104X
    [4X[28X<monoid of 3x3 boolean matrices with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X506[128X[104X
  [4X[32X[104X
  
  [1X7.6-3 ReflexiveBooleanMatMonoid[101X
  
  [33X[1;0Y[29X[2XReflexiveBooleanMatMonoid[102X( [3Xd[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of boolean matrices.[133X
  
  [33X[0;0YIf  [3Xd[103X  is  a  positive  integer less than or equal to [10X5[110X, then this operation
  returns  the  monoid  consisting of all reflexive [3Xd[103X by [3Xd[103X boolean matrices. A
  boolean  matrix  [10Xmat[110X  is  [13Xreflexive[113X if each entry of its leading diagonal is
  [9Xtrue[109X, i.e. if [10Xmat[i][i][110X is [9Xtrue[109X for all [22Xi ∈ {1, ..., d}[122X.[133X
  
  [33X[0;0YThe  generating  sets  for the monoids returned by [10XReflexiveBooleanMatMonoid[110X
  are  pre-computed, and read from a file. Small generating sets are not known
  for [22X[3Xd[103X ≥ 6[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := ReflexiveBooleanMatMonoid(3);[127X[104X
    [4X[28X<monoid of 3x3 boolean matrices with 8 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X64[128X[104X
  [4X[32X[104X
  
  [1X7.6-4 HallMonoid[101X
  
  [33X[1;0Y[29X[2XHallMonoid[102X( [3Xd[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of boolean matrices.[133X
  
  [33X[0;0YIf  [3Xd[103X  is  a  positive  integer less than or equal to [10X5[110X, then this operation
  returns  the monoid consisting Hall matrices of degree [3Xd[103X. A [13XHall matrix[113X is a
  boolean  matrix  in  which  every column and every row contains at least one
  [9Xtrue[109X  entry. Equivalently, a Hall matrix is a boolean matrix than contains a
  permutation.[133X
  
  [33X[0;0YA  Hall  matrix  of dimension [3Xd[103X corresponds to a solution to Hall's Marriage
  Problem,  when  there  are  two  collection  of [3Xd[103X people. Thus the number of
  solutions  to  Hall's  Marriage  Problem  in  this instance is the number of
  elements of [10XHallMonoid([3Xd[103X[10X)[110X.[133X
  
  [33X[0;0YThe  operation  [10XHallMonoid[110X  returns  a  monoid with a generating set that is
  minimal  in  size.  These  generating  sets  are pre-computed, and a minimal
  generating set is not known for larger dimensions.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := HallMonoid(3);[127X[104X
    [4X[28X<monoid of 3x3 boolean matrices with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X247[128X[104X
  [4X[32X[104X
  
  [1X7.6-5 GossipMonoid[101X
  
  [33X[1;0Y[29X[2XGossipMonoid[102X( [3Xd[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of boolean matrices.[133X
  
  [33X[0;0YIf  [3Xd[103X  is  a positive integer, then this operation returns the [3Xd[103X by [3Xd[103X gossip
  monoid.  The  [13Xgossip  monoid[113X  is  defined  to be the monoid generated by the
  collection  of  all  [3Xd[103X  by  [3Xd[103X  boolean  matrices  that define an equivalence
  relation; see [2XIsEquivalenceBooleanMat[102X ([14X5.3-16[114X).[133X
  
  [33X[0;0YFor  [22X[3Xd[103X ≥ 2[122X, [10XGossipMonoid([3Xd[103X[10X)[110X returns a monoid with [22Xd choose 2[122X generators. The
  generating  set  is  the  collection  of  boolean  matrices  that  define an
  equivalence  relation that has one equivalence class of size [10X2[110X, and no other
  non-trivial  equivalence  classes. Note that this generating set is strictly
  contained   within  the  collection  of  all  equivalence  relation  boolean
  matrices.[133X
  
  [33X[0;0YThe  number of elements of [10XGossipMonoid([3Xd[103X[10X)[110X is known for some small values of
  [3Xd[103X  —  see [BDF15] for more information about the gossip monoid, and its size
  for [22X[3Xd[103X ≤ 9[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := GossipMonoid(3);[127X[104X
    [4X[28X<monoid of 3x3 boolean matrices with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X11[128X[104X
  [4X[32X[104X
  
  [1X7.6-6 TriangularBooleanMatMonoid[101X
  
  [33X[1;0Y[29X[2XTriangularBooleanMatMonoid[102X( [3Xd[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XUnitriangularBooleanMatMonoid[102X( [3Xd[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of boolean matrices.[133X
  
  [33X[0;0YIf  [3Xd[103X  is  a  positive  integer, then [10XTriangularBooleanMatMonoid[110X returns the
  monoid consisting of the upper-triangular [3Xd[103X by [3Xd[103X boolean matrices. A boolean
  matrix is [13Xupper-triangular[113X if the entry in row [10Xi[110X, column [10Xj[110X is [9Xfalse[109X whenever
  [10Xi > j[110X.[133X
  
  [33X[0;0Y[10XUnitriangularBooleanMatMonoid[110X    returns    the    subsemigroup    of    the
  [10XTriangularBooleanMatMonoid[110X   that  consists  of  reflexive  upper-triangular
  boolean matrices; see [2XReflexiveBooleanMatMonoid[102X ([14X7.6-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := TriangularBooleanMatMonoid(3);[127X[104X
    [4X[28X<monoid of 3x3 boolean matrices with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X64[128X[104X
    [4X[25Xgap>[125X [27XT := UnitriangularBooleanMatMonoid(4);[127X[104X
    [4X[28X<monoid of 4x4 boolean matrices with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(T);[127X[104X
    [4X[28X64[128X[104X
  [4X[32X[104X
  
  
  [1X7.7 [33X[0;0YSemigroups of matrices over a semiring[133X[101X
  
  [33X[0;0YIn  this  section, we describe the operations in [5XSemigroups[105X that can be used
  to  create  semigroups  of  matices  over  a semiring that belong to several
  standard  classes  of  example.  See  Chapter  [14X5[114X  for more information about
  matrices over a semiring.[133X
  
  [1X7.7-1 FullTropicalMaxPlusMonoid[101X
  
  [33X[1;0Y[29X[2XFullTropicalMaxPlusMonoid[102X( [3Xd[103X, [3Xt[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of tropical max plus matrices.[133X
  
  [33X[0;0YIf [10X[3Xd[103X[10X = 2[110X and [3Xt[103X is a positive integer, then [10XFullTropicalMaxPlusMonoid[110X returns
  the  monoid consisting of all [3Xd[103X by [3Xd[103X matrices with entries from the tropical
  max-plus semiring with threshold [3Xt[103X. A small generating set for larger values
  of [3Xd[103X is not currently known.[133X
  
  [33X[0;0YThis monoid contains [10X([3Xt[103X[10X + 2) ^ ([3Xd[103X[10X ^ 2)[110X elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FullTropicalMaxPlusMonoid(2, 5);[127X[104X
    [4X[28X<monoid of 2x2 tropical max-plus matrices with 24 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X2401[128X[104X
    [4X[25Xgap>[125X [27X(5 + 2) ^ (2 ^ 2);[127X[104X
    [4X[28X2401[128X[104X
  [4X[32X[104X
  
  [1X7.7-2 FullTropicalMinPlusMonoid[101X
  
  [33X[1;0Y[29X[2XFullTropicalMinPlusMonoid[102X( [3Xd[103X, [3Xt[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA monoid of tropical min plus matrices.[133X
  
  [33X[0;0YIf   [3Xd[103X   is   equal   to  [10X2[110X  or  [10X3[110X,  and  [3Xt[103X  is  a  positive  integer,  then
  [10XFullTropicalMinPlusMonoid[110X  returns  the  monoid  consisting  of  all  [3Xd[103X by [3Xd[103X
  matrices  with entries from the tropical min-plus semiring with threshold [3Xt[103X.
  A small generating set for larger values of [3Xd[103X is not currently known.[133X
  
  [33X[0;0YThis monoid contains [10X([3Xt[103X[10X + 2) ^ ([3Xd[103X[10X ^ 2)[110X elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FullTropicalMinPlusMonoid(2, 3);[127X[104X
    [4X[28X<monoid of 2x2 tropical min-plus matrices with 7 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X625[128X[104X
    [4X[25Xgap>[125X [27X(3 + 2) ^ (2 ^ 2);[127X[104X
    [4X[28X625[128X[104X
  [4X[32X[104X
  
  
  [1X7.8 [33X[0;0YExamples in various representations[133X[101X
  
  [33X[0;0YIn this section, we describe the functions in [5XSemigroups[105X that can be used to
  create  standard  semigroups  in  various  representations. For all of these
  examples,  the  default representation is as a semigroup of transformations.
  In  general,  these  functions  do  not  return  a representation of minimal
  degree.[133X
  
  [1X7.8-1 TrivialSemigroup[101X
  
  [33X[1;0Y[29X[2XTrivialSemigroup[102X( [[3Xfilt[103X][,] [[3Xdeg[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA trivial semigroup.[133X
  
  [33X[0;0YA [12Xtrivial[112X semigroup is a semigroup with precisely one element. This function
  returns  a  trivial  semigroup  in  the  representation  given by the filter
  [3Xfilter[103X, and (if possible) with the degree of the representation given by the
  non-negative integer [3Xdeg[103X.[133X
  
  [33X[0;0YThe optional argument [3Xfilt[103X may be one of the following:[133X
  
  [30X    [33X[0;6Y[10XIsTransformationSemigroup[110X (the default, if [3Xfilt[103X is not specified),[133X
  
  [30X    [33X[0;6Y[10XIsPartialPermSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBlockBijectionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatSemigroup[110X.[133X
  
  [33X[0;0YIf  the  optional  argument [3Xdeg[103X is not specified, then the smallest possible
  degree will be used.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := TrivialSemigroup();[127X[104X
    [4X[28X<trivial transformation group of degree 0 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XS := TrivialSemigroup(3);[127X[104X
    [4X[28X<trivial transformation group of degree 3 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XS := TrivialSemigroup(IsBipartitionSemigroup, 2);[127X[104X
    [4X[28X<trivial block bijection group of degree 2 with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XElements(S);[127X[104X
    [4X[28X[ <block bijection: [ 1, 2, -1, -2 ]> ][128X[104X
  [4X[32X[104X
  
  [1X7.8-2 MonogenicSemigroup[101X
  
  [33X[1;0Y[29X[2XMonogenicSemigroup[102X( [[3Xfilt[103X, ][3Xm[103X, [3Xr[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA monogenic semigroup with index [3Xm[103X and period [3Xr[103X.[133X
  
  [33X[0;0YIf  [3Xm[103X  and  [3Xr[103X  are positive integers, then this function returns a monogenic
  semigroup  [10XS[110X  with  index  [3Xm[103X and period [3Xr[103X in the representation given by the
  filter [3Xfilt[103X.[133X
  
  [33X[0;0YThe optional argument [3Xfilt[103X may be one of the following:[133X
  
  [30X    [33X[0;6Y[10XIsTransformationSemigroup[110X (the default, if [3Xfilt[103X is not specified),[133X
  
  [30X    [33X[0;6Y[10XIsPartialPermSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBlockBijectionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatSemigroup[110X.[133X
  
  [33X[0;0YThe  semigroup  [10XS[110X  is  generated  by  a single element, [22Xf[122X. [10XS[110X consists of the
  elements  [22Xf,  f  ^ 2, ..., f ^ m, ..., f ^ m + r - 1[122X. The minimal ideal of [10XS[110X
  consists  of the elements [22Xf ^ m, ..., f ^ m + r - 1[122X and is isomorphic to the
  cyclic group of order [22Xr[122X.[133X
  
  [33X[0;0YSee  [2XIsMonogenicSemigroup[102X  ([14X12.1-11[114X)  for  more  information about monogenic
  semigroups.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := MonogenicSemigroup(5, 3);[127X[104X
    [4X[28X<commutative non-regular transformation semigroup of size 7, degree 8[128X[104X
    [4X[28X with 1 generator>[128X[104X
    [4X[25Xgap>[125X [27XIsMonogenicSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XI := MinimalIdeal(S);;[127X[104X
    [4X[25Xgap>[125X [27XIsGroupAsSemigroup(I);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XStructureDescription(I);[127X[104X
    [4X[28X"C3"[128X[104X
    [4X[25Xgap>[125X [27XS := MonogenicSemigroup(IsBlockBijectionSemigroup, 9, 1);[127X[104X
    [4X[28X<commutative non-regular block bijection semigroup of size 9,[128X[104X
    [4X[28X degree 10 with 1 generator>[128X[104X
  [4X[32X[104X
  
  [1X7.8-3 RectangularBand[101X
  
  [33X[1;0Y[29X[2XRectangularBand[102X( [[3Xfilt[103X, ][3Xm[103X, [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YAn [3Xm[103X by [3Xn[103X rectangular band.[133X
  
  [33X[0;0YIf  [3Xm[103X  and  [3Xn[103X  are positive integers, then this function returns a semigroup
  isomorphic to an [3Xm[103X by [3Xn[103X rectangular band, in the representation given by the
  filter [3Xfilt[103X.[133X
  
  [33X[0;0YThe optional argument [3Xfilt[103X may be one of the following:[133X
  
  [30X    [33X[0;6Y[10XIsTransformationSemigroup[110X (the default, if [3Xfilt[103X is not specified),[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsReesMatrixSemigroup[110X.[133X
  
  [33X[0;0YSee  [2XIsRectangularBand[102X  ([14X12.1-15[114X)  for  more  information  about rectangular
  bands.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XT := RectangularBand(5, 6);[127X[104X
    [4X[28X<regular transformation semigroup of size 30, degree 10 with 6[128X[104X
    [4X[28X generators>[128X[104X
    [4X[25Xgap>[125X [27XIsRectangularBand(T);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := RectangularBand(IsReesMatrixSemigroup, 4, 8);[127X[104X
    [4X[28X<Rees matrix semigroup 4x8 over Group(())>[128X[104X
    [4X[25Xgap>[125X [27XIsRectangularBand(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsCompletelySimpleSemigroup(S) and IsHTrivial(S);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.8-4 FreeSemilattice[101X
  
  [33X[1;0Y[29X[2XFreeSemilattice[102X( [[3Xfilt[103X, ][3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA free semilattice with [3Xn[103X generators.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a positive integer, then this function returns a free semilattice
  with  [3Xn[103X  generators  in  the  representation  given  by the filter [3Xfilt[103X. The
  optional argument [3Xfilt[103X may be one of the following:[133X
  
  [30X    [33X[0;6Y[10XIsTransformationSemigroup[110X (the default, if [3Xfilt[103X is not specified),[133X
  
  [30X    [33X[0;6Y[10XIsTransformationMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPartialPermSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPartialPermMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsFpSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsFpMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsNTPMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsNTPMatrixMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsMaxPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsMaxPlusMatrixMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsMinPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsMinPlusMatrixMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTropicalMaxPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTropicalMaxPlusMatrixMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTropicalMinPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTropicalMinPlusMatrixMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsProjectiveMaxPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsProjectiveMaxPlusMatrixMonoid[110X,[133X
  
  [30X    [33X[0;6Y[10XIsIntegerMatrixSemigroup.[110X[133X
  
  [30X    [33X[0;6Y[10XIsIntegerMatrixMonoid.[110X[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeSemilattice(IsTransformationSemigroup, 5);[127X[104X
    [4X[28X<inverse transformation semigroup of size 31, degree 6 with 5 [128X[104X
    [4X[28X generators>[128X[104X
    [4X[25Xgap>[125X [27XT := FreeSemilattice(IsPartialPermSemigroup, 3);[127X[104X
    [4X[28X<inverse partial perm semigroup of size 7, rank 3 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XU := FreeSemilattice(IsBooleanMatSemigroup, 4);[127X[104X
    [4X[28X<inverse semigroup of size 15, 5x5 boolean matrices with 4 generators>[128X[104X
  [4X[32X[104X
  
  [1X7.8-5 ZeroSemigroup[101X
  
  [33X[1;0Y[29X[2XZeroSemigroup[102X( [[3Xfilt[103X, ][3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA zero semigroup of order [3Xn[103X.[133X
  
  [33X[0;0YIf  [3Xn[103X  is a positive integer, then this function returns a zero semigroup of
  order [3Xn[103X in the representation given by the filter [3Xfilt[103X.[133X
  
  [33X[0;0YThe optional argument [3Xfilt[103X may be one of the following:[133X
  
  [30X    [33X[0;6Y[10XIsTransformationSemigroup[110X (the default, if [3Xfilt[103X is not specified),[133X
  
  [30X    [33X[0;6Y[10XIsPartialPermSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBlockBijectionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsReesZeroMatrixSemigroup[110X (provided that [10X[3Xn[103X[10X > 1[110X).[133X
  
  [33X[0;0YSee [2XIsZeroSemigroup[102X ([14X12.1-27[114X) for more information about zero semigroups.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := ZeroSemigroup(5);[127X[104X
    [4X[28X<commutative non-regular transformation semigroup of size 5, degree 5[128X[104X
    [4X[28X with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsZeroSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := ZeroSemigroup(IsPartialPermSemigroup, 15);[127X[104X
    [4X[28X<commutative non-regular partial perm semigroup of size 15, rank 14[128X[104X
    [4X[28X with 14 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X15[128X[104X
    [4X[25Xgap>[125X [27Xz := MultiplicativeZero(S);[127X[104X
    [4X[28X<empty partial perm>[128X[104X
    [4X[25Xgap>[125X [27XIsZeroSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XForAll(S, x -> ForAll(S, y -> x * y = z));[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.8-6 LeftZeroSemigroup[101X
  
  [33X[1;0Y[29X[2XLeftZeroSemigroup[102X( [[3Xfilt[103X, ][3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XRightZeroSemigroup[102X( [[3Xfilt[103X, ][3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA left zero (or right zero) semigroup of order [3Xn[103X.[133X
  
  [33X[0;0YIf [3Xn[103X is a positive integer, then this function returns a left zero (or right
  zero,  as  appropriate)  semigroup of order [3Xn[103X in the representation given by
  the filter [3Xfilt[103X. If [3Xfilt[103X is not specified then the default representation is
  [10XIsTransformationSemigroup[110X.[133X
  
  [33X[0;0YThe      function      [10XLeftZeroSemigroup([[3Xfilt[103X[10X,]     [3Xn[103X[10X)[110X     simply     calls
  [10XRectangularBand([[3Xfilt[103X[10X,] [3Xn[103X[10X, 1)[110X and the function [10XRightZeroSemigroup([[3Xfilt[103X[10X,] [3Xn[103X[10X)[110X
  simply calls [10XRectangularBand([[3Xfilt[103X[10X,] 1, [3Xn[103X[10X)[110X.[133X
  
  [33X[0;0YFor  more  information about [10XRectangularBand[110X, including its permitted values
  of  [3Xfilt[103X, see [2XRectangularBand[102X ([14X7.8-3[114X). See [2XIsLeftZeroSemigroup[102X ([14X12.1-10[114X) and
  [2XIsRightZeroSemigroup[102X  ([14X12.1-18[114X)  for  more  information  about left zero and
  right zero semigroups.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := LeftZeroSemigroup(20);[127X[104X
    [4X[28X<transformation semigroup of degree 6 with 20 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsLeftZeroSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XForAll(Tuples(S, 2), p -> p[1] * p[2] = p[1]);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := RightZeroSemigroup(IsBipartitionSemigroup, 5);[127X[104X
    [4X[28X<regular bipartition semigroup of size 5, degree 3 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsRightZeroSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.8-7 BrandtSemigroup[101X
  
  [33X[1;0Y[29X[2XBrandtSemigroup[102X( [[[3Xfilt[103X, ][3XG[103X, ][3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YAn [3Xn[103X by [3Xn[103X Brandt semigroup over the group [3XG[103X.[133X
  
  [33X[0;0YIf  [3Xn[103X  is  a  positive  integer, then this function returns an [3Xn[103X by [3Xn[103X Brandt
  semigroup over the group [3XG[103X in the representation given by the filter [3Xfilt[103X.[133X
  
  [33X[0;0YThe optional argument [3Xfilt[103X can be any of the following:[133X
  
  [30X    [33X[0;6Y[10XIsPartialPermSemigroup[110X (the default, if [3Xfilt[103X is not specified),[133X
  
  [30X    [33X[0;6Y[10XIsReesZeroMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTransformationSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBipartitionSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsPBRSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsBooleanMatSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsNTPMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsMaxPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsMinPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTropicalMaxPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsTropicalMinPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsProjectiveMaxPlusMatrixSemigroup[110X,[133X
  
  [30X    [33X[0;6Y[10XIsIntegerMatrixSemigroup.[110X[133X
  
  [33X[0;0YThe  optional argument [3XG[103X defaults to a trivial permutation group. If present
  [3XG[103X must be a permutation group, unless [3Xfilt[103X is [10XIsReesZeroMatrixSemigroup[110X when
  [3XG[103X may be any type of finite group.[133X
  
  [33X[0;0YSee [2XIsBrandtSemigroup[102X ([14X12.2-2[114X) for more information about Brandt semigroups.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := BrandtSemigroup(5);[127X[104X
    [4X[28X<0-simple inverse partial perm semigroup of rank 5 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsBrandtSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XS := BrandtSemigroup(IsTransformationSemigroup, 15);[127X[104X
    [4X[28X<0-simple transformation semigroup of degree 16 with 28 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X226[128X[104X
    [4X[25Xgap>[125X [27XMultiplicativeZero(S);[127X[104X
    [4X[28XTransformation( [ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,[128X[104X
    [4X[28X  16, 16, 16 ] )[128X[104X
    [4X[25Xgap>[125X [27XS := BrandtSemigroup(Group((1, 2)), 3);[127X[104X
    [4X[28X<0-simple inverse partial perm semigroup of rank 6 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XS := BrandtSemigroup(IsTransformationSemigroup, Group((1, 2)), 3);[127X[104X
    [4X[28X<0-simple transformation semigroup of degree 7 with 5 generators>[128X[104X
    [4X[25Xgap>[125X [27XS := BrandtSemigroup(IsReesZeroMatrixSemigroup,[127X[104X
    [4X[25X>[125X [27X                        DihedralGroup(4),[127X[104X
    [4X[25X>[125X [27X                        2);[127X[104X
    [4X[28X<Rees 0-matrix semigroup 2x2 over <pc group of size 4 with[128X[104X
    [4X[28X 2 generators>>[128X[104X
  [4X[32X[104X
  
  
  [1X7.9 [33X[0;0YFree bands[133X[101X
  
  [33X[0;0YThis  chapter  describes  the  functions in [5XSemigroups[105X for dealing with free
  bands.  This  part  of  the  manual  and the functions described herein were
  originally  written  by  Julius  Jonušas,  with  later  additions  by Reinis
  Cirpons, Tom Conti-Leslie, and Murray Whyte[133X
  
  [33X[0;0YA  semigroup [22XB[122X is a [13Xfree band[113X on a non-empty set [22XX[122X if [22XB[122X is a band with a map
  [22Xf[122X  from  [22XB[122X to [22XX[122X such that for every band [22XS[122X and every map [22Xg[122X from [22XX[122X to [22XB[122X there
  exists a unique homomorphism [22Xg'[122X from [22XB[122X to [22XS[122X such that [22Xfg' = g[122X. The free band
  on a set [22XX[122X is unique up to isomorphism. Moreover, by the universal property,
  every band can be expressed as a quotient of a free band.[133X
  
  [33X[0;0YFor an alternative description of a free band. Suppose that [22XX[122X is a non-empty
  set  and  [22XX  ^  +[122X a free semigroup on [22XX[122X. Also suppose that [22Xb[122X is the smallest
  congurance on [22XX ^ +[122X containing the set[133X
  
  
  [24X[33X[0;6Y\{(w ^ 2, w) : w \in X ^ + \}.[133X
  
  [124X
  
  [33X[0;0YThen  the  free  band  on [22XX[122X is isomorphic to the quotient of [22XX ^ +[122X by [22Xb[122X. See
  Section 4.5 of [How95] for more information on free bands.[133X
  
  [1X7.9-1 FreeBand[101X
  
  [33X[1;0Y[29X[2XFreeBand[102X( [3Xrank[103X[, [3Xname[103X] ) [32X function[133X
  [33X[1;0Y[29X[2XFreeBand[102X( [3Xname1[103X, [3Xname2[103X, [3X..[103X, [3X.[103X ) [32X function[133X
  [33X[1;0Y[29X[2XFreeBand[102X( [3Xnames[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA free band.[133X
  
  [33X[0;0YReturns a free band on [3Xrank[103X generators, for a positive integer [3Xrank[103X. If [3Xrank[103X
  is  not  specified,  the number of [3Xnames[103X is used. The resulting semigroup is
  always finite.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XFreeBand(6);[127X[104X
    [4X[28X<free band on the generators [ x1, x2, x3, x4, x5, x6 ]>[128X[104X
    [4X[25Xgap>[125X [27XFreeBand(6, "b");[127X[104X
    [4X[28X<free band on the generators [ b1, b2, b3, b4, b5, b6 ]>[128X[104X
    [4X[25Xgap>[125X [27XFreeBand("a", "b", "c");[127X[104X
    [4X[28X<free band on the generators [ a, b, c ]>[128X[104X
    [4X[25Xgap>[125X [27XFreeBand("a", "b", "c");[127X[104X
    [4X[28X<free band on the generators [ a, b, c ]>[128X[104X
    [4X[25Xgap>[125X [27XS := FreeBand(["a", "b", "c"]);[127X[104X
    [4X[28X<free band on the generators [ a, b, c ]>[128X[104X
    [4X[25Xgap>[125X [27XSize(S);[127X[104X
    [4X[28X159[128X[104X
    [4X[25Xgap>[125X [27Xgens := Generators(S);[127X[104X
    [4X[28X[ a, b, c ][128X[104X
    [4X[25Xgap>[125X [27XS.1 * S.2;[127X[104X
    [4X[28Xab[128X[104X
  [4X[32X[104X
  
  [1X7.9-2 IsFreeBandCategory[101X
  
  [33X[1;0Y[29X[2XIsFreeBandCategory[102X [32X Category[133X
  
  [33X[0;0Y[10XIsFreeBandCategory[110X  is  the  category  of  semigroups created using [2XFreeBand[102X
  ([14X7.9-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsFreeBandCategory(FreeBand(3));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBand(SymmetricGroup(6));[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X7.9-3 IsFreeBand[101X
  
  [33X[1;0Y[29X[2XIsFreeBand[102X( [3XS[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
  
  [33X[0;0Y[10XIsFreeBand[110X returns [9Xtrue[109X if the given semigroup [3XS[103X is a free band.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsFreeBand(FreeBand(3));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBand(SymmetricGroup(6));[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBand(FullTransformationMonoid(7));[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X7.9-4 IsFreeBandElement[101X
  
  [33X[1;0Y[29X[2XIsFreeBandElement[102X [32X Category[133X
  
  [33X[0;0Y[10XIsFreeBandElement[110X is a [10XCategory[110X containing the elements of a free band.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIsFreeBandElement(Generators(FreeBand(4))[1]);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBandElement(Transformation([1, 3, 4, 1]));[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBandElement((1, 2, 3, 4));[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X7.9-5 IsFreeBandElementCollection[101X
  
  [33X[1;0Y[29X[2XIsFreeBandElementCollection[102X [32X Category[133X
  
  [33X[0;0YEvery  collection  of  elements  of  a  free  band  belongs  to the category
  [10XIsFreeBandElementCollection[110X.   For  example,  every  free  band  belongs  to
  [10XIsFreeBandElementCollection[110X.[133X
  
  [1X7.9-6 IsFreeBandSubsemigroup[101X
  
  [33X[1;0Y[29X[2XIsFreeBandSubsemigroup[102X [32X filter[133X
  
  [33X[0;0Y[10XIsFreeBandSubsemigroup[110X     is     a     synonym    for    [10XIsSemigroup[110X    and
  [10XIsFreeBandElementCollection[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeBand(2);[127X[104X
    [4X[28X<free band on the generators [ x1, x2 ]>[128X[104X
    [4X[25Xgap>[125X [27Xx := S.1;[127X[104X
    [4X[28Xx1[128X[104X
    [4X[25Xgap>[125X [27Xy := S.2;[127X[104X
    [4X[28Xx2[128X[104X
    [4X[25Xgap>[125X [27Xnew := Semigroup([x * y, x]);[127X[104X
    [4X[28X<semigroup with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBand(new);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsFreeBandSubsemigroup(new);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.9-7 ContentOfFreeBandElement[101X
  
  [33X[1;0Y[29X[2XContentOfFreeBandElement[102X( [3Xx[103X ) [32X attribute[133X
  [33X[1;0Y[29X[2XContentOfFreeBandElementCollection[102X( [3Xcoll[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA list of integers[133X
  
  [33X[0;0YThe  content  of a free band element [3Xx[103X is the set of generators appearing in
  the word representing the element [3Xx[103X of the free band.[133X
  
  [33X[0;0YThe  function  [10XContentOfFreeBandElement[110X  returns  the  content  of free band
  element  [3Xx[103X  represented  as a list of integers, where [10X1[110X represents the first
  generator, [10X2[110X the second generator, and so on.[133X
  
  [33X[0;0YThe function [10XContentOfFreeBandElementCollection[110X returns the the least list [10XC[110X
  for the collection of free band elements [3Xcoll[103X such that the content of every
  element in [3Xcoll[103X is contained in [10XC[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeBand(2);[127X[104X
    [4X[28X<free band on the generators [ x1, x2 ]>[128X[104X
    [4X[25Xgap>[125X [27Xx := S.1;[127X[104X
    [4X[28Xx1[128X[104X
    [4X[25Xgap>[125X [27Xy := S.2;[127X[104X
    [4X[28Xx2[128X[104X
    [4X[25Xgap>[125X [27XContentOfFreeBandElement(x);[127X[104X
    [4X[28X[ 1 ][128X[104X
    [4X[25Xgap>[125X [27XContentOfFreeBandElement(x * y);[127X[104X
    [4X[28X[ 1, 2 ][128X[104X
    [4X[25Xgap>[125X [27XContentOfFreeBandElement(x * y * x);[127X[104X
    [4X[28X[ 1, 2 ][128X[104X
    [4X[25Xgap>[125X [27XContentOfFreeBandElementCollection([x, y]);[127X[104X
    [4X[28X[ 1, 2 ][128X[104X
  [4X[32X[104X
  
  [1X7.9-8 EqualInFreeBand[101X
  
  [33X[1;0Y[29X[2XEqualInFreeBand[102X( [3Xu[103X, [3Xv[103X ) [32X operation[133X
  
  [33X[0;0YThis  operation  takes  a  pair  [3Xu[103X  and  [3Xv[103X  of lists of positive integers or
  strings, representing words in a free semigroup.[133X
  
  [33X[0;0YWhere  [10XF[110X  is a free band over some alphabet containing the letters occurring
  in [3Xu[103X and [3Xv[103X, this operation returns [9Xtrue[109X if [3Xu[103X and [3Xv[103X are equal in [10XF[110X, and [9Xfalse[109X
  otherwise.[133X
  
  [33X[0;0YNote   that  this  operation  is  for  lists  and  strings,  as  opposed  to
  [10XFreeBandElement[110X objects.[133X
  
  [33X[0;0YThis is an implementation of an algorithm described by Jakub Radoszewski and
  Wojciech Rytter in [RR10].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XEqualInFreeBand("aa", "a");[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XEqualInFreeBand("abcacba", "abcba");[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XEqualInFreeBand("aab", "aac");[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XEqualInFreeBand([1, 3, 3], [2]);[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X7.9-9 GreensDClassOfElement[101X
  
  [33X[1;0Y[29X[2XGreensDClassOfElement[102X( [3XS[103X, [3Xx[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA Green's [13XD[113X-class[133X
  
  [33X[0;0YLet  [3XS[103X be a free band. Two elements of [3X S [103X are [13XD[113X-related if and only if they
  have  the  same  content  i.e.  the  set  of  generators  appearing  in  any
  factorization  of the elements. Therefore, a [13XD[113X-class of a free band element [3X
  x [103X is the set of elements of [3X S [103X which have the same content as [3X x [103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeBand(3, "b");[127X[104X
    [4X[28X<free band on the generators [ b1, b2, b3 ]>[128X[104X
    [4X[25Xgap>[125X [27Xx := S.1 * S.2;[127X[104X
    [4X[28Xb1b2[128X[104X
    [4X[25Xgap>[125X [27XD := GreensDClassOfElement(S, x);[127X[104X
    [4X[28X<Green's D-class: b1b2>[128X[104X
    [4X[25Xgap>[125X [27XIsGreensDClass(D);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X7.9-10 [33X[0;0YOperators[133X[101X
  
  [33X[0;0YThe following operators are also included for free band elements:[133X
  
  [8X[10X[3Xu[103X[8X[10X * [3Xv[103X[8X[10X[110X[8X[108X
        [33X[0;6Yreturns the product of two free band elements [3Xu[103X and [3Xv[103X.[133X
  
  [8X[10X[3Xu[103X[8X[10X = [3Xv[103X[8X[10X [110X[8X[108X
        [33X[0;6Ychecks if two free band elements are equal.[133X
  
  [8X[10X[3Xu[103X[8X[10X < [3Xv[103X[8X[10X [110X[8X[108X
        [33X[0;6Ycompares  the  sizes  of the internal representations of two free band
        elements.[133X
  
  
  [1X7.10 [33X[0;0YGraph inverse semigroups[133X[101X
  
  [33X[0;0YIn  this  chapter  we  describe  a class of semigroups arising from directed
  graphs.[133X
  
  [33X[0;0YThe  functionality  in  [5XSemigroups[105X  for graph inverse semigroups was written
  jointly  by  Zak  Mesyan  (UCCS)  and  J.  D.  Mitchell  (St  Andrews).  The
  functionality  for graph inverse semigroup congruences was written by Marina
  Anagnostopoulou-Merkouri (St Andrews).[133X
  
  [1X7.10-1 GraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XGraphInverseSemigroup[102X( [3XE[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA graph inverse semigroup.[133X
  
  [33X[0;0YIf  [3XE[103X is a digraph (i.e. it satisfies [2XIsDigraph[102X ([14XDigraphs: IsDigraph[114X)), then
  [10XGraphInverseSemigroup[110X  returns  the  graph  inverse  semigroup  [22XG([3XE[103X)[122X  where,
  roughly speaking, elements correspond to paths in the graph [3XE[103X.[133X
  
  [33X[0;0YLet  us  describe  [3XE[103X as a digraph [22X[3XE[103X = (E ^ 0, E ^ 1, r, s)[122X, where [22XE^0[122X is the
  set  of  vertices, [22XE^1[122X is the set of edges, and [22Xr[122X and [22Xs[122X are functions [22XE^1 ->
  E^0[122X  giving the [13Xrange[113X and [13Xsource[113X of an edge, respectively. The [13Xgraph inverse
  semigroup  [22XG([3XE[103X)[122X  of [22XE[122X[113X is the semigroup-with-zero generated by the sets [22X[3XE[103X ^ 0[122X
  and [22X[3XE[103X ^ 1[122X, together with a set of variables [22X{e ^ -1 ∣ e ∈ [3XE[103X ^ 1}[122X, satisfying
  the following relations for all [22Xv, w ∈ [3XE[103X ^ 0[122X and [22Xe, f ∈ [3XE[103X ^ 1[122X:[133X
  
  [8X(V)[108X
        [33X[0;6Y[22Xvw = δ_v,w ⋅ v[122X,[133X
  
  [8X(E1)[108X
        [33X[0;6Y[22Xs(e) ⋅ e=e ⋅ r(e)=e[122X,[133X
  
  [8X(E2)[108X
        [33X[0;6Y[22Xr(e) ⋅ e^-1 = e^-1 ⋅ s(e) =e^-1[122X,[133X
  
  [8X(CK1)[108X
        [33X[0;6Y[22Xe^-1 ⋅ f = δ_e,f ⋅ r(e)[122X.[133X
  
  [33X[0;0Y(Here  [22Xδ[122X is the Kronecker delta.) We define [22Xv^-1=v[122X for each [22Xv ∈ E^0[122X, and for
  any path [22Xy=e_1dots e_n[122X ([22Xe_1dots e_n ∈ E^1[122X) we let [22Xy^-1 = e_n^-1 dots e_1^-1[122X.
  With this notation, every nonzero element of [22XG(E)[122X can be written uniquely as
  [22Xxy^-1[122X for some paths [22Xx, y[122X in [22XE[122X, by the CK1 relation.[133X
  
  [33X[0;0YFor a more complete description, see [MM16].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[2, 5, 8, 10], [2, 3, 4, 5, 6, 8, 9, 10], [1],[127X[104X
    [4X[25X>[125X [27X                  [3, 5, 7, 8, 10], [2, 5, 7], [3, 6, 7, 9, 10],[127X[104X
    [4X[25X>[125X [27X                  [1, 4], [1, 5, 9], [1, 2, 7, 8], [3, 5]]);[127X[104X
    [4X[28X<immutable digraph with 10 vertices, 37 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);[127X[104X
    [4X[28X<infinite graph inverse semigroup with 10 vertices, 37 edges>[128X[104X
    [4X[25Xgap>[125X [27XGeneratorsOfInverseSemigroup(S);[127X[104X
    [4X[28X[ e_1, e_2, e_3, e_4, e_5, e_6, e_7, e_8, e_9, e_10, e_11, e_12,[128X[104X
    [4X[28X  e_13, e_14, e_15, e_16, e_17, e_18, e_19, e_20, e_21, e_22, e_23,[128X[104X
    [4X[28X  e_24, e_25, e_26, e_27, e_28, e_29, e_30, e_31, e_32, e_33, e_34,[128X[104X
    [4X[28X  e_35, e_36, e_37, v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9, v_10[128X[104X
    [4X[28X ][128X[104X
    [4X[25Xgap>[125X [27XAssignGeneratorVariables(S);[127X[104X
    [4X[25Xgap>[125X [27Xe_1 * e_1 ^ -1;[127X[104X
    [4X[28Xe_1e_1^-1[128X[104X
    [4X[25Xgap>[125X [27Xe_1 ^ -1 * e_1 ^ -1;[127X[104X
    [4X[28X0[128X[104X
    [4X[25Xgap>[125X [27Xe_1 ^ -1 * e_1;[127X[104X
    [4X[28Xv_2[128X[104X
  [4X[32X[104X
  
  [1X7.10-2 Range[101X
  
  [33X[1;0Y[29X[2XRange[102X( [3Xx[103X ) [32X attribute[133X
  [33X[1;0Y[29X[2XSource[102X( [3Xx[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA graph inverse semigroup element.[133X
  
  [33X[0;0YIf  [3Xx[103X  is  an  element  of  a  graph  inverse  semigroup  (i.e. it satisfies
  [2XIsGraphInverseSemigroupElement[102X   ([14X7.10-4[114X)),  then  [10XRange[110X  and  [10XSource[110X  give,
  respectively,  the  start and end vertices of [3Xx[103X when viewed as a path in the
  digraph over which the semigroup is defined.[133X
  
  [33X[0;0YFor a fuller description, see [2XGraphInverseSemigroup[102X ([14X7.10-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);;[127X[104X
    [4X[25Xgap>[125X [27Xe := S.1;[127X[104X
    [4X[28Xe_1[128X[104X
    [4X[25Xgap>[125X [27XSource(e);[127X[104X
    [4X[28Xv_2[128X[104X
    [4X[25Xgap>[125X [27XRange(e);[127X[104X
    [4X[28Xv_1[128X[104X
  [4X[32X[104X
  
  [1X7.10-3 IsVertex[101X
  
  [33X[1;0Y[29X[2XIsVertex[102X( [3Xx[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
  
  [33X[0;0YIf  [3Xx[103X  is  an  element  of  a  graph  inverse  semigroup  (i.e. it satisfies
  [2XIsGraphInverseSemigroupElement[102X  ([14X7.10-4[114X)),  then this attribute returns [9Xtrue[109X
  if  [3Xx[103X  corresponds  to  a  vertex in the digraph over which the semigroup is
  defined, and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YFor a fuller description, see [2XGraphInverseSemigroup[102X ([14X7.10-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);;[127X[104X
    [4X[25Xgap>[125X [27Xe := S.1;[127X[104X
    [4X[28Xe_1[128X[104X
    [4X[25Xgap>[125X [27XIsVertex(e);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xv := S.3;[127X[104X
    [4X[28Xv_1[128X[104X
    [4X[25Xgap>[125X [27XIsVertex(v);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xz := v * e;[127X[104X
    [4X[28X0[128X[104X
    [4X[25Xgap>[125X [27XIsVertex(z);[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X7.10-4 IsGraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XIsGraphInverseSemigroup[102X( [3Xx[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsGraphInverseSemigroupElement[102X( [3Xx[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
  
  [33X[0;0YThe  category  [10XIsGraphInverseSemigroup[110X contains any semigroup defined over a
  digraph  using  the  [2XGraphInverseSemigroup[102X  ([14X7.10-1[114X) operation. The category
  [10XIsGraphInverseSemigroupElement[110X  contains  any  element  contained  in such a
  semigroup.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);[127X[104X
    [4X[28X<infinite graph inverse semigroup with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XIsGraphInverseSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xx := GeneratorsOfSemigroup(S)[1];[127X[104X
    [4X[28Xe_1[128X[104X
    [4X[25Xgap>[125X [27XIsGraphInverseSemigroupElement(x);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.10-5 GraphOfGraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XGraphOfGraphInverseSemigroup[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA digraph.[133X
  
  [33X[0;0YIf [3XS[103X is a graph inverse semigroup (i.e. it satisfies [2XIsGraphInverseSemigroup[102X
  ([14X7.10-4[114X)), then this attribute returns the original digraph over which [3XS[103X was
  defined (most likely the argument given to [2XGraphInverseSemigroup[102X ([14X7.10-1[114X) to
  create [3XS[103X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);[127X[104X
    [4X[28X<immutable digraph with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);;[127X[104X
    [4X[25Xgap>[125X [27XGraphOfGraphInverseSemigroup(S);[127X[104X
    [4X[28X<immutable digraph with 3 vertices, 2 edges>[128X[104X
  [4X[32X[104X
  
  [1X7.10-6 IsGraphInverseSemigroupElementCollection[101X
  
  [33X[1;0Y[29X[2XIsGraphInverseSemigroupElementCollection[102X [32X Category[133X
  
  [33X[0;0YEvery  collection  of  elements  of a graph inverse semigroup belongs to the
  category  [10XIsGraphInverseSemigroupElementCollection[110X. For example, every graph
  inverse semigroup belongs to [10XIsGraphInverseSemigroupElementCollection[110X.[133X
  
  [1X7.10-7 IsGraphInverseSubsemigroup[101X
  
  [33X[1;0Y[29X[2XIsGraphInverseSubsemigroup[102X [32X filter[133X
  
  [33X[0;0Y[10XIsGraphInverseSubsemigroup[110X    is    a    synonym    for    [10XIsSemigroup[110X   and
  [10XIsInverseSemigroup[110X and [10XIsGraphInverseSemigroupElementCollection[110X.[133X
  
  [33X[0;0YSee [2XIsGraphInverseSemigroupElementCollection[102X ([14X7.10-6[114X) and [2XIsInverseSemigroup[102X
  ([14XReference: IsInverseSemigroup[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [2]]);[127X[104X
    [4X[28X<immutable digraph with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);[127X[104X
    [4X[28X<finite graph inverse semigroup with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XElements(S);[127X[104X
    [4X[28X[ e_2^-1, e_1^-1, e_1^-1e_2^-1, 0, e_1, e_1e_1^-1, e_1e_1^-1e_2^-1,[128X[104X
    [4X[28X  e_2, e_2e_2^-1, e_2e_1, e_2e_1e_1^-1, e_2e_1e_1^-1e_2^-1, v_1, v_2,[128X[104X
    [4X[28X  v_3 ][128X[104X
    [4X[25Xgap>[125X [27XT := InverseSemigroup(Elements(S){[3, 5]});;[127X[104X
    [4X[25Xgap>[125X [27XIsGraphInverseSubsemigroup(T);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X7.10-8 VerticesOfGraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XVerticesOfGraphInverseSemigroup[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA list.[133X
  
  [33X[0;0YIf [3XS[103X is a graph inverse semigroup (i.e. it satisfies [2XIsGraphInverseSemigroup[102X
  ([14X7.10-4[114X)), then this attribute returns the list of vertices of [3XS[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XD := Digraph([[3, 4], [3, 4], [4], []]);[127X[104X
    [4X[28X<immutable digraph with 4 vertices, 5 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(D);[127X[104X
    [4X[28X<finite graph inverse semigroup with 4 vertices, 5 edges>[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfGraphInverseSemigroup(S);[127X[104X
    [4X[28X[ v_1, v_2, v_3, v_4 ][128X[104X
    [4X[25Xgap>[125X [27XD := ChainDigraph(12);[127X[104X
    [4X[28X<immutable chain digraph with 12 vertices>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(D);[127X[104X
    [4X[28X<finite graph inverse semigroup with 12 vertices, 11 edges>[128X[104X
    [4X[25Xgap>[125X [27XVerticesOfGraphInverseSemigroup(S);[127X[104X
    [4X[28X[ v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9, v_10, v_11, v_12 ][128X[104X
  [4X[32X[104X
  
  [1X7.10-9 IndexOfVertexOfGraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XIndexOfVertexOfGraphInverseSemigroup[102X( [3Xv[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA positive integer.[133X
  
  [33X[0;0YIf  [3Xv[103X  is  a  vertex  of  a  graph  inverse  semigroup  (i.e.  it  satisfies
  [2XIsGraphInverseSemigroup[102X  ([14X7.10-4[114X)), then this attribute returns the index of
  this vertex in [3XS[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XD := Digraph([[3, 4], [3, 4], [4], []]);[127X[104X
    [4X[28X<immutable digraph with 4 vertices, 5 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(D);[127X[104X
    [4X[28X<finite graph inverse semigroup with 4 vertices, 5 edges>[128X[104X
    [4X[25Xgap>[125X [27XIndexOfVertexOfGraphInverseSemigroup(v_1);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XIndexOfVertexOfGraphInverseSemigroup(v_3);[127X[104X
    [4X[28X3[128X[104X
  [4X[32X[104X
  
  
  [1X7.11 [33X[0;0YFree inverse semigroups[133X[101X
  
  [33X[0;0YThis  chapter  describes  the  functions in [5XSemigroups[105X for dealing with free
  inverse  semigroups.  This  part  of  the manual and the functions described
  herein were written by Julius Jonušas.[133X
  
  [33X[0;0YAn inverse semigroup [22XF[122X is said to be [13Xfree[113X on a non-empty set [22XX[122X if there is a
  map [22Xf[122X from [22XF[122X to [22XX[122X such that for every inverse semigroup [22XS[122X and a map [22Xg[122X from [22XX[122X
  to  [22XS[122X  there  exists a unique homomorphism [22Xg'[122X from [22XF[122X to [22XS[122X such that [22Xfg' = g[122X.
  Moreover,  by  this  universal  property,  every  inverse  semigroup  can be
  expressed as a quotient of a free inverse semigroup.[133X
  
  [33X[0;0YThe internal representation of an element of a free inverse semigroup uses a
  Munn  tree.  A  [13XMunn  tree[113X  is  a directed tree with distinguished start and
  terminal  vertices and where the edges are labeled by generators so that two
  edges  labeled by the same generator are only incident to the same vertex if
  one  of the edges is coming in and the other is leaving the vertex. For more
  information  regarding  free inverse semigroups and the Munn representations
  see Section 5.10 of [How95].[133X
  
  [33X[0;0YSee  also  [14X'Reference:  Inverse semigroups and monoids'[114X, [14X'Reference: Partial
  permutations'[114X and [14X'Reference: Free Groups, Monoids and Semigroups'[114X.[133X
  
  [33X[0;0YAn  element  of  a  free  inverse  semigroup  in [5XSemigroups[105X is displayed, by
  default,  as  a  shortest  word corresponding to the element. However, there
  might  be  more than one word of the minimum length. For example, if [22Xx[122X and [22Xy[122X
  are generators of a free inverse semigroups, then[133X
  
  
  [24X[33X[0;6Yxyy ^ {-1}xx ^ {-1}x ^ {-1} = xxx ^ {-1}yy ^ {-1}x ^ {-1}.[133X
  
  [124X
  
  [33X[0;0YSee [2XMinimalWord[102X ([14X7.11-7[114X). Therefore we provide a another method for printing
  elements  of  a  free inverse semigroup: a unique canonical form. Suppose an
  element  of  a  free inverse semigroup is given as a Munn tree. Let [22XL[122X be the
  set  of  words  corresponding to the shortest paths from the start vertex to
  the leaves of the tree. Also let [22Xw[122X be the word corresponding to the shortest
  path  from  the  start vertex to the terminal vertex. The word [22Xvv ^ -1[122X is an
  idempotent  for  every  [22Xv[122X  in  [22XL[122X. The canonical form is given by multiplying
  these  idempotents,  in  shortlex  order, and then postmultiplying by [22Xw[122X. For
  example,  consider  the  word  [22Xxyy  ^  -1xx  ^  -1x  ^  -1[122X  again. The words
  corresponding  to  the paths to the leaves are in this case [22Xxx[122X and [22Xxy[122X. And [22Xw[122X
  is  an empty word since start and terminal vertices are the same. Therefore,
  the canonical form is[133X
  
  
  [24X[33X[0;6Yxxx ^ {-1}x ^ {-1}xyy ^ {-1}x ^ {-1}.[133X
  
  [124X
  
  [33X[0;0YSee [2XCanonicalForm[102X ([14X7.11-6[114X).[133X
  
  [1X7.11-1 FreeInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XFreeInverseSemigroup[102X( [3Xrank[103X[, [3Xname[103X] ) [32X function[133X
  [33X[1;0Y[29X[2XFreeInverseSemigroup[102X( [3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
  [33X[1;0Y[29X[2XFreeInverseSemigroup[102X( [3Xnames[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA free inverse semigroup.[133X
  
  [33X[0;0YReturns  a  free  inverse  semigroup  on  [3Xrank[103X  generators,  where [3Xrank[103X is a
  positive  integer. If [3Xrank[103X is not specified, the number of [3Xnames[103X is used. If
  [10XS[110X  is  a free inverse semigroup, then the generators can be accessed by [10XS.1[110X,
  [10XS.2[110X and so on.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup(7);[127X[104X
    [4X[28X<free inverse semigroup on the generators[128X[104X
    [4X[28X[ x1, x2, x3, x4, x5, x6, x7 ]>[128X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup(7, "s");[127X[104X
    [4X[28X<free inverse semigroup on the generators[128X[104X
    [4X[28X[ s1, s2, s3, s4, s5, s6, s7 ]>[128X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup("a", "b", "c");[127X[104X
    [4X[28X<free inverse semigroup on the generators [ a, b, c ]>[128X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup(["a", "b", "c"]);[127X[104X
    [4X[28X<free inverse semigroup on the generators [ a, b, c ]>[128X[104X
    [4X[25Xgap>[125X [27XS.1;[127X[104X
    [4X[28Xa[128X[104X
    [4X[25Xgap>[125X [27XS.2;[127X[104X
    [4X[28Xb[128X[104X
  [4X[32X[104X
  
  [1X7.11-2 IsFreeInverseSemigroupCategory[101X
  
  [33X[1;0Y[29X[2XIsFreeInverseSemigroupCategory[102X( [3Xobj[103X ) [32X Category[133X
  
  [33X[0;0YEvery free inverse semigroup in [5XGAP[105X created by [2XFreeInverseSemigroup[102X ([14X7.11-1[114X)
  belongs  to the category [10XIsFreeInverseSemigroup[110X. Basic operations for a free
  inverse     semigroup    are:    [2XGeneratorsOfInverseSemigroup[102X    ([14XReference:
  GeneratorsOfInverseSemigroup[114X)    and    [2XGeneratorsOfSemigroup[102X    ([14XReference:
  GeneratorsOfSemigroup[114X).  Elements  of a free inverse semigroup belong to the
  category [2XIsFreeInverseSemigroupElement[102X ([14X7.11-4[114X).[133X
  
  [1X7.11-3 IsFreeInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XIsFreeInverseSemigroup[102X( [3XS[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YAttempts  to  determine  whether  the  given  semigroup  [3XS[103X is a free inverse
  semigroup.[133X
  
  [1X7.11-4 IsFreeInverseSemigroupElement[101X
  
  [33X[1;0Y[29X[2XIsFreeInverseSemigroupElement[102X [32X Category[133X
  
  [33X[0;0YEvery   element  of  a  free  inverse  semigroup  belongs  to  the  category
  [10XIsFreeInverseSemigroupElement[110X.[133X
  
  [1X7.11-5 IsFreeInverseSemigroupElementCollection[101X
  
  [33X[1;0Y[29X[2XIsFreeInverseSemigroupElementCollection[102X [32X Category[133X
  
  [33X[0;0YEvery  collection  of  elements  of  a free inverse semigroup belongs to the
  category  [10XIsFreeInverseSemigroupElementCollection[110X.  For  example, every free
  inverse semigroup belongs to [10XIsFreeInverseSemigroupElementCollection[110X.[133X
  
  [1X7.11-6 CanonicalForm[101X
  
  [33X[1;0Y[29X[2XCanonicalForm[102X( [3Xw[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA string.[133X
  
  [33X[0;0YEvery  element of a free inverse semigroup has a unique canonical form. If [3Xw[103X
  is  such an element, then [10XCanonicalForm[110X returns the canonical form of [3Xw[103X as a
  string.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup(3);[127X[104X
    [4X[28X<free inverse semigroup on the generators [ x1, x2, x3 ]>[128X[104X
    [4X[25Xgap>[125X [27Xx := S.1; y := S.2;[127X[104X
    [4X[28Xx1[128X[104X
    [4X[28Xx2[128X[104X
    [4X[25Xgap>[125X [27XCanonicalForm(x ^ 3 * y ^ 3);[127X[104X
    [4X[28X"x1x1x1x2x2x2x2^-1x2^-1x2^-1x1^-1x1^-1x1^-1x1x1x1x2x2x2"[128X[104X
  [4X[32X[104X
  
  [1X7.11-7 MinimalWord[101X
  
  [33X[1;0Y[29X[2XMinimalWord[102X( [3Xw[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA string.[133X
  
  [33X[0;0YFor  an  element [3Xw[103X of a free inverse semigroup [10XS[110X, [10XMinimalWord[110X returns a word
  of minimal length equal to [3Xw[103X in [10XS[110X as a string.[133X
  
  [33X[0;0YNote that there maybe more than one word of minimal length which is equal to
  [3Xw[103X in [10XS[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup(3);[127X[104X
    [4X[28X<free inverse semigroup on the generators [ x1, x2, x3 ]>[128X[104X
    [4X[25Xgap>[125X [27Xx := S.1;[127X[104X
    [4X[28Xx1[128X[104X
    [4X[25Xgap>[125X [27Xy := S.2;[127X[104X
    [4X[28Xx2[128X[104X
    [4X[25Xgap>[125X [27XMinimalWord(x ^ 3 * y ^ 3);[127X[104X
    [4X[28X"x1*x1*x1*x2*x2*x2"[128X[104X
  [4X[32X[104X
  
  
  [1X7.11-8 [33X[0;0YDisplaying free inverse semigroup elements[133X[101X
  
  [33X[0;0YThere  is  a  way to change how [5XGAP[105X displays free inverse semigroup elements
  using    the   user   preference   [10XFreeInverseSemigroupElementDisplay[110X.   See
  [2XUserPreference[102X  ([14XReference:  UserPreference[114X) for more information about user
  preferences.[133X
  
  [33X[0;0YThere are two possible values for [10XFreeInverseSemigroupElementDisplay[110X:[133X
  
  [8Xminimal [108X
        [33X[0;6YWith   this   option  selected,  [5XGAP[105X  will  display  a  shortest  word
        corresponding  to  the  free  inverse semigroup element. However, this
        shortest word is not unique. This is a default setting.[133X
  
  [8Xcanonical[108X
        [33X[0;6YWith  this  option selected, [5XGAP[105X will display a free inverse semigroup
        element in the canonical form.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XSetUserPreference("semigroups",[127X[104X
    [4X[25X>[125X [27X                     "FreeInverseSemigroupElementDisplay",[127X[104X
    [4X[25X>[125X [27X                     "minimal");[127X[104X
    [4X[25Xgap>[125X [27XS := FreeInverseSemigroup(2);[127X[104X
    [4X[28X<free inverse semigroup on the generators [ x1, x2 ]>[128X[104X
    [4X[25Xgap>[125X [27XS.1 * S.2;[127X[104X
    [4X[28Xx1*x2[128X[104X
    [4X[25Xgap>[125X [27XSetUserPreference("semigroups",[127X[104X
    [4X[25X>[125X [27X                     "FreeInverseSemigroupElementDisplay",[127X[104X
    [4X[25X>[125X [27X                     "canonical");[127X[104X
    [4X[25Xgap>[125X [27XS.1 * S.2;[127X[104X
    [4X[28Xx1x2x2^-1x1^-1x1x2[128X[104X
  [4X[32X[104X
  
  
  [1X7.11-9 [33X[0;0YOperators for free inverse semigroup elements[133X[101X
  
  [8X[10X[3Xw[103X[8X[10X ^ -1[110X[8X[108X
        [33X[0;6Yreturns the semigroup inverse of the free inverse semigroup element [3Xw[103X.[133X
  
  [8X[10X[3Xu[103X[8X[10X * [3Xv[103X[8X[10X[110X[8X[108X
        [33X[0;6Yreturns the product of two free inverse semigroup elements [3Xu[103X and [3Xv[103X.[133X
  
  [8X[10X[3Xu[103X[8X[10X = [3Xv[103X[8X[10X [110X[8X[108X
        [33X[0;6Ychecks  if two free inverse semigroup elements are equal, by comparing
        their canonical forms.[133X
  
