Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Bib Ind

### 9 Standard constructions

In this chapter we describe some standard semigroup constructions which are available in the Semigroups package.

#### 9.1 Standard constructions

In this section, we describe the functions in Semigroups that can be used to create standard semigroup constructions in various representations. For all of the constructions, the default representation is as a semigroup of transformations. In general, these functions do not return a representation of minimal degree.

##### 9.1-1 TrivialSemigroup
 ‣ TrivialSemigroup( [filt, ][deg] ) ( function )

Returns: A trivial semigroup.

A semigroup is a semigroup with precisely one element. This function returns a trivial semigroup in the representation given by the filter filter, and (if possible) with the degree of the representation given by the non-negative integer deg.

The optional argument filt may be one of the following:

• IsTransformationSemigroup (the default, if filt is not specified),

• IsPartialPermSemigroup,

• IsBipartitionSemigroup,

• IsBlockBijectionSemigroup,

• IsPBRSemigroup,

• IsBooleanMatSemigroup.

If the optional argument deg is not specified, then the smallest possible degree will be used.

gap> S := TrivialSemigroup();
<trivial transformation group of degree 0 with 1 generator>
gap> Size(S);
1
gap> S := TrivialSemigroup(3);
<trivial transformation group of degree 3 with 1 generator>
gap> S := TrivialSemigroup(IsBipartitionSemigroup, 2);
<trivial block bijection group of degree 2 with 1 generator>
gap> Elements(S);
[ <block bijection: [ 1, 2, -1, -2 ]> ]

##### 9.1-2 MonogenicSemigroup
 ‣ MonogenicSemigroup( [filt, ]m, r ) ( function )

Returns: A monogenic semigroup with index m and period r.

If m and r are positive integers, then this function returns a monogenic semigroup S with index m and period r in the representation given by the filter filt.

The optional argument filt may be one of the following:

• IsTransformationSemigroup (the default, if filt is not specified),

• IsPartialPermSemigroup,

• IsBipartitionSemigroup,

• IsBlockBijectionSemigroup,

• IsPBRSemigroup,

• IsBooleanMatSemigroup.

The semigroup S is generated by a single element, $$f$$. S consists of the elements $$f, f ^ {2}, \ldots, f ^ {m}, \ldots, f ^ {m + r - 1}$$. The minimal ideal of S consists of the elements $$f ^ {m}, \ldots, f ^ {m + r - 1}$$ and is isomorphic to the cyclic group of order $$r$$.

See IsMonogenicSemigroup (15.1-11) for more information about monogenic semigroups.

gap> S := MonogenicSemigroup(5, 3);
<commutative non-regular transformation semigroup of size 7, degree 8
with 1 generator>
gap> IsMonogenicSemigroup(S);
true
gap> I := MinimalIdeal(S);;
gap> IsGroupAsSemigroup(I);
true
gap> StructureDescription(I);
"C3"
gap> S := MonogenicSemigroup(IsBlockBijectionSemigroup, 9, 1);
<commutative non-regular block bijection semigroup of size 9,
degree 10 with 1 generator>

##### 9.1-3 RectangularBand
 ‣ RectangularBand( [filt, ]m, n ) ( function )

Returns: An m by n rectangular band.

If m and n are positive integers, then this function returns a semigroup isomorphic to an m by n rectangular band, in the representation given by the filter filt.

The optional argument filt may be one of the following:

• IsTransformationSemigroup (the default, if filt is not specified),

• IsBipartitionSemigroup,

• IsPBRSemigroup,

• IsBooleanMatSemigroup,

• IsReesMatrixSemigroup.

See IsRectangularBand (15.1-15) for more information about rectangular bands.

gap> T := RectangularBand(5, 6);
<regular transformation semigroup of size 30, degree 10 with 6
generators>
gap> IsRectangularBand(T);
true
gap> S := RectangularBand(IsReesMatrixSemigroup, 4, 8);
<Rees matrix semigroup 4x8 over Group(())>
gap> IsRectangularBand(S);
true
gap> IsCompletelySimpleSemigroup(S) and IsHTrivial(S);
true

##### 9.1-4 ZeroSemigroup
 ‣ ZeroSemigroup( [filt, ]n ) ( function )

Returns: A zero semigroup of order n.

If n is a positive integer, then this function returns a zero semigroup of order n in the representation given by the filter filt.

The optional argument filt may be one of the following:

• IsTransformationSemigroup (the default, if filt is not specified),

