This manual describes the MONOID package version 3.1.3 for computing with transformation semigroups. MONOID 3.1.3 is an updated version of the package with the same name for GAP 3; see http://schmidt.nuigalway.ie/monoid/index.html for more information about the original MONOID by Goetz Pfeiffer and Steve A. Linton, Edmund F. Robertson and Nik Ruskuc.
MONOID 3.1.3 retains all the functionality of the original MONOID package. In particular, MONOID 3.1.3 contains more efficient methods than those available in the GAP library for computing orbits, calculating Green's classes, finding the size, the elements, and testing membership in transformation semigroups; see Chapters 3 and 4. After MONOID has been loaded many of these methods are automatically used in preference to those in the library and do not need to be called explicitly by the user. These methods are described in [LPRR98] and the algorithms themselves are described in [LPRR02].
In addition, there are new methods for testing if a semigroup satisfies a particular property, such as if it is regular, simple, inverse, or completely regular, see Chapter 5; methods for computing the automorphism group of a transformation semigroup see Section 7.4; methods for finding homomorphisms and isomorphism between some types of semigroups see Chapter 7; and functions to create some well-known semigroups see Chapter 6. The property testing methods are described in [GM05] and the method for computing the automorphism group of a semigroup is described in [ABM07].
The MONOID package is written in GAP code only but relies on the GRAPE package Version 4.2 or higher in the methods for computing the automorphism group of a semigroup. The following functions can only be used fully if GRAPE is fully installed (and loaded):
AutomorphismGroup
(7.4-1) with argument satisfying IsTransformationSemigroup
(Reference: IsTransformationSemigroup) or IsReesZeroMatrixSemigroup
(Reference: IsReesZeroMatrixSemigroup)
RightTransStabAutoGroup
(7.5-9) with argument satisfying IsReesZeroMatrixSemigroup
(Reference: IsReesZeroMatrixSemigroup)
RZMSGraph
(7.5-8)
RZMSInducedFunction
(7.5-6)
RZMStoRZMSInducedFunction
(7.5-7)
IsomorphismSemigroups
(7.7-5) with both arguments satisfying IsReesZeroMatrixSemigroup
(Reference: IsReesZeroMatrixSemigroup)
Installation of GRAPE is described in the README
file of the GRAPE distribution and in the section entitled `Installing the GRAPE Package' of the GRAPE manual; see http://www.maths.qmul.ac.uk/~leonard/grape/ or the main GAP webpages for more information.
If you want to take advantage of the online help facilities in MONOID, then the gapdoc package Version 1.1 or higher is also required; see http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/ for further details of how to obtain and install gapdoc.
In this section we give a brief description of how to start using MONOID. If you have any problems getting MONOID working, then please email me directly at jdm3@st-and.ac.uk.
It is assumed that you have a working copy of GAP with version number 4.4.10 or higher. The most up-to-date version of GAP and instructions on how to install it can be obtained from the main GAP webpage http://www.gap-system.org Those functions in MONOID described in Chapter 7 relating to automorphism groups of semigroups require the GRAPE (for computing with graphs and groups) to be loaded. In particular, GRAPE must be installed in a UNIX operating system so that the automorphism group and isomorphism testing functions (for graphs) can be used.
Please go to http://www.maths.qmul.ac.uk/~leonard/grape/ or the main GAP webpage for further details on how to obtain and install GRAPE.
The following is a summary of the steps that should lead to a successful installation of MONOID.
download the package archive monoid3r1p3.tar.gz
or monoid3r1p3.tar.bz2
from http://www-history.mcs.st-and.ac.uk/~jamesm/monoid/index.html
unzip & untar the file, this should create a directory called MONOID
.
move the directory MONOID
into the pkg
directory of your GAP directory (the one containing the directories lib
, doc
, pkg
, and so on)
start GAP in the usual way
type LoadPackage("monoid");
Below is an example of an installation of MONOID in UNIX where GAPROOT
should be substituted with the main GAP directory (the one containing the folders `bin', `lib', and so on) in your installation of GAP.
> gunzip monoid3r1p3.tar.gz > tar -xf monoid3r1p3.tar > mv MONOID GAPROOT/pkg > gap [ ... ] gap> LoadPackage("monoid"); Loading MONOID 3.1.3 by James Mitchell (www-groups.mcs.st-and.ac.uk/~jamesm) For help, type: ?the monoid package true gap> |
Presuming that the above steps can be completed successfully you will be running the MONOID package!
If you want to check that the package is working correctly, please see Section 1.3.
Please note: before you can used MONOID fully you must install GRAPE as described above.
In this section we describe how to test that MONOID is working as intended. To test that MONOID is installed correctly copy the following lines into GAP.
LoadPackage( "monoid" );; dirs := DirectoriesPackageLibrary( "monoid", "tst" );; Read(Filename( dirs, "installtest.g" ) ); |
and press return
. Please note that it will take a few moments before the tests are complete.
If the output looks like the following, then it is probable that you have a fully working copy of MONOID 3.1.3.
gap> LoadPackage( "monoid" );; gap> dirs := DirectoriesPackageLibrary( "monoid", "tst" );; gap> Read( Filename( dirs, "installtest.g" ) );; + install_no_grape.tst 3.1.3 + GAP4stones: 1 + install_with_grape.tst 3.1.3 + GAP4stones: 2 |
If you want to perform more extensive tests, then copy the following lines into GAP.
LoadPackage( "monoid" );; dirs := DirectoriesPackageLibrary( "monoid", "tst" );; Read(Filename( dirs, "testall.g" ) ); |
Please note that these tests could take a long time to finish.
If something goes wrong, then please review the instructions in Section 1.2 and ensure that MONOID has been properly installed. If you continue having problems, please email me at jdm3@st-and.ac.uk.
from 3.1.2 to 3.1.3: the method for PreImagesRepresentative for a semigroup homomorphism by function now tests whether the homomorphism is bijective and total before trying to find preimages. Some other minor corrections were made to the documentation and webpages.
from 3.1.1 to 3.1.2:
the following new functions have been introduced: TransformationActionNC
(2.1-6), SmallestIdempotentPower
(2.2-6), IsKerImgOfTransformation
(2.2-2), TransformationByKernelAndImage
(2.1-1), AllTransformationsWithKerAndImgNC
(2.1-2), AsBooleanMatrix
(2.3-1), KerImgOfTransformation
(2.2-3), RandomIdempotent
(2.1-4), InversesOfTransformation
(2.2-7), KiselmanSemigroup
(6.1-3),
the following functions were renamed:
PermRepTrans
was renamed AsPermOfRange
ImagesTransformationMonoid
was renamed ImagesOfTransSemigroup
GradedImagesTransformationMonoid
was renamed GradedImagesOfTransSemigroup
KernelsTransformationMonoid
was renamed KernelsOfTransSemigroup
GradedKernelsTransformationMonoid
was renamed GradedKernelsOfTransSemigroup
the following bugs were fixed:
a bug relating to the definition of the semigroup of order preserving functions was resolved
from 3.1 to 3.1.1: fixed a bug that produced an error when loading MONOID with the GRAPE package present but not fully installed.
from 2 to 3:
new methods for testing if a semigroup satisfies a particular property, such as if it is regular, simple, inverse, or completely regular, see Chapter 5;
implementations of new algorithms for computing the automorphism group of an arbitrary semigroup generated by transformations including an interactive function that allows the user to decide how the computation should proceed, see Chapter 7;
functions for finding automorphisms of Rees matrix semigroups and Rees 0
-matrix semigroups; see Section 7.5.
functions for defining homomorphisms and isomorphisms between some types of semigroups; see Chapter 7.
The features are currently under development and will be available in a future version of MONOID:
the number of special types of semigroups available in MONOID will be expanded to include all of the standard examples of transformation semigroups and some matrix semigroups.
methods analogous to those used to find Green's relations and other structural properties of transformation semigroups in the current version of MONOID but for semigroups generated by partial transformations, binary relations, and matrix semigroups.
a suite of functions for computing with inverse semigroups generated by partial bijections, including finding faithful representations of smaller degree and small generating sets.
an algorithm for finding a small generating set of a semigroup.
generated by GAPDoc2HTML