A semigroup \(B\) is a free band on a non-empty set \(X\) if \(B\) is a band with a map \( f \) from \( B \) to \(X\) such that for every band \( S \) and every map \( g \) from \(X\) to \( B \) there exists a unique homomorphism \( g'\) from \(B\) to \(S\) such that \(fg' = g\). The free band on a set \(X\) is unique up to isomorphism. Moreover, by the universal property, every band can be expressed as a quotient of a free band.
For an alternative description of a free band. Suppose that \( X \) is a non-empty set and \( X ^ + \) a free semigroup on \( X \). Also suppose that \( b \) is the smallest congurance on \( X ^ + \) containing the set
\[ \{(w ^ 2, w) : w \in X ^ + \}. \]
Then the free band on \( X \) is isomorphic to the quotient of \( X ^ + \) by \( b \). See Section 4.5 of [How95] for more information on free bands.
‣ FreeBand ( rank[, name] ) | ( function ) |
‣ FreeBand ( name1, name2, .., . ) | ( function ) |
‣ FreeBand ( names ) | ( function ) |
Returns: A free band.
Returns a free band on rank generators, for a positive integer rank. If rank is not specified, the number of names is used. The resulting semigroup is always finite.
gap> FreeBand(6); <free band on the generators [ x1, x2, x3, x4, x5, x6 ]> gap> FreeBand(6, "b"); <free band on the generators [ b1, b2, b3, b4, b5, b6 ]> gap> FreeBand("a", "b", "c"); <free band on the generators [ a, b, c ]> gap> FreeBand("a", "b", "c"); <free band on the generators [ a, b, c ]> gap> S := FreeBand(["a", "b", "c"]); <free band on the generators [ a, b, c ]> gap> Size(S); 159 gap> gens := Generators(S); [ a, b, c ] gap> S.1 * S.2; ab
‣ IsFreeBandCategory | ( category ) |
IsFreeBandCategory
is the category of semigroups created using FreeBand
(12.1-1).
gap> IsFreeBandCategory(FreeBand(3)); true gap> IsFreeBand(SymmetricGroup(6)); false
‣ IsFreeBand ( S ) | ( property ) |
Returns: true
or false
.
IsFreeBand
returns true
if the given semigroup S is a free band.
gap> IsFreeBand(FreeBand(3)); true gap> IsFreeBand(SymmetricGroup(6)); false gap> IsFreeBand(FullTransformationMonoid(7)); false
‣ IsFreeBandElement | ( category ) |
IsFreeBandElement
is a Category
containing the elements of a free band.
gap> IsFreeBandElement(Generators(FreeBand(4))[1]); true gap> IsFreeBandElement(Transformation([1, 3, 4, 1])); false gap> IsFreeBandElement((1,2,3,4)); false
‣ IsFreeBandSubsemigroup | ( filter ) |
IsFreeBandSubsemigroup
is a synonym for IsSemigroup
and IsFreeBandElementCollection
.
gap> S := FreeBand(2); <free band on the generators [ x1, x2 ]> gap> x := S.1; x1 gap> y := S.2; x2 gap> new := Semigroup([x * y, x]); <semigroup with 2 generators> gap> IsFreeBand(new); false gap> IsFreeBandSubsemigroup(new); true
u * v
returns the product of two free band elements u and v.
u = v
checks if two free band elements are equal.
u < v
compares the sizes of the internal representations of two free band elements.
‣ GreensDClassOfElement ( S, x ) | ( operation ) |
Returns: A Green's \(\mathscr{D}\)-class
Let S be a free band. Two elements of S are \(\mathscr{D}\)-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 \(\mathscr{D}\)-class of a free band element x is the set of elements of S which have the same content as x .
gap> S := FreeBand(3, "b"); <free band on the generators [ b1, b2, b3 ]> gap> x := S.1 * S.2; b1b2 gap> D := GreensDClassOfElement(S, x); <Green's D-class: b1b2> gap> IsGreensDClass(D); true
generated by GAPDoc2HTML