[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Basic Operations

Subsections

Accessing Monoid Information

The functions in this monoid provide access to basic information stored for a rewrite monoid M.

M . i : MonRWS, RngIntElt -> MonRWSElt
The i-th defining generator for M.
Generators(M) : MonRWS -> [ MonRWSElt]
A sequence containing the defining generators for M.
NumberOfGenerators(M) : MonRWS -> RngIntElt
Ngens(M) : MonRWS -> RngIntElt
The number of defining generators for M.
Relations(M) : MonRWS -> [MonFPRel]
A sequence containing the defining relations for M. The relations will be given between elements of the free monoid of which M is a quotient. In these relations the (image of the) left hand side (in M) will always be greater than the (image of the) right hand side (in M) in the ordering on words used to construct M.
NumberOfRelations(M) : MonRWS -> RngIntElt
Nrels(M) : MonRWS -> RngIntElt
The number of relations in M.
Ordering(M) : MonRWS -> String
The ordering of M.
Parent(w) : MonRWSElt -> MonRWS
The parent monoid M for the word w.

Example MonRWS_BasicAccess (H18E4)

We illustrate the access operations using the following presentation of S_4.

> FM<a,b,B> := FreeMonoid(3);
> Q := quo< FM | a^2=1, b*B=1, B*b=1, b*b=B, B*a*B*a=a*b*a*b>;
> M<x,y,Y> := RWSMonoid(Q);
> print M;
A confluent rewrite monoid.
Generator Ordering = [ a, b, B ]
Ordering = ShortLex.
The reduction machine has 13 states.
The rewrite relations are:
    a^2 = Id(FM)
    b * B = Id(FM)
    B * b = Id(FM)
    b^2 = B
    (B * a)^2 = (a * b)^2
    B^2 = b
    (b * a)^2 = (a * B)^2
    B * a * b * a * b = b * a * B * a
    b * a * B * a * B = B * a * b * a
    b * a * B * a * b * a = a * b * a * B * a * b
    B * a * b * a * B = b * a * B * a * b
> print M.1;
x
> print M.1*M.2;
x * y
> print Generators(M);
[ x, y, Y ]
> print Ngens(M);
3
> print Relations(M);
[ a^2 = Id(FM), b * B = Id(FM), B * b = Id(FM), b^2 = B, (B * a)^2 = (a * b)^2, 
B^2 = b, (b * a)^2 = (a * B)^2, B * a * b * a * b = b * a * B * a, b * a * B * a
* B = B * a * b * a, b * a * B * a * b * a = a * b * a * B * a * b, B * a * b * 
a * B = b * a * B * a * b ]
> print Nrels(M);
11
> print Ordering(M);
ShortLex

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]