MONOiD: an Overview.

## Overview.

MONOiD is a GAP share package for transformation monoids and related objects. It contains functions that deal with
A transformation of degree $n$ is a map from the set $\left\{1, ..., n\right\}$ to itself. In MONOiD a transformation is represented by its image list.
gap> a:= Transformation( [ 8, 6, 9, 6, 5, 4, 3, 1, 11, 3, 9 ] );
Transformation( [ 8, 6, 9, 6, 5, 4, 3, 1, 11, 3, 9 ] )
gap> 1^a;
8
gap> Image(a);
[ 1, 3, 4, 5, 6, 8, 9, 11 ]
gap> Rank(a);
8
gap> Degree(a);
11
gap> a^0;
Transformation( [ 1 .. 11 ] )
Transformations act from the right on $\left\{1, ..., n\right\}$, their multiplication is defined accordingly.
gap> b:= Transformation( [ 2, 1, 11, 5, 9, 9, 9, 2, 3, 10, 11 ] );;
gap> a * b;
Transformation( [ 2, 9, 3, 9, 9, 5, 11, 2, 11, 11, 3 ] )
A transformation monoid of degree $n$ is a monoid generated by transformations of degree $n$.
gap> M:= Monoid(a, b);
Monoid( [ Transformation( [ 8, 6, 9, 6, 5, 4, 3, 1, 11, 3, 9 ] ),
Transformation( [ 2, 1, 11, 5, 9, 9, 9, 2, 3, 10, 11 ] ) ] )
gap> Size(M);
137
MONOiD provides functions that determine the size of a transformation monoid $M$, can list the elements of $M$ or decide membership of any transformation of degree $n$ in $M$. Moreover, the Green class structure of $M$ can be determined.
gap> Length(DClasses(M));
63
A finite binary relation of degree $n$ is a graph with vertex set $\left\{1, ..., n\right\}$. In MONOiD such a relation is represented by its list of successors.
gap> d:= Relation( [ [ ], [ 1 ], [ 1, 2 ], [ 1, 2, 3 ] ] );
Relation( [ [  ], [ 1 ], [ 1, 2 ], [ 1, 2, 3 ] ] )
Relations can be multiplied, checked for properties like reflexive, symmetric, transitive, and closures can be formed. Relations of degree $n$ can be used to generate a monoid.
gap> orb:= StrongOrbit(M, [1,4,5], Size, OnSets);
[ [ 1, 4, 5 ], [ 5, 6, 8 ] ]
gap> act:= ActionWithZero(M, orb, OnSets);
Monoid( [ Transformation( [ 2, 1, 3 ] ), Transformation( [ 3, 3, 3 ] ) ] )
gap> Size(act);
3
(For the precise meaning of the commands in the above example we refer to the MONOiD manual.) The concept of monoid actions can be used to turn a monoid of binary relations into a transformation monoid.