> < ^ Date: Wed, 17 Aug 1994 18:15:00 +0200
> ^ From: Tim Boykett <tim@bruckner.stoch.uni-linz.ac.at >
> < ^ Subject: semigroups

Hello Gap users.

as a part of a degree, one of the students here has
written a collection of semigroup functions for Gap.
I will include the readme below, anyone can mail me
for a copy, or I will upload it somewhere if there is
some interest.

Of course, we would be interested in any failings
in the code :-)

Regs

Tim Boykett

-----------------------------------------------------------------------------





******************************************************************************

***   SEMIGROUP FUNCTIONS FOR GAP ***
          V 1.25 25.07.1994
***    (c) Widi Marcel Oliver     ***

*******************************************************************************
Semigroup( l1, l2 );
*     defines a semigroup;
     SYNTAX 1
     arguments : l1 ... set of abstract generators
                 l2 ... set of defining relations
     SYNTAX 2
     arguments : l1 ... the semigroup table
                 l2 ... the elements of the semigroup

IsSemigroup( g );

checks if g is defined as a semigroup

DefSgCommutative( g ); *NEW*

define a semigroup presentation as commutative

DefAsNeutral( g, x ); *NEW*

define the abstract generator x to be the neutral element of g

SgTable( g {,"v"} {,order} ); *IMPROVED*

computes the table of the semigroup g using some improved Knuth-Bendix algorithm
"v" (optional) ... display progress of computation
order (optional) ... length-lexicographic order : 1
lexicographic order : 2
power-lexicographic order : 3

MinGens( g {,"v"} {,order} ); *NEW*

try to minimize the generators in the semigroup g
optional parameters : see SgTable

Size( g );

computes the number of elements of g

Elements( g ); *FIXED*

computes the elements of g

SgP( g, x, y );

computes the product of x and y in the semigroup g

IsSgMonoid( g );

checks if the semigroup g is a monoid

IsSgGroup( g ); *NEW*

checks if the semigroup g is a group

SgNeutral( g );

computes neutral element if g is a monoid; returns false otherwise

IsSgCommutative( g ); *IMPROVED*

checks if the semigroup g is commutative

SgIdempotents( g );

computes the idempotent elements of g

IsGroupInvertible( g, x );

checks, if the element x of g is (group-)invertible

SgGroupKernel( g );

computes the group kernel of a semigroup

SgCentralizer( g, s );

computes centralizer of the subset s of the semigroup g

SgCenter( g );

computes the center of the semigroup g

IsSgIdempotent( g );

checks if the semigroup g is idempotent

SgRegulars( g );

computes the regular elements of g

IsSgRegular( g );

checks if the semigroup g is regular

SgCompletelyRegulars( g );

computes the completely regular elements of g

IsSgCompletelyRegular( g );

checks if the semigroup g is completely regular

IsSgInverse( g );

checks if the semigroup g is inverse

IsCliffordSg( g );

checks if the semigroup g is a Clifford semigroup

SubSemigroup( g, s );

computes the subsemigroup of g generated by the subset s of g

IsSubSemigroup( g, s ); *NEW*

checks if s is a subsemigroup of g

SubSemigroups( g ); *NEW*

computes all subsemigroups of g

SgOrder( g, a );

computes the order of the element a in the semigroup g

SgDistance( g1, g2 ); *MODIFIED*

computes the distance between semigroups g1 and g2 where
there must be standard-epimorphism between g1 and g2

SgD( g1, g2 );

computes the distance between semigroups g1 and g2 where
g1 and g2 only must have same set of generators

SgGCD( g1, g2 );

computes the greatest common divisor of semigroups g1,g2

SgLeftIdeal( g, s ); *NEW*

computes left ideal generated by s in semigroup g

SgRightIdeal( g, s ); *NEW*

computes right ideal generated by s in semigroup g

SgIdeal( g, s ); *NEW*

computes ideal generated by s in semigroup g

IsSgLeftIdeal( g, s ); *NEW*

checks if s is a left ideal in g

SgRightIdeal( g, s ); *NEW*

checks if s is a right ideal in g

IsSgIdeal( g, s ); *NEW*

checks if s is an ideal in g

SgEpi( g, h ); *NEW*

computes all epimorphisms from g in h

SgMono( g, h ); *NEW*

computes all monomorphisms from g in h

SgIso( g, h ); *NEW*

computes all isomorphisms from g in h

SgHomo( g, h ); *NEW*

computes all homomorphisms from g in h

SgEndo( g ); *NEW*

computes all endomorphism on g

SgAuto( g ); *NEW*

computes all automorphisms on g

********************************************************************************watch this board for news !

NEW since V 1.16 :

* The function SgTable has been modified to compute the operation table for commutative
semigroups using Groebner Bases.
* The function SgTable can now be called with three different orders.
* A minor bug in the SgTable function has been removed.
* The function IsSgCommutative has been completely rewritten.
* The function DefSgCommutative has been added.
* The function DefAsNeutral has been added.
* The function IsSgGroup has been added.
* The function MinGens has been added.
* The function SgDistance has been modified.
* The functions IsSubsemigroup and SubSemigroups have been added.
* The functions SgEpi, SgMono, SgIso, SgEndo, SgAuto and SgHomo have been added.
* The functions SgRightIdeal, SgLeftIdeal and SgIdeal have been added.
* The functions IsSgRightIdeal, IsSgLeftIdeal and IsSgIdeal have been added.
* The function Elements has been fixed.

********************************************************************************

> < [top]