> ^ From:

> < ^ Subject:

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]