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