GAP (semigroups) - Chapter 18: Semigroup homomorphisms

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

18 Semigroup homomorphisms
18.1 Isomorphisms of arbitrary semigroups
18.1-1 IsIsomorphicSemigroup
18.1-2 SmallestMultiplicationTable
18.1-3 IsomorphismSemigroups
18.2 Isomorphisms of Rees (0-)matrix semigroups
18.2-1 Operators for isomorphisms of Rees (0-)matrix semigroup by triples

### 18 Semigroup homomorphisms

In this chapter we describe the various ways to define a homomorphism from a semigroup to another semigroup.

#### 18.1 Isomorphisms of arbitrary semigroups

##### 18.1-1 IsIsomorphicSemigroup

`‣ 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

##### 18.1-2 SmallestMultiplicationTable

`‣ 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 ] ]

##### 18.1-3 IsomorphismSemigroups

`‣ 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> D := DClass(FullTransformationMonoid(5),
    >                Transformation([1, 2, 3, 4, 1]));;
    gap> S := PrincipalFactor(D);;
    gap> StructureDescription(UnderlyingSemigroup(S));
    "S4"
    gap> S;
    <Rees 0-matrix semigroup 10x5 over S4>
    gap> D := DClass(PartitionMonoid(5),
    >                Bipartition([[1], [2, -2], [3, -3],
    >                             [4, -4], [5, -5], [-1]]));;
    gap> T := PrincipalFactor(D);;
    gap> StructureDescription(UnderlyingSemigroup(T));
    "S4"
    gap> T;
    <Rees 0-matrix semigroup 15x15 over S4>
    gap> IsomorphismSemigroups(S, T);
    fail
    gap> I := SemigroupIdeal(FullTransformationMonoid(5),
    >                        Transformation([1, 1, 2, 3, 4]));;
    gap> T := PrincipalFactor(DClass(I, I.1));;
    gap> StructureDescription(UnderlyingSemigroup(T));
    "S4"
    gap> T;
    <Rees 0-matrix semigroup 10x5 over S4>
    gap> IsomorphismSemigroups(S, T) <> fail;
    true

#### 18.2 Isomorphisms of Rees (0-)matrix semigroups

PREAMBLE

##### 18.2-1 Operators for isomorphisms of Rees (0-)matrix semigroup by triples

`map[i]`

  `map[i]` returns the ith component of the Rees (0-)matrix semigroup isomorphism by triple map when `i = 1, 2, 3`; see `ELM_LIST` (???).

`map1 * map2`

  returns the composition of map2 and map1; see `CompositionMapping2` (???).

`map1 < map2`

  returns `true` if map1 is lexicographically less than map2.

`map1 = map2`

  returns `true` if the Rees (0-)matrix semigroup isomorphisms by triple map1 and map2 have equal source and range, and are equal as functions, and `false` otherwise.

  It is possible for map1 and map2 to be equal but to have distinct components.

`pt ^ map`

  returns the image of the element pt of the source of map under the isomorphism map; see `ImagesElm` (???).

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Bib Ind

generated by GAPDoc2HTML