  
  [1X12 [33X[0;0YFree bands[133X[101X
  
  
  [1X12.1 [33X[0;0YFree bands[133X[101X
  
  [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
  
  
        [33X[1;6Y[24X[33X[0;0Y\{(w ^ 2, w) : w \in X ^ + \}.[133X [124X[133X
  
  
  [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
  
  [1X12.1-1 FreeBand[101X
  
  [29X[2XFreeBand[102X( [3Xrank[103X[, [3Xname[103X] ) [32X function
  [29X[2XFreeBand[102X( [3Xname1[103X, [3Xname2[103X, [3X..[103X, [3X.[103X ) [32X function
  [29X[2XFreeBand[102X( [3Xnames[103X ) [32X function
  [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
  
  [1X12.1-2 IsFreeBandCategory[101X
  
  [29X[2XIsFreeBandCategory[102X[32X Category
  
  [33X[0;0Y[10XIsFreeBandCategory[110X  is  the  category  of  semigroups created using [2XFreeBand[102X
  ([14X12.1-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
  
  [1X12.1-3 IsFreeBand[101X
  
  [29X[2XIsFreeBand[102X( [3XS[103X ) [32X property
  [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
  
  [1X12.1-4 IsFreeBandElement[101X
  
  [29X[2XIsFreeBandElement[102X[32X Category
  
  [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
  
  [1X12.1-5 IsFreeBandSubsemigroup[101X
  
  [29X[2XIsFreeBandSubsemigroup[102X[32X filter
  
  [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
  
  
  [1X12.2 [33X[0;0YOperators and operations for free band elements[133X[101X
  
  [8X[10X[3Xu[103X[10X * [3Xv[103X[10X[110X[108X
        [33X[0;6Yreturns the product of two free band elements [3Xu[103X and [3Xv[103X.[133X
  
  [8X[10X[3Xu[103X[10X = [3Xv[103X[10X [110X[108X
        [33X[0;6Ychecks if two free band elements are equal.[133X
  
  [8X[10X[3Xu[103X[10X < [3Xv[103X[10X [110X[108X
        [33X[0;6Ycompares  the  sizes  of the internal representations of two free band
        elements.[133X
  
  [1X12.2-1 GreensDClassOfElement[101X
  
  [29X[2XGreensDClassOfElement[102X( [3XS[103X, [3Xx[103X ) [32X operation
  [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
  
