In this chapter we describe the various ways to define a homomorphism from a semigroup to another semigroup.
Support for homomorphisms in Semigroups is currently rather limited but there are plans to improve this in the future.
‣ IsIsomorphicSemigroup ( S, T ) | ( operation ) |
Returns: true
or false
.
This operation attempts to determine if the semigroups S and T are isomorphic, it returns true
if they are and false
if they are not.
At present this only works for rather small semigroups, with approximately 50 elements or less.
Please note: the Grape package version 4.5 or higher must be available and compiled installed for this function to work.
gap> S:=Semigroup( [ PartialPerm( [ 1, 2, 4 ], [ 3, 5, 1 ] ), > PartialPerm( [ 1, 3, 5 ], [ 4, 3, 2 ] ) ] );; gap> Size(S); 11 gap> T:=SemigroupByMultiplicationTable(SmallestMultiplicationTable(S));; gap> IsIsomorphicSemigroup(S, T); true
‣ SmallestMultiplicationTable ( S ) | ( attribute ) |
Returns: The lex-least multiplication table of a semigroup.
This function returns the lex-least multiplication table of a semigroup isomorphic to the semigroup S. SmallestMultiplicationTable
is an isomorphism invariant of semigroups, and so it can, for example, be used to check if two semigroups are isomorphic.
Due to the high complexity of computing the smallest multiplication table of a semigroup, this function only performs well for semigroups with at most approximately 50 elements.
SmallestMultiplicationTable
is based on the function IdSmallSemigroup
(Smallsemi: IdSmallSemigroup) by Andreas Distler.
Please note: the Grape package version 4.5 or higher must be loaded for this function to work.
gap> S:=Semigroup( > Bipartition( [ [ 1, 2, 3, -1, -3 ], [ -2 ] ] ), > Bipartition( [ [ 1, 2, 3, -1 ], [ -2 ], [ -3 ] ] ), > Bipartition( [ [ 1, 2, 3 ], [ -1 ], [ -2, -3 ] ] ), > Bipartition( [ [ 1, 2, -1 ], [ 3, -2 ], [ -3 ] ] ) );; gap> Size(S); 8 gap> SmallestMultiplicationTable(S); [ [ 1, 1, 3, 4, 5, 6, 7, 8 ], [ 1, 1, 3, 4, 5, 6, 7, 8 ], [ 1, 1, 3, 4, 5, 6, 7, 8 ], [ 1, 3, 3, 4, 5, 6, 7, 8 ], [ 5, 5, 6, 7, 5, 6, 7, 8 ], [ 5, 5, 6, 7, 5, 6, 7, 8 ], [ 5, 6, 6, 7, 5, 6, 7, 8 ], [ 5, 6, 6, 7, 5, 6, 7, 8 ] ]
‣ IsomorphismSemigroups ( S, T ) | ( operation ) |
Returns: An isomorphism or fail
.
This operation returns an isomorphism from the semigroup S and to the semigroup T if it exists, and it returns fail
if it does not.
At present this only works for Rees matrix semigroups and Rees 0-matrix semigroups.
Please note: the Grape package version 4.5 or higher must be available and compiled for this function to work, when the argument R is a Rees 0-matrix semigroup.
gap> S:=PrincipalFactor(DClasses(FullTransformationMonoid(5))[2]); <Rees 0-matrix semigroup 10x5 over Group([ (1,2,3,4), (1,2) ])> gap> T:=PrincipalFactor(DClasses(PartitionMonoid(5))[2]); <Rees 0-matrix semigroup 15x15 over Group([ (2,3,4,5), (4,5) ])> gap> IsomorphismSemigroups(S, T); fail
generated by GAPDoc2HTML