Elementary Operators for Words

Contents

Multiplication and Exponentiation

The word operations defined here may be applied either to the words of a free semigroup or the words of a semigroup with non-trivial relations.

u * v : SgpFPElt, SgpFPElt -> SgpFPElt
Given words u and v belonging to the same fp-semigroup S, return the product of u and v.
u ^ n : SgpFPElt, RngIntElt -> SgpFPElt
The n-th power of the word u, where n is a positive integer.
G ! Q : SgpFP, [ SgpFPElt ] -> SgpFPElt
Given a sequence Q of words belonging to the fp-semigroup G, return the product Q[1] Q[2] ... Q[n] of the terms of Q as a word in G.

The Length of a Word

# u : SgpFPElt -> RngIntElt
The length of the word u.

Equality and Comparison

The words of an fp-semigroup S are ordered first by length and then lexicographically. The lexicographic ordering is determined by the following ordering on the generators: S.1 < S.2 < S.3 < S.4 < ... Here, u and v are words belonging to some common fp-semigroup.

u eq v : SgpFPElt, SgpFPElt -> BoolElt
Returns true if the words u and v are identical (as elements of the appropriate free semigroup), false otherwise.
u ne v : SgpFPElt, SgpFPElt -> BoolElt
Returns true if the words u and v are not identical (as elements of the appropriate free semigroup), false otherwise.
u lt v : SgpFPElt, SgpFPElt -> BoolElt
Returns true if the word u precedes the word v, with respect to the ordering defined above for elements of an fp-semigroup, false otherwise.
u le v : SgpFPElt, SgpFPElt -> BoolElt
Returns true if the word u either precedes, or is equal to, the word v, with respect to the ordering defined above for elements of an fp-semigroup, false otherwise.
u ge v : SgpFPElt, SgpFPElt -> BoolElt
Returns true if the word u either follows, or is equal to, the word v, with respect to the ordering defined above for elements of an fp-semigroup, false otherwise.
u gt v : SgpFPElt, SgpFPElt -> BoolElt
Returns true if the word u follows the word v, with respect to the ordering defined above for elements of an fp-semigroup.
IsOne(u) : MonFPElt -> BoolElt
Returns true if the word u, belonging to the monoid M, is the identity word, false otherwise.
V2.28, 13 July 2023