• IsPartialPermSemigroup,

• IsBipartitionSemigroup,

• IsBlockBijectionSemigroup,

• IsPBRSemigroup,

• IsBooleanMatSemigroup,

• IsReesZeroMatrixSemigroup (provided that n > 1).

See IsZeroSemigroup (15.1-27) for more information about zero semigroups.

gap> S := ZeroSemigroup(5);
<commutative non-regular transformation semigroup of size 5, degree 5
with 4 generators>
gap> IsZeroSemigroup(S);
true
gap> S := ZeroSemigroup(IsPartialPermSemigroup, 15);
<commutative non-regular partial perm semigroup of size 15, rank 14
with 14 generators>
gap> Size(S);
15
gap> z := MultiplicativeZero(S);
<empty partial perm>
gap> IsZeroSemigroup(S);
true
gap> ForAll(S, x -> ForAll(S, y -> x * y = z));
true

##### 9.1-5 LeftZeroSemigroup
 ‣ LeftZeroSemigroup( [filt, ]n ) ( function )
 ‣ RightZeroSemigroup( [filt, ]n ) ( function )

Returns: A left zero (or right zero) semigroup of order n.

If n is a positive integer, then this function returns a left zero (or right zero, as appropriate) semigroup of order n in the representation given by the filter filt. If filt is not specified then the default representation is IsTransformationSemigroup.

The function LeftZeroSemigroup([filt,] n) simply calls RectangularBand([filt,] n, 1) and the function RightZeroSemigroup([filt,] n) simply calls RectangularBand([filt,] 1, n).

For more information about RectangularBand, including its permitted values of filt, see RectangularBand (9.1-3). See IsLeftZeroSemigroup (15.1-10) and IsRightZeroSemigroup (15.1-18) for more information about left zero and right zero semigroups.

gap> S := LeftZeroSemigroup(20);
<transformation semigroup of degree 6 with 20 generators>
gap> IsLeftZeroSemigroup(S);
true
gap> ForAll(Tuples(S, 2), p -> p * p = p);
true
gap> S := RightZeroSemigroup(IsBipartitionSemigroup, 5);
<regular bipartition semigroup of size 5, degree 3 with 5 generators>
gap> IsRightZeroSemigroup(S);
true

##### 9.1-6 BrandtSemigroup
 ‣ BrandtSemigroup( [[filt, ]G, ]n ) ( function )

Returns: An n by n Brandt semigroup over the group G.

If n is a positive integer, then this function returns an n by n Brandt semigroup over the group G in the representation given by the filter filt.

The optional argument filt can be any of the following:

• IsPartialPermSemigroup (the default, if filt is not specified),

• IsReesZeroMatrixSemigroup,

• IsTransformationSemigroup,

• IsBipartitionSemigroup,

• IsPBRSemigroup,

• IsBooleanMatSemigroup,

• IsNTPMatrixSemigroup,

• IsMaxPlusMatrixSemigroup,

• IsMinPlusMatrixSemigroup,

• IsTropicalMaxPlusMatrixSemigroup,

• IsTropicalMinPlusMatrixSemigroup,

• IsProjectiveMaxPlusMatrixSemigroup,

• IsIntegerMatrixSemigroup.

The optional argument G defaults to a trivial permutation group. If present G must be a permutation group, unless filt is IsReesZeroMatrixSemigroup when G may be any type of finite group.

See IsBrandtSemigroup (16.2-2) for more information about Brandt semigroups.

gap> S := BrandtSemigroup(5);
<0-simple inverse partial perm semigroup of rank 5 with 4 generators>
gap> IsBrandtSemigroup(S);
true
gap> S := BrandtSemigroup(IsTransformationSemigroup, 15);
<0-simple transformation semigroup of degree 16 with 28 generators>
gap> Size(S);
226
gap> MultiplicativeZero(S);
Transformation( [ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16 ] )
gap> S := BrandtSemigroup(Group((1, 2)), 3);
<0-simple inverse partial perm semigroup of rank 6 with 3 generators>
gap> S := BrandtSemigroup(IsTransformationSemigroup, Group((1, 2)), 3);
<0-simple transformation semigroup of degree 7 with 5 generators>
gap> S := BrandtSemigroup(IsReesZeroMatrixSemigroup,
>                         DihedralGroup(4),
>                         2);
<Rees 0-matrix semigroup 2x2 over <pc group of size 4 with
2 generators>>
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Bib Ind

generated by GAPDoc2HTML