diff --git a/PackageInfo.g b/PackageInfo.g index 1465f2c63..43f52f5bb 100644 --- a/PackageInfo.g +++ b/PackageInfo.g @@ -34,8 +34,8 @@ _STANDREWSCS := Concatenation(["Jack Cole Building, North Haugh, ", SetPackageInfo(rec( PackageName := "Semigroups", Subtitle := "A package for semigroups and monoids", -Version := "5.3.4", -Date := "24/01/2024", # dd/mm/yyyy format +Version := "5.3.5", +Date := "14/02/2024", # dd/mm/yyyy format License := "GPL-3.0-or-later", ArchiveFormats := ".tar.gz", diff --git a/_data/package.yml b/_data/package.yml index 542c1c573..16431ed30 100644 --- a/_data/package.yml +++ b/_data/package.yml @@ -1,6 +1,6 @@ name: Semigroups -version: 5.3.4 -date: 2024-01-24 +version: 5.3.5 +date: 2024-02-14 description: | A package for semigroups and monoids @@ -107,7 +107,7 @@ packageinfo: https://semigroups.github.io/Semigroups/PackageInfo.g downloads: - name: .tar.gz - url: https://github.com/semigroups/Semigroups/releases/download/v5.3.4/semigroups-5.3.4.tar.gz + url: https://github.com/semigroups/Semigroups/releases/download/v5.3.5/semigroups-5.3.5.tar.gz abstract: | diff --git a/doc/chap0.html b/doc/chap0.html index 893340a2e..7771d2714 100644 --- a/doc/chap0.html +++ b/doc/chap0.html @@ -29,10 +29,10 @@

Semigroups

A package for semigroups and monoids

- 5.3.4

+ 5.3.5

- 24 January 2024 + 14 February 2024

diff --git a/doc/chap0.txt b/doc/chap0.txt index 1573ff813..f462dc8af 100644 --- a/doc/chap0.txt +++ b/doc/chap0.txt @@ -6,10 +6,10 @@  A package for semigroups and monoids  - 5.3.4 + 5.3.5 - 24 January 2024 + 14 February 2024 James Mitchell diff --git a/doc/chap0_mj.html b/doc/chap0_mj.html index 1e5044864..e9061ea3a 100644 --- a/doc/chap0_mj.html +++ b/doc/chap0_mj.html @@ -32,10 +32,10 @@

Semigroups

A package for semigroups and monoids

- 5.3.4

+ 5.3.5

- 24 January 2024 + 14 February 2024

diff --git a/doc/chap1.html b/doc/chap1.html index ca6764287..fa384a166 100644 --- a/doc/chap1.html +++ b/doc/chap1.html @@ -48,7 +48,7 @@

1.1 Introduction

-

This is the manual for the Semigroups package for GAP version 5.3.4. Semigroups 5.3.4 is a distant descendant of the Monoid package for GAP 3 by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc.

+

This is the manual for the Semigroups package for GAP version 5.3.5. Semigroups 5.3.5 is a distant descendant of the Monoid package for GAP 3 by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc.

From Version 3.0.0, Semigroups includes a copy of the libsemigroups C++ library which contains implementations of the Froidure-Pin, Todd-Coxeter, and Knuth-Bendix algorithms (among others) that Semigroups utilises.

@@ -65,7 +65,7 @@

1.2
Part I: elements
-

the different types of elements that are introduced in Semigroups are described in Chapters 3, 4, and 5. These include Bipartition (3.2-1), PBR (4.2-1), and Matrix (5.1-5), which supplement those already defined in the GAP library, such as Transformation (Reference: Transformation for an image list) or PartialPerm (Reference: PartialPerm for a domain and image).

+

the different types of elements that are introduced in Semigroups are described in Chapters 3, 4, and 5. These include Bipartition (3.2-1), PBR (4.2-1), and Matrix (5.1-5), which supplement those already defined in the GAP library, such as Transformation (Reference: Transformation for an image list) or PartialPerm (Reference: PartialPerm for a domain and image).

Part II: semigroups and monoids defined by generating sets
diff --git a/doc/chap1.txt b/doc/chap1.txt index ff14c8b8c..8689b3591 100644 --- a/doc/chap1.txt +++ b/doc/chap1.txt @@ -4,8 +4,8 @@ 1.1 Introduction - This is the manual for the Semigroups package for GAP version 5.3.4. - Semigroups 5.3.4 is a distant descendant of the Monoid package for GAP 3 + This is the manual for the Semigroups package for GAP version 5.3.5. + Semigroups 5.3.5 is a distant descendant of the Monoid package for GAP 3 (http://schmidt.nuigalway.ie/monoid/index.html) by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc. diff --git a/doc/chap10.html b/doc/chap10.html index c8273e968..c8c4c9f8f 100644 --- a/doc/chap10.html +++ b/doc/chap10.html @@ -134,7 +134,7 @@
10.1-1 XClassOfYClass
GreensXClassOfElement(S, Representative(class));
-

DClass can also be used as a synonym for DClassOfHClass, DClassOfLClass, and DClassOfRClass; LClass as a synonym for LClassOfHClass; and RClass as a synonym for RClassOfHClass. See also GreensDClassOfElement (Reference: GreensDClassOfElement) and GreensDClassOfElementNC (10.1-3).

+

DClass can also be used as a synonym for DClassOfHClass, DClassOfLClass, and DClassOfRClass; LClass as a synonym for LClassOfHClass; and RClass as a synonym for RClassOfHClass. See also GreensDClassOfElement (Reference: GreensDClassOfElement) and GreensDClassOfElementNC (10.1-3).

@@ -182,7 +182,7 @@ 
10.1-2 GreensXClassOfElement
‣ RClass( X, f )( operation )

Returns: A Green's class.

-

These functions produce essentially the same output as the GAP library functions with the same names; see GreensDClassOfElement (Reference: GreensDClassOfElement). The main difference is that these functions can be applied to a wider class of objects:

+

These functions produce essentially the same output as the GAP library functions with the same names; see GreensDClassOfElement (Reference: GreensDClassOfElement). The main difference is that these functions can be applied to a wider class of objects:

@@ -245,7 +245,7 @@
10.1-3 GreensXClassOfElementNC

can take a significant amount of time to return a value.

-

See also GreensRClassOfElement (Reference: GreensRClassOfElement) and RClassOfHClass (10.1-1).

+

See also GreensRClassOfElement (Reference: GreensRClassOfElement) and RClassOfHClass (10.1-1).

@@ -280,7 +280,7 @@ 
10.1-4 GreensXClasses
‣ RClasses( obj )( method )

Returns: A list of Green's classes.

-

These functions produce essentially the same output as the GAP library functions with the same names; see GreensDClasses (Reference: GreensDClasses). The main difference is that these functions can be applied to a wider class of objects:

+

These functions produce essentially the same output as the GAP library functions with the same names; see GreensDClasses (Reference: GreensDClasses). The main difference is that these functions can be applied to a wider class of objects:

@@ -429,7 +429,7 @@
10.1-6 MinimalDClass

It is significantly easier to find the minimal D-class of a semigroup, than to find its D-classes.

-

See also PartialOrderOfDClasses (10.1-10), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), MinimalIdeal (11.7-1) and RepresentativeOfMinimalIdeal (11.7-2).

+

See also PartialOrderOfDClasses (10.1-10), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), MinimalIdeal (11.7-1) and RepresentativeOfMinimalIdeal (11.7-2).

@@ -453,7 +453,7 @@ 
10.1-7 MaximalXClasses

Let X be one of Green's D-, L-, or R-relations. Then MaximalXClasses returns the maximal Green's X-classes with respect to the partial order of X-classes.

-

See also PartialOrderOfDClasses (10.1-10), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), and MinimalDClass (10.1-6).

+

See also PartialOrderOfDClasses (10.1-10), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), and MinimalDClass (10.1-6).

@@ -484,7 +484,7 @@ 
10.1-8 NrRegularDClasses

RegularDClasses returns a list of the regular D-classes of the semigroup S.

-

See also IsRegularGreensClass (10.3-2) and IsRegularDClass (Reference: IsRegularDClass).

+

See also IsRegularGreensClass (10.3-2) and IsRegularDClass (Reference: IsRegularDClass).

@@ -521,7 +521,7 @@ 
10.1-9 NrXClasses

since the Green's classes themselves are not created when NrXClasses is called.

-

See also GreensRClasses (10.1-4), GreensRClasses (Reference: GreensRClasses), IteratorOfRClasses (10.2-2), and

+

See also GreensRClasses (10.1-4), GreensRClasses (Reference: GreensRClasses), IteratorOfRClasses (10.2-2), and

@@ -584,7 +584,7 @@ 
10.1-10 PartialOrderOfXClasses
‣ PartialOrderOfRClasses( S )( attribute )

Returns: A digraph.

-

Let X be one of Green's D-, L-, or R-relations. Then PartialOrderOfXClasses returns a digraph D where OutNeighbours(D)[i] contains every j such that GreensXClasses(S)[j] is immediately less than GreensXClasses(S)[i] in the partial order of X-classes of S. The reflexive transitive closure of the digraph D is the partial order of X-classes of S (in the sense of the Digraphs package).

+

Let X be one of Green's D-, L-, or R-relations. Then PartialOrderOfXClasses returns a digraph D where OutNeighbours(D)[i] contains every j such that GreensXClasses(S)[j] is immediately less than GreensXClasses(S)[i] in the partial order of X-classes of S. The reflexive transitive closure of the digraph D is the partial order of X-classes of S (in the sense of the digraphs package).

The partial order on the X-classes is defined as follows.

@@ -603,7 +603,7 @@
10.1-10 PartialOrderOfXClasses
-

See also GreensDClasses (10.1-4), GreensDClasses (Reference: GreensDClasses), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), and \< (10.3-1).

+

See also GreensDClasses (10.1-4), GreensDClasses (Reference: GreensDClasses), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), and \< (10.3-1).

@@ -725,9 +725,9 @@ 
10.2-1 IteratorOfXClassReps
‣ IteratorOfLClassReps( S )( operation )

Returns: An iterator.

-

Returns an iterator of the representatives of the Green's classes contained in the semigroup S. See Reference: Iterators for more information on iterators.

+

Returns an iterator of the representatives of the Green's classes contained in the semigroup S. See Reference: Iterators for more information on iterators.

-

See also GreensRClasses (Reference: GreensRClasses), GreensRClasses (10.1-4), and IteratorOfRClasses (10.2-2).

+

See also GreensRClasses (Reference: GreensRClasses), GreensRClasses (10.1-4), and IteratorOfRClasses (10.2-2).

@@ -737,11 +737,11 @@
10.2-2 IteratorOfXClasses
‣ IteratorOfRClasses( S )( operation )

Returns: An iterator.

-

Returns an iterator of the Green's classes in the semigroup S. See Reference: Iterators for more information on iterators.

+

Returns an iterator of the Green's classes in the semigroup S. See Reference: Iterators for more information on iterators.

This function is useful if you are, for example, looking for an R-class of a semigroup with a particular property but do not necessarily want to compute all of the R-classes.

-

See also GreensRClasses (10.1-4), GreensRClasses (Reference: GreensRClasses), and NrRClasses (10.1-9).

+

See also GreensRClasses (10.1-4), GreensRClasses (Reference: GreensRClasses), and NrRClasses (10.1-9).

The transformation semigroup in the example below has 25147892 elements but it only takes a fraction of a second to find a non-trivial R-class. The inverse semigroup of partial permutations in the example below has size 158122047816 but it only takes a fraction of a second to find an R-class with more than 1000 elements.

@@ -815,9 +815,9 @@
10.3-1 Less than for Green's classes
‣ \<( left-expr, right-expr )( method )

Returns: true or false.

-

The Green's class left-expr is less than or equal to right-expr if they belong to the same semigroup and the representative of left-expr is less than the representative of right-expr under <; see also Representative (Reference: Representative).

+

The Green's class left-expr is less than or equal to right-expr if they belong to the same semigroup and the representative of left-expr is less than the representative of right-expr under <; see also Representative (Reference: Representative).

-

Please note that this is not the usual order on the Green's classes of a semigroup as defined in Reference: Green's Relations. See also IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual).

+

Please note that this is not the usual order on the Green's classes of a semigroup as defined in Reference: Green's Relations. See also IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual).

@@ -853,9 +853,9 @@ 
10.3-2 IsRegularGreensClass
‣ IsRegularGreensClass( class )( property )

Returns: true or false.

-

This function returns true if class is a regular Green's class and false if it is not. See also IsRegularDClass (Reference: IsRegularDClass), IsGroupHClass (Reference: IsGroupHClass), GroupHClassOfGreensDClass (Reference: GroupHClassOfGreensDClass), GroupHClass (10.4-1), NrIdempotents (11.9-2), Idempotents (11.9-1), and IsRegularSemigroupElement (Reference: IsRegularSemigroupElement).

+

This function returns true if class is a regular Green's class and false if it is not. See also IsRegularDClass (Reference: IsRegularDClass), IsGroupHClass (Reference: IsGroupHClass), GroupHClassOfGreensDClass (Reference: GroupHClassOfGreensDClass), GroupHClass (10.4-1), NrIdempotents (11.9-2), Idempotents (11.9-1), and IsRegularSemigroupElement (Reference: IsRegularSemigroupElement).

-

The function IsRegularDClass produces the same output as the GAP library functions with the same name; see IsRegularDClass (Reference: IsRegularDClass).

+

The function IsRegularDClass produces the same output as the GAP library functions with the same name; see IsRegularDClass (Reference: IsRegularDClass).

@@ -919,9 +919,9 @@ 
10.4-1 GroupHClass
‣ GroupHClass( class )( attribute )

Returns: A group H-class of the D-class class if it is regular and fail if it is not.

-

GroupHClass is a synonym for GroupHClassOfGreensDClass (Reference: GroupHClassOfGreensDClass).

+

GroupHClass is a synonym for GroupHClassOfGreensDClass (Reference: GroupHClassOfGreensDClass).

-

See also IsGroupHClass (Reference: IsGroupHClass), IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2), and IsRegularSemigroup (12.1-17).

+

See also IsGroupHClass (Reference: IsGroupHClass), IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2), and IsRegularSemigroup (12.1-17).

@@ -1029,7 +1029,7 @@ 
10.4-3 StructureDescriptionSchutzenbergerGroups
‣ StructureDescriptionSchutzenbergerGroups( S )( attribute )

Returns: Distinct structure descriptions of the Schutzenberger groups of a semigroup.

-

StructureDescriptionSchutzenbergerGroups returns the distinct values of StructureDescription (Reference: StructureDescription) when it is applied to the Schutzenberger groups of the R-classes of the semigroup S.

+

StructureDescriptionSchutzenbergerGroups returns the distinct values of StructureDescription (Reference: StructureDescription) when it is applied to the Schutzenberger groups of the R-classes of the semigroup S.

@@ -1060,7 +1060,7 @@ 
10.4-4 StructureDescriptionMaximalSubgroups
‣ StructureDescriptionMaximalSubgroups( S )( attribute )

Returns: Distinct structure descriptions of the maximal subgroups of a semigroup.

-

StructureDescriptionMaximalSubgroups returns the distinct values of StructureDescription (Reference: StructureDescription) when it is applied to the maximal subgroups of the semigroup S.

+

StructureDescriptionMaximalSubgroups returns the distinct values of StructureDescription (Reference: StructureDescription) when it is applied to the maximal subgroups of the semigroup S.

@@ -1109,7 +1109,7 @@ 
10.4-6 StructureDescription
‣ StructureDescription( class )( attribute )

Returns: A string or fail.

-

StructureDescription returns the value of StructureDescription (Reference: StructureDescription) when it is applied to a group isomorphic to the group H-class class. If class is not a group H-class, then fail is returned.

+

StructureDescription returns the value of StructureDescription (Reference: StructureDescription) when it is applied to a group isomorphic to the group H-class class. If class is not a group H-class, then fail is returned.

@@ -1143,9 +1143,9 @@ 
10.4-7 InjectionPrincipalFactor

InjectionPrincipalFactor returns an injective function from the D-class D to a Rees (0-)matrix semigroup, which contains the principal factor of D as a subsemigroup.

-

If D is a subsemigroup of its parent semigroup, then the function returned by InjectionPrincipalFactor or IsomorphismReesMatrixSemigroup is an isomorphism from D to a Rees matrix semigroup; see ReesMatrixSemigroup (Reference: ReesMatrixSemigroup).

+

If D is a subsemigroup of its parent semigroup, then the function returned by InjectionPrincipalFactor or IsomorphismReesMatrixSemigroup is an isomorphism from D to a Rees matrix semigroup; see ReesMatrixSemigroup (Reference: ReesMatrixSemigroup).

-

If D is not a semigroup, then the function returned by InjectionPrincipalFactor is an injective function from D to a Rees 0-matrix semigroup isomorphic to the principal factor of D; see ReesZeroMatrixSemigroup (Reference: ReesZeroMatrixSemigroup). In this case, IsomorphismReesMatrixSemigroup and IsomorphismReesZeroMatrixSemigroup returns an error.

+

If D is not a semigroup, then the function returned by InjectionPrincipalFactor is an injective function from D to a Rees 0-matrix semigroup isomorphic to the principal factor of D; see ReesZeroMatrixSemigroup (Reference: ReesZeroMatrixSemigroup). In this case, IsomorphismReesMatrixSemigroup and IsomorphismReesZeroMatrixSemigroup returns an error.

InjectionNormalizedPrincipalFactor returns the composition of InjectionPrincipalFactor with RZMSNormalization (6.5-6) or RMSNormalization (6.5-7) as appropriate.

diff --git a/doc/chap10.txt b/doc/chap10.txt index 1724809c9..085e5f67f 100644 --- a/doc/chap10.txt +++ b/doc/chap10.txt @@ -518,7 +518,7 @@ GreensXClasses(S)[j] is immediately less than GreensXClasses(S)[i] in the partial order of X-classes of S. The reflexive transitive closure of the digraph D is the partial order of X-classes of S (in the sense of the - Digraphs package). + digraphs package). The partial order on the X-classes is defined as follows. diff --git a/doc/chap10_mj.html b/doc/chap10_mj.html index cc1378493..4c335d49e 100644 --- a/doc/chap10_mj.html +++ b/doc/chap10_mj.html @@ -587,7 +587,7 @@
10.1-10 PartialOrderOfXClasses
‣ PartialOrderOfRClasses( S )( attribute )

Returns: A digraph.

-

Let X be one of Green's \(\mathscr{D}\)-, \(\mathscr{L}\)-, or \(\mathscr{R}\)-relations. Then PartialOrderOfXClasses returns a digraph D where OutNeighbours(D)[i] contains every j such that GreensXClasses(S)[j] is immediately less than GreensXClasses(S)[i] in the partial order of X-classes of S. The reflexive transitive closure of the digraph D is the partial order of X-classes of S (in the sense of the Digraphs package).

+

Let X be one of Green's \(\mathscr{D}\)-, \(\mathscr{L}\)-, or \(\mathscr{R}\)-relations. Then PartialOrderOfXClasses returns a digraph D where OutNeighbours(D)[i] contains every j such that GreensXClasses(S)[j] is immediately less than GreensXClasses(S)[i] in the partial order of X-classes of S. The reflexive transitive closure of the digraph D is the partial order of X-classes of S (in the sense of the digraphs package).

The partial order on the X-classes is defined as follows.

diff --git a/doc/chap11.html b/doc/chap11.html index 0c0f48475..c47662a13 100644 --- a/doc/chap11.html +++ b/doc/chap11.html @@ -295,9 +295,9 @@
11.2-1 RightCayleyDigraph
‣ LeftCayleyDigraph( S )( attribute )

Returns: A digraph.

-

When the argument S is a semigroup satisfying CanUseFroidurePin (6.1-4), RightCayleyDigraph returns the right Cayley graph of S, as a Digraph (Digraphs: Digraph) digraph where vertex OutNeighbours(digraph)[i][j] is PositionCanonical(S, AsListCanonical(S)[i] * GeneratorsOfSemigroup(S)[j]). The digraph returned by LeftCayleyDigraph is defined analogously.

+

When the argument S is a semigroup satisfying CanUseFroidurePin (6.1-4), RightCayleyDigraph returns the right Cayley graph of S, as a Digraph (Digraphs: Digraph) digraph where vertex OutNeighbours(digraph)[i][j] is PositionCanonical(S, AsListCanonical(S)[i] * GeneratorsOfSemigroup(S)[j]). The digraph returned by LeftCayleyDigraph is defined analogously.

-

The digraph returned by this attribute belongs to the category IsCayleyDigraph (Digraphs: IsCayleyDigraph), the semigroup S and the generators used to create the digraph can be recovered from the digraph using SemigroupOfCayleyDigraph (Digraphs: SemigroupOfCayleyDigraph) and GeneratorsOfCayleyDigraph (Digraphs: GeneratorsOfCayleyDigraph).

+

The digraph returned by this attribute belongs to the category IsCayleyDigraph (Digraphs: IsCayleyDigraph), the semigroup S and the generators used to create the digraph can be recovered from the digraph using SemigroupOfCayleyDigraph (Digraphs: SemigroupOfCayleyDigraph) and GeneratorsOfCayleyDigraph (Digraphs: GeneratorsOfCayleyDigraph).

@@ -420,7 +420,7 @@ 
11.5-1 EvaluateWord
-

Note that EvaluateWord(gens, []) returns One(gens) if gens belongs to the category IsMultiplicativeElementWithOne (Reference: IsMultiplicativeElementWithOne).

+

Note that EvaluateWord(gens, []) returns One(gens) if gens belongs to the category IsMultiplicativeElementWithOne (Reference: IsMultiplicativeElementWithOne).

@@ -471,7 +471,7 @@ 
11.5-2 Factorization

Note that Factorization does not always return a word of minimum length; see MinimalFactorization (11.5-3).

-

See also EvaluateWord (11.5-1) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

+

See also EvaluateWord (11.5-1) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

@@ -519,7 +519,7 @@ 
11.5-3 MinimalFactorization

MinimalFactorization involves exhaustively enumerating S until the element x is found, and so MinimalFactorization may be less efficient than Factorization (11.5-2) for some semigroups.

-

Unlike Factorization (11.5-2) this operation does not distinguish between semigroups and inverse semigroups. See also EvaluateWord (11.5-1) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

+

Unlike Factorization (11.5-2) this operation does not distinguish between semigroups and inverse semigroups. See also EvaluateWord (11.5-1) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

@@ -546,7 +546,7 @@ 
11.5-4 NonTrivialFactorization

When x does not belong to GeneratorsOfSemigroup(S), any factorization of x is non-trivial. In this case, NonTrivialFactorization returns the same word as Factorization (11.5-2).

-

See also EvaluateWord (11.5-1) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

+

See also EvaluateWord (11.5-1) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

@@ -588,7 +588,7 @@ 
11.6-1 Generators
for a group
-

Generators(S) is a synonym for GeneratorsOfGroup (Reference: GeneratorsOfGroup).

+

Generators(S) is a synonym for GeneratorsOfGroup (Reference: GeneratorsOfGroup).

for an ideal of semigroup
@@ -596,19 +596,19 @@
11.6-1 Generators
for a semigroup
-

Generators(S) is a synonym for GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

+

Generators(S) is a synonym for GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

for a monoid
-

Generators(S) is a synonym for GeneratorsOfMonoid (Reference: GeneratorsOfMonoid).

+

Generators(S) is a synonym for GeneratorsOfMonoid (Reference: GeneratorsOfMonoid).

for an inverse semigroup
-

Generators(S) is a synonym for GeneratorsOfInverseSemigroup (Reference: GeneratorsOfInverseSemigroup).

+

Generators(S) is a synonym for GeneratorsOfInverseSemigroup (Reference: GeneratorsOfInverseSemigroup).

for an inverse monoid
-

Generators(S) is a synonym for GeneratorsOfInverseMonoid (Reference: GeneratorsOfInverseMonoid).

+

Generators(S) is a synonym for GeneratorsOfInverseMonoid (Reference: GeneratorsOfInverseMonoid).

@@ -652,7 +652,7 @@
11.6-2 SmallGeneratingSet
       X(SmallXGeneratingSet(coll)) = X(coll);
-

where X is any of Semigroup (Reference: Semigroup), Monoid (Reference: Monoid), InverseSemigroup (Reference: InverseSemigroup), or InverseMonoid (Reference: InverseMonoid).

+

where X is any of Semigroup (Reference: Semigroup), Monoid (Reference: Monoid), InverseSemigroup (Reference: InverseSemigroup), or InverseMonoid (Reference: InverseMonoid).

If the number of generators for S is already relatively small, then these functions will often return the original generating set. These functions may return different results in different GAP sessions.

@@ -780,7 +780,7 @@
11.6-4 MinimalSemigroupGeneratingSet
X(MinimalXGeneratingSet(S)) = S;
-

where X is one of Semigroup (Reference: Semigroup), Monoid (Reference: Monoid), InverseSemigroup (Reference: InverseSemigroup), or InverseMonoid (Reference: InverseMonoid).

+

where X is one of Semigroup (Reference: Semigroup), Monoid (Reference: Monoid), InverseSemigroup (Reference: InverseSemigroup), or InverseMonoid (Reference: InverseMonoid).

For many types of semigroup, it is not currently possible to find a MinimalXGeneratingSet with the Semigroups package.

@@ -910,7 +910,7 @@
11.7-1 MinimalIdeal

It is significantly easier to find the minimal D-class of a semigroup, than to find its D-classes.

-

See also RepresentativeOfMinimalIdeal (11.7-2), PartialOrderOfDClasses (10.1-10), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), and MinimalDClass (10.1-6).

+

See also RepresentativeOfMinimalIdeal (11.7-2), PartialOrderOfDClasses (10.1-10), IsGreensLessThanOrEqual (Reference: IsGreensLessThanOrEqual), and MinimalDClass (10.1-6).

@@ -976,7 +976,7 @@ 
11.7-3 MultiplicativeZero
‣ MultiplicativeZero( S )( attribute )

Returns: The zero element of a semigroup.

-

MultiplicativeZero returns the zero element of the semigroup S if it exists and fail if it does not. See also MultiplicativeZero (Reference: MultiplicativeZero).

+

MultiplicativeZero returns the zero element of the semigroup S if it exists and fail if it does not. See also MultiplicativeZero (Reference: MultiplicativeZero).

@@ -1057,7 +1057,7 @@ 
11.8-1 GroupOfUnits

If a semigroup S has an identity e, then the group of units of S is the set of those s in S such that there exists t in S where s*t=t*s=e. Equivalently, the group of units is the H-class of the identity of S.

-

See also GreensHClassOfElement (Reference: GreensHClassOfElement), IsMonoidAsSemigroup (12.1-13), and MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement).

+

See also GreensHClassOfElement (Reference: GreensHClassOfElement), IsMonoidAsSemigroup (12.1-13), and MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement).

@@ -1108,9 +1108,9 @@ 
11.9-1 Idempotents

If the optional second argument n is present and obj is a semigroup, then a list of the idempotents in obj of rank n is returned. If you are only interested in the idempotents of a given rank, then the second version of the function will probably be faster. However, if the optional second argument is present, then nothing is stored in obj and so every time the function is called the computation must be repeated.

-

This functions produce essentially the same output as the GAP library function with the same name; see Idempotents (Reference: Idempotents). The main difference is that this function can be applied to a wider class of objects as described above.

+

This functions produce essentially the same output as the GAP library function with the same name; see Idempotents (Reference: Idempotents). The main difference is that this function can be applied to a wider class of objects as described above.

-

See also IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2) IsGroupHClass (Reference: IsGroupHClass), NrIdempotents (11.9-2), and GroupHClass (10.4-1).

+

See also IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2) IsGroupHClass (Reference: IsGroupHClass), NrIdempotents (11.9-2), and GroupHClass (10.4-1).

@@ -1161,7 +1161,7 @@ 
11.9-2 NrIdempotents

This function returns the number of idempotents in obj where obj can be a semigroup, D-, L-, H-, or R-class. If the actual idempotents are not required, then it is more efficient to use NrIdempotents(obj) than Length(Idempotents(obj)) since the idempotents themselves are not created when NrIdempotents is called.

-

See also Idempotents (Reference: Idempotents) and Idempotents (11.9-1), IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2) IsGroupHClass (Reference: IsGroupHClass), and GroupHClass (10.4-1).

+

See also Idempotents (Reference: Idempotents) and Idempotents (11.9-1), IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2) IsGroupHClass (Reference: IsGroupHClass), and GroupHClass (10.4-1).

@@ -1491,9 +1491,9 @@ 
11.11-4 DigraphOfAction

If act(list[i], S.j) is the k-th item in list, then in the output digraph there is an edge from the vertex i to the vertex k labelled by j.

-

The values in list and the additional values generated are stored in the vertex labels of the output digraph; see DigraphVertexLabels (Digraphs: DigraphVertexLabels), and the edge labels are stored in the DigraphEdgeLabels (Digraphs: DigraphEdgeLabels)

+

The values in list and the additional values generated are stored in the vertex labels of the output digraph; see DigraphVertexLabels (Digraphs: DigraphVertexLabels), and the edge labels are stored in the DigraphEdgeLabels (Digraphs: DigraphEdgeLabels)

-

The digraph returned by DigraphOfAction has no multiple edges; see IsMultiDigraph (Digraphs: IsMultiDigraph).

+

The digraph returned by DigraphOfAction has no multiple edges; see IsMultiDigraph (Digraphs: IsMultiDigraph).

@@ -1526,11 +1526,11 @@ 
11.11-5 DigraphOfActionOnPoints
‣ DigraphOfActionOnPoints( S, n )( attribute )

Returns: A digraph.

-

If S is a transformation semigroup and n is a non-negative integer, then DigraphOfActionOnPoints(S, n) returns a digraph representing the OnPoints (Reference: OnPoints) action of S on the set [1 .. n].

+

If S is a transformation semigroup and n is a non-negative integer, then DigraphOfActionOnPoints(S, n) returns a digraph representing the OnPoints (Reference: OnPoints) action of S on the set [1 .. n].

-

If the optional argument n is not specified, then by default the degree of S will be chosen for n; see DegreeOfTransformationSemigroup (Reference: DegreeOfTransformationSemigroup).

+

If the optional argument n is not specified, then by default the degree of S will be chosen for n; see DegreeOfTransformationSemigroup (Reference: DegreeOfTransformationSemigroup).

-

The digraph returned by DigraphOfActionOnPoints has n vertices, where the vertex i corresponds to the point i. For each point i in [1 .. n], and for each generator f in GeneratorsOfSemigroup(S), there is an edge from the vertex i to the vertex i ^ f. See GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) for further information.

+

The digraph returned by DigraphOfActionOnPoints has n vertices, where the vertex i corresponds to the point i. For each point i in [1 .. n], and for each generator f in GeneratorsOfSemigroup(S), there is an edge from the vertex i to the vertex i ^ f. See GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) for further information.

@@ -1578,7 +1578,7 @@ 
11.11-7 IsTransitive

If the optional second argument is a positive integer n, then IsTransitive returns true if S is transitive on [1 .. n], and false if it is not.

-

If the optional second argument is not provided, then the degree of S is used by default; see DegreeOfTransformationSemigroup (Reference: DegreeOfTransformationSemigroup).

+

If the optional second argument is not provided, then the degree of S is used by default; see DegreeOfTransformationSemigroup (Reference: DegreeOfTransformationSemigroup).

@@ -1627,7 +1627,7 @@ 
11.11-9 CanonicalTransformation

If trans is a transformation, and n is a non-negative integer such that the restriction of trans to [1 .. n] defines a transformation of [1 .. n], then CanonicalTransformation returns a canonical representative of the transformation trans restricted to [1 .. n].

-

More specifically, let C(n) be a class of transformations of degree n such that AsDigraph returns isomorphic digraphs for every pair of element elements in C(n). Recall that for a transformation trans and integer n the function AsDigraph returns a digraph with n vertices and an edge with source x and range x^trans for every x in [1 .. n]. See AsDigraph (Digraphs: AsDigraph for a binary relation). Then CanonicalTransformation returns a canonical representative of the class C(n) that contains trans.

+

More specifically, let C(n) be a class of transformations of degree n such that AsDigraph returns isomorphic digraphs for every pair of element elements in C(n). Recall that for a transformation trans and integer n the function AsDigraph returns a digraph with n vertices and an edge with source x and range x^trans for every x in [1 .. n]. See AsDigraph (Digraphs: AsDigraph for a binary relation). Then CanonicalTransformation returns a canonical representative of the class C(n) that contains trans.

@@ -1647,7 +1647,7 @@ 
11.11-10 IsConnectedTransformationSemigroup
‣ IsConnectedTransformationSemigroup( S )( property )

Returns: true or false.

-

A transformation semigroup S is connected if the digraph returned by the function DigraphOfActionOnPoints is connected. See IsConnectedDigraph (Digraphs: IsConnectedDigraph) and DigraphOfActionOnPoints (11.11-5). The function IsConnectedTransformationSemigroup returns true if the semigroup S is connected and false otherwise.

+

A transformation semigroup S is connected if the digraph returned by the function DigraphOfActionOnPoints is connected. See IsConnectedDigraph (Digraphs: IsConnectedDigraph) and DigraphOfActionOnPoints (11.11-5). The function IsConnectedTransformationSemigroup returns true if the semigroup S is connected and false otherwise.

@@ -1866,7 +1866,7 @@ 
11.14-3 MajorantClosure

MajorantClosure returns a majorantly closed subset of an inverse semigroup of partial permutations, block bijections or partial permutation bipartitions, S, as a list. See IsMajorantlyClosed (12.2-8).

-

The result contains all elements of S which are greater than or equal to any element of T (with respect to the natural partial order NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm)). In particular, the result is a superset of T.

+

The result contains all elements of S which are greater than or equal to any element of T (with respect to the natural partial order NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm)). In particular, the result is a superset of T.

Note that T can be a subset of S or a subsemigroup of S.

@@ -1911,7 +1911,7 @@
11.14-4 Minorants

Minorants takes an element f from an inverse semigroup of partial permutations, block bijections or partial permutation bipartitions S, and returns a list of the minorants of f in S.

-

A minorant of f is an element of S which is strictly less than f in the natural partial order of S. See NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm).

+

A minorant of f is an element of S which is strictly less than f in the natural partial order of S. See NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm).

@@ -1935,7 +1935,7 @@ 
11.14-5 PrimitiveIdempotents
‣ PrimitiveIdempotents( S )( attribute )

Returns: A list of elements.

-

An idempotent in an inverse semigroup S is primitive if it is non-zero and minimal with respect to the NaturalPartialOrder (Reference: NaturalPartialOrder) on S. PrimitiveIdempotents returns the list of primitive idempotents in the inverse semigroup S.

+

An idempotent in an inverse semigroup S is primitive if it is non-zero and minimal with respect to the NaturalPartialOrder (Reference: NaturalPartialOrder) on S. PrimitiveIdempotents returns the list of primitive idempotents in the inverse semigroup S.

@@ -2064,11 +2064,11 @@ 
11.14-9 VagnerPrestonRepresentation
‣ VagnerPrestonRepresentation( S )( attribute )

Returns: An isomorphism to an inverse semigroup of partial permutations.

-

VagnerPrestonRepresentation returns an isomorphism from an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: Inverse), to the inverse semigroup of partial permutations T of degree equal to the size of S, which is obtained using the Vagner-Preston Representation Theorem.

+

VagnerPrestonRepresentation returns an isomorphism from an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: inverse), to the inverse semigroup of partial permutations T of degree equal to the size of S, which is obtained using the Vagner-Preston Representation Theorem.

More precisely, if f:S-> T is the isomorphism returned by VagnerPrestonRepresentation(S) and x is in S, then f(x) is the partial permutation with domain Sx^-1 and range Sx^-1x defined by f(x): sx^-1↦ sx^-1x.

-

In many cases, it is possible to find a smaller degree representation than that provided by VagnerPrestonRepresentation using IsomorphismPartialPermSemigroup (Reference: IsomorphismPartialPermSemigroup) or SmallerDegreePartialPermRepresentation (11.14-8).

+

In many cases, it is possible to find a smaller degree representation than that provided by VagnerPrestonRepresentation using IsomorphismPartialPermSemigroup (Reference: IsomorphismPartialPermSemigroup) or SmallerDegreePartialPermRepresentation (11.14-8).

@@ -2208,7 +2208,7 @@ 
11.15-2 NambooripadPartialOrder
‣ NambooripadPartialOrder( S )( attribute )

Returns: The Nambooripad partial order on a regular semigroup.

-

The Nambooripad partial order on a regular semigroup S is defined by st if the principal right ideal of S generated by s is contained in the principal right ideal of S generated by t and there is an idempotent e in the R-class of s such that s=et. The Nambooripad partial order coincides with the natural partial order when considering inverse semigroups NaturalPartialOrder (Reference: NaturalPartialOrder).

+

The Nambooripad partial order on a regular semigroup S is defined by st if the principal right ideal of S generated by s is contained in the principal right ideal of S generated by t and there is an idempotent e in the R-class of s such that s=et. The Nambooripad partial order coincides with the natural partial order when considering inverse semigroups NaturalPartialOrder (Reference: NaturalPartialOrder).

NambooripadPartialOrder returns the Nambooripad partial order on the regular semigroup S as a list of sets of positive integers where entry i in NaturalPartialOrder(S) is the set of positions in Elements(S) of elements which are less than Elements(S)[i]. See also NambooripadLeqRegularSemigroup (11.15-1).

diff --git a/doc/chap11.txt b/doc/chap11.txt index 00d49e8d1..7c577e285 100644 --- a/doc/chap11.txt +++ b/doc/chap11.txt @@ -2020,7 +2020,7 @@ VagnerPrestonRepresentation returns an isomorphism from an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via - Inverse (Reference: Inverse), to the inverse semigroup of partial + Inverse (Reference: inverse), to the inverse semigroup of partial permutations T of degree equal to the size of S, which is obtained using the Vagner-Preston Representation Theorem. diff --git a/doc/chap11_mj.html b/doc/chap11_mj.html index c4ae5df99..b6c354e03 100644 --- a/doc/chap11_mj.html +++ b/doc/chap11_mj.html @@ -2067,7 +2067,7 @@
11.14-9 VagnerPrestonRepresentation
‣ VagnerPrestonRepresentation( S )( attribute )

Returns: An isomorphism to an inverse semigroup of partial permutations.

-

VagnerPrestonRepresentation returns an isomorphism from an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: Inverse), to the inverse semigroup of partial permutations T of degree equal to the size of S, which is obtained using the Vagner-Preston Representation Theorem.

+

VagnerPrestonRepresentation returns an isomorphism from an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: inverse), to the inverse semigroup of partial permutations T of degree equal to the size of S, which is obtained using the Vagner-Preston Representation Theorem.

More precisely, if \(f:S\to T\) is the isomorphism returned by VagnerPrestonRepresentation(S) and \(x\) is in S, then \(f(x)\) is the partial permutation with domain \(Sx^{-1}\) and range \(Sx^{-1}x\) defined by \(f(x): sx^{-1}\mapsto sx^{-1}x\).

diff --git a/doc/chap12.html b/doc/chap12.html index c22dcb323..b881f45b1 100644 --- a/doc/chap12.html +++ b/doc/chap12.html @@ -178,7 +178,7 @@
12.1-3 IsCommutativeSemigroup
‣ IsCommutativeSemigroup( S )( property )

Returns: true or false.

-

IsCommutativeSemigroup returns true if the semigroup S is commutative and false if it is not. The function IsCommutative (Reference: IsCommutative) can also be used to test if a semigroup is commutative.

+

IsCommutativeSemigroup returns true if the semigroup S is commutative and false if it is not. The function IsCommutative (Reference: IsCommutative) can also be used to test if a semigroup is commutative.

A semigroup S is commutative if x * y = y * x for all x, y in S.

@@ -479,11 +479,11 @@
12.1-13 IsMonoidAsSemigroup
‣ IsMonoidAsSemigroup( S )( property )

Returns: true or false.

-

IsMonoidAsSemigroup returns true if and only if the semigroup S is mathematically a monoid, i.e. if and only if it contains a MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement).

+

IsMonoidAsSemigroup returns true if and only if the semigroup S is mathematically a monoid, i.e. if and only if it contains a MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement).

-

It is possible that a semigroup which satisfies IsMonoidAsSemigroup is not in the GAP category IsMonoid (Reference: IsMonoid). This is possible if the MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement) of S is not equal to the One (Reference: One) of any element in S. Therefore a semigroup satisfying IsMonoidAsSemigroup may not possess the attributes of a monoid (such as, GeneratorsOfMonoid (Reference: GeneratorsOfMonoid)).

+

It is possible that a semigroup which satisfies IsMonoidAsSemigroup is not in the GAP category IsMonoid (Reference: IsMonoid). This is possible if the MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement) of S is not equal to the One (Reference: One) of any element in S. Therefore a semigroup satisfying IsMonoidAsSemigroup may not possess the attributes of a monoid (such as, GeneratorsOfMonoid (Reference: GeneratorsOfMonoid)).

-

See also One (Reference: One), IsInverseMonoid (Reference: IsInverseMonoid) and IsomorphismTransformationMonoid (Reference: IsomorphismTransformationMonoid).

+

See also One (Reference: One), IsInverseMonoid (Reference: IsInverseMonoid) and IsomorphismTransformationMonoid (Reference: IsomorphismTransformationMonoid).

@@ -518,7 +518,7 @@ 
12.1-14 IsOrthodoxSemigroup

A semigroup is orthodox if it is regular and its idempotent elements form a subsemigroup. Every inverse semigroup is also an orthodox semigroup.

-

See also IsRegularSemigroup (12.1-17) and IsRegularSemigroup (Reference: IsRegularSemigroup).

+

See also IsRegularSemigroup (12.1-17) and IsRegularSemigroup (Reference: IsRegularSemigroup).

@@ -598,7 +598,7 @@ 
12.1-17 IsRegularSemigroup

A semigroup S is regular if for all x in S there exists y in S such that x * y * x = x. Every inverse semigroup is regular, and a semigroup of partial permutations is regular if and only if it is an inverse semigroup.

-

See also IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2), and IsRegularSemigroupElement (Reference: IsRegularSemigroupElement).

+

See also IsRegularDClass (Reference: IsRegularDClass), IsRegularGreensClass (10.3-2), and IsRegularSemigroupElement (Reference: IsRegularSemigroupElement).

@@ -752,7 +752,7 @@ 
12.1-23 IsSynchronizingSemigroup
‣ IsSynchronizingSemigroup( S )( property )

Returns: true or false.

-

For a positive integer n, IsSynchronizingSemigroup returns true if the semigroup of transformations S contains a transformation with constant value on [1 .. n] where n is the degree of the semigroup. See also ConstantTransformation (Reference: ConstantTransformation).

+

For a positive integer n, IsSynchronizingSemigroup returns true if the semigroup of transformations S contains a transformation with constant value on [1 .. n] where n is the degree of the semigroup. See also ConstantTransformation (Reference: ConstantTransformation).

Note that the semigroup consisting of the identity transformation is the unique transformation semigroup with degree 0. In this special case, the function IsSynchronizingSemigroup will return false.

@@ -966,7 +966,7 @@
12.2-2 IsBrandtSemigroup
‣ IsBrandtSemigroup( S )( property )

Returns: true or false.

-

IsBrandtSemigroup return true if the semigroup S is a finite 0-simple inverse semigroup, and false if it is not. See also IsZeroSimpleSemigroup (12.1-28) and IsInverseSemigroup (Reference: IsInverseSemigroup).

+

IsBrandtSemigroup return true if the semigroup S is a finite 0-simple inverse semigroup, and false if it is not. See also IsZeroSimpleSemigroup (12.1-28) and IsInverseSemigroup (Reference: IsInverseSemigroup).

@@ -1048,7 +1048,7 @@ 
12.2-4 IsFInverseSemigroup
‣ IsFInverseSemigroup( S )( property )

Returns: true or false.

-

This functions determines whether a given semigroup is an F-inverse semigroup. An F-inverse semigroup is a semigroup which satisfies IsEUnitaryInverseSemigroup (12.2-3) as well as being isomorphic to some McAlisterTripleSemigroup (8.4-2) where the McAlisterTripleSemigroupPartialOrder (8.4-4) satisfies IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph). McAlister triple semigroups are a representation of E-unitary inverse semigroups and more can be read about them in Chapter 8.4.

+

This functions determines whether a given semigroup is an F-inverse semigroup. An F-inverse semigroup is a semigroup which satisfies IsEUnitaryInverseSemigroup (12.2-3) as well as being isomorphic to some McAlisterTripleSemigroup (8.4-2) where the McAlisterTripleSemigroupPartialOrder (8.4-4) satisfies IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph). McAlister triple semigroups are a representation of E-unitary inverse semigroups and more can be read about them in Chapter 8.4.

@@ -1071,7 +1071,7 @@ 
12.2-5 IsFInverseMonoid
‣ IsFInverseMonoid( S )( property )

Returns: true or false.

-

This function determines whether a given semigroup is an F-inverse monoid. A semigroup is an F-inverse monoid when it satisfies IsMonoid (Reference: IsMonoid) and IsFInverseSemigroup (12.2-4).

+

This function determines whether a given semigroup is an F-inverse monoid. A semigroup is an F-inverse monoid when it satisfies IsMonoid (Reference: IsMonoid) and IsFInverseSemigroup (12.2-4).

@@ -1106,7 +1106,7 @@
12.2-7 IsJoinIrreducible

IsJoinIrreducible determines whether an element x of an inverse semigroup S of partial permutations, block bijections or partial permutation bipartitions is join irreducible.

-

An element x is join irreducible when it is not the least upper bound (with respect to the natural partial order NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm)) of any subset of S not containing x.

+

An element x is join irreducible when it is not the least upper bound (with respect to the natural partial order NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm)) of any subset of S not containing x.

@@ -1153,7 +1153,7 @@ 
12.2-8 IsMajorantlyClosed

IsMajorantlyClosed determines whether the subset T of the inverse semigroup of partial permutations, block bijections or partial permutation bipartitions S is majorantly closed in S. See also MajorantClosure (11.14-3).

-

We say that T is majorantly closed in S if it contains all elements of S which are greater than or equal to any element of T, with respect to the natural partial order. See NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm).

+

We say that T is majorantly closed in S if it contains all elements of S which are greater than or equal to any element of T, with respect to the natural partial order. See NaturalLeqPartialPerm (Reference: NaturalLeqPartialPerm).

Note that T can be a subset of S or a subsemigroup of S.

diff --git a/doc/chap13.html b/doc/chap13.html index 70009a234..dafa3e3f7 100644 --- a/doc/chap13.html +++ b/doc/chap13.html @@ -360,13 +360,13 @@

13.3 @@ -471,7 +471,7 @@
13.3-5 EquivalenceRelationLookup

Note that the order in which numbers appear in the list is non-deterministic, and two equivalence relations describing the same mathematical relation might therefore have different lookups. Note also that the maximum value of the list may not be the number of classes of equiv, and that any integer might not be included. However, see EquivalenceRelationCanonicalLookup (13.3-6).

-

See also EquivalenceRelationPartition (Reference: EquivalenceRelationPartition).

+

See also EquivalenceRelationPartition (Reference: EquivalenceRelationPartition).

@@ -498,7 +498,7 @@ 
13.3-6 EquivalenceRelationCanonicalLookup

Two elements of the semigroup on which the equivalence relation is defined are related in the equivalence relation if and only if they have the same number at their respective positions in the lookup.

-

See also EquivalenceRelationLookup (13.3-5) and EquivalenceRelationPartition (Reference: EquivalenceRelationPartition).

+

See also EquivalenceRelationLookup (13.3-5) and EquivalenceRelationPartition (Reference: EquivalenceRelationPartition).

@@ -518,7 +518,7 @@ 
13.3-7 EquivalenceRelationCanonicalPartition

This attribute returns a list of lists of elements of the underlying set of the semigroup congruence cong. These lists are precisely the nontrivial equivalence classes of cong. The order in which the classes appear is deterministic, and the order of the elements inside each class is also deterministic. Hence, two congruence objects have the same EquivalenceRelationCanonicalPartition if and only if they describe the same relation.

-

See also EquivalenceRelationPartition (Reference: EquivalenceRelationPartition), a similar attribute which does not have canonical ordering, but which is likely to be faster.

+

See also EquivalenceRelationPartition (Reference: EquivalenceRelationPartition), a similar attribute which does not have canonical ordering, but which is likely to be faster.

@@ -723,7 +723,7 @@ 
13.4-4 IsCongruencePoset

This category contains all congruence posets. A congruence poset is a partially ordered set of congruences over a specific semigroup, where the ordering is defined by containment according to IsSubrelation (13.5-1): given two congruences cong1 and cong2, we say that cong1 < cong2 if and only if cong1 is a subrelation (a refinement) of cong2. The congruences in a congruence poset can be left, right, or two-sided.

-

A congruence poset is a digraph (see IsDigraph (Digraphs: IsDigraph)) with a vertex for each congruence, and an edge from vertex i to vertex j only if the congruence numbered i is a subrelation of the congruence numbered j. To avoid using an unnecessarily large amount of memory in some cases, a congruence poset does not necessarily belong to IsPartialOrderDigraph (Digraphs: IsPartialOrderDigraph). In other words, although every congruence poset represents a partial order it is not necessarily the case that there is an edge from vertex i to vertex j if and only if the congruence numbered i is a subrelation of the congruence numbered j.

+

A congruence poset is a digraph (see IsDigraph (Digraphs: IsDigraph)) with a vertex for each congruence, and an edge from vertex i to vertex j only if the congruence numbered i is a subrelation of the congruence numbered j. To avoid using an unnecessarily large amount of memory in some cases, a congruence poset does not necessarily belong to IsPartialOrderDigraph (Digraphs: IsPartialOrderDigraph). In other words, although every congruence poset represents a partial order it is not necessarily the case that there is an edge from vertex i to vertex j if and only if the congruence numbered i is a subrelation of the congruence numbered j.

The list of congruences can be obtained using CongruencesOfPoset (13.4-8); and the underlying semigroup of the poset can be obtained using UnderlyingSemigroupOfCongruencePoset (13.4-9).

@@ -989,7 +989,7 @@
13.4-11 JoinSemilatticeOfCongruences

If poset is a congruence poset (i.e. it satisfies IsCongruencePoset (13.4-4)), then this function returns the congruence poset formed by these congruences partially ordered by containment, along with all their joins. This includes the empty join which equals the trivial congruence.

-

The digraph returned by this function represents the Cayley graph of the semilattice generated by CongruencesOfPoset (13.4-8) with identity adjoined. The reflexive transitive closure of this digraph is a join semillatice in the sense of IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph).

+

The digraph returned by this function represents the Cayley graph of the semilattice generated by CongruencesOfPoset (13.4-8) with identity adjoined. The reflexive transitive closure of this digraph is a join semillatice in the sense of IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph).

See also IsCongruencePoset (13.4-4) and PosetOfCongruences (13.4-10).

@@ -1121,7 +1121,7 @@
13.4-15 IteratorOfRightCongruences
‣ IteratorOfLeftCongruences( S )( operation )

Returns: An iterator.

-

IteratorOfRightCongruences returns an iterator where calling NextIterator (Reference: NextIterator) returns the next right congruence of the semigroup S with at most n classes that contain the pairs in extra; IteratorOfLeftCongruences is defined dually for left congruences rather than right congruences.

+

IteratorOfRightCongruences returns an iterator where calling NextIterator (Reference: NextIterator) returns the next right congruence of the semigroup S with at most n classes that contain the pairs in extra; IteratorOfLeftCongruences is defined dually for left congruences rather than right congruences.

If the optional third argument extra is not present, then IteratorOfRightCongruences uses an empty list by default.

@@ -1258,7 +1258,7 @@

13.6 Congruences on Rees matrix semigroups

This section describes the implementation of congruences of simple and 0-simple semigroups in the Semigroups package, and the functions associated with them. This code and this part of the manual were written by Michael Young. Most of the theorems used in this chapter are from Section 3.5 of [How95].

-

By the Rees Theorem, any 0-simple semigroup S is isomorphic to a Rees 0-matrix semigroup (see Reference: Rees Matrix Semigroups) over a group, with a regular sandwich matrix. That is,

+

By the Rees Theorem, any 0-simple semigroup S is isomorphic to a Rees 0-matrix semigroup (see Reference: Rees Matrix Semigroups) over a group, with a regular sandwich matrix. That is,

S \cong \mathcal{M} ^ 0[G; I, \Lambda; P],

@@ -1309,7 +1309,7 @@
13.6-1 IsRMSCongruenceByLinkedTriple
‣ IsRZMSCongruenceByLinkedTriple( obj )( category )

Returns: true or false.

-

These categories describe a type of semigroup congruence over a Rees matrix or 0-matrix semigroup. Externally, an object of this type may be used in the same way as any other object in the category IsSemigroupCongruence (Reference: IsSemigroupCongruence) but it is represented internally by its linked triple, and certain functions may take advantage of this information to reduce computation times.

+

These categories describe a type of semigroup congruence over a Rees matrix or 0-matrix semigroup. Externally, an object of this type may be used in the same way as any other object in the category IsSemigroupCongruence (Reference: IsSemigroupCongruence) but it is represented internally by its linked triple, and certain functions may take advantage of this information to reduce computation times.

An object of this type may be constructed with RMSCongruenceByLinkedTriple or RZMSCongruenceByLinkedTriple, or this representation may be selected automatically by SemigroupCongruence (13.2-1).

@@ -1792,7 +1792,7 @@
13.9-1 SemigroupIdealOfReesCongruence
‣ SemigroupIdealOfReesCongruence( cong )( attribute )

Returns: A semigroup ideal.

-

If cong is a rees congruence (see IsReesCongruence (Reference: IsReesCongruence)) then this attribute returns the two-sided ideal that was used to define it, i.e.~the ideal of elements in the only non-trivial congruence class of cong.

+

If cong is a rees congruence (see IsReesCongruence (Reference: IsReesCongruence)) then this attribute returns the two-sided ideal that was used to define it, i.e.~the ideal of elements in the only non-trivial congruence class of cong.

@@ -1814,7 +1814,7 @@ 
13.9-2 IsReesCongruenceClass
‣ IsReesCongruenceClass( obj )( category )

Returns: true or false.

-

This category describes a congruence class of a Rees congruence. A congruence class of a Rees congruence either contains all the elements of an ideal, or is a singleton (see IsReesCongruence (Reference: IsReesCongruence)).

+

This category describes a congruence class of a Rees congruence. A congruence class of a Rees congruence either contains all the elements of an ideal, or is a singleton (see IsReesCongruence (Reference: IsReesCongruence)).

An object of this type may be used in the same way as any other congruence class object.

@@ -1846,7 +1846,7 @@
13.10-1 IsUniversalSemigroupCongruence
‣ IsUniversalSemigroupCongruence( obj )( property )

Returns: true or false.

-

This property describes a type of semigroup congruence, which must refer to the universal semigroup congruence S × S. Externally, an object of this type may be used in the same way as any other object in the category IsSemigroupCongruence (Reference: IsSemigroupCongruence).

+

This property describes a type of semigroup congruence, which must refer to the universal semigroup congruence S × S. Externally, an object of this type may be used in the same way as any other object in the category IsSemigroupCongruence (Reference: IsSemigroupCongruence).

An object of this type may be constructed with UniversalSemigroupCongruence or this representation may be selected automatically as an alternative to an IsRZMSCongruenceByLinkedTriple object (since the universal congruence cannot be represented by a linked triple).

diff --git a/doc/chap14.html b/doc/chap14.html index 0f41ea5d0..43099a415 100644 --- a/doc/chap14.html +++ b/doc/chap14.html @@ -100,7 +100,7 @@
14.1-1 SemigroupHomomorphismByImages

SemigroupHomomorphismByImages attempts to construct a homomorphism from the semigroup S to the semigroup T by mapping the i-th element of gens to the i-th element of imgs. If this mapping corresponds to a homomorphism, the homomorphism is returned, and if not, then fail is returned. Similarly, if gens does not generate S, fail is returned.

-

If omitted, the arguments gens and imgs default to the generators of S and T respectively. See GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

+

If omitted, the arguments gens and imgs default to the generators of S and T respectively. See GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup).

If T is not given, then it defaults to the semigroup generated by imgs, resulting in the mapping being surjective.

@@ -127,7 +127,7 @@
14.1-2 SemigroupHomomorphismByFunctionNC

The function SemigroupHomomorphismByFunctionNC performs no checks on whether the function actually gives a homomorphism, and so it is possible for this operation to return a mapping from S to T that is not a homomorphism.

-

The function SemigroupHomomorphismByFunction checks that the mapping from S to T defined by fun satisfies RespectsMultiplication (Reference: RespectsMultiplication), which can be expensive. If RespectsMultiplication (Reference: RespectsMultiplication) does not hold, then fail is returned.

+

The function SemigroupHomomorphismByFunction checks that the mapping from S to T defined by fun satisfies RespectsMultiplication (Reference: RespectsMultiplication), which can be expensive. If RespectsMultiplication (Reference: RespectsMultiplication) does not hold, then fail is returned.

@@ -145,52 +145,52 @@ 
14.1-2 SemigroupHomomorphismByFunctionNC
    -
  • Range (Reference: range),

    +
  • Range (Reference: range),

  • -
  • Image (Reference: Image),

    +
  • Image (Reference: Image),

  • -
  • Images (Reference: Images),

    +
  • Images (Reference: Images),

  • -
  • ImageElm (Reference: ImageElm),

    +
  • ImageElm (Reference: ImageElm),

  • -
  • PreImage (Reference: PreImage),

    +
  • PreImage (Reference: PreImage),

  • -
  • PreImages (Reference: PreImages),

    +
  • PreImages (Reference: PreImages),

  • -
  • PreImagesRepresentative (Reference: PreImagesRepresentative),

    +
  • PreImagesRepresentative (Reference: PreImagesRepresentative),

  • -
  • PreImagesRange (Reference: PreImagesRange),

    +
  • PreImagesRange (Reference: PreImagesRange),

  • -
  • PreImagesElm (Reference: PreImagesElm),

    +
  • PreImagesElm (Reference: PreImagesElm),

  • -
  • PreImagesSet (Reference: PreImagesSet),

    +
  • PreImagesSet (Reference: PreImagesSet),

  • -
  • IsSurjective (Reference: IsSurjective),

    +
  • IsSurjective (Reference: IsSurjective),

  • -
  • IsInjective (Reference: IsInjective),

    +
  • IsInjective (Reference: IsInjective),

  • -
  • IsBijective (Reference: IsBijective),

    +
  • IsBijective (Reference: IsBijective),

  • -
  • Source (Reference: Source),

    +
  • Source (Reference: Source),

  • -
  • Range (Reference: range),

    +
  • Range (Reference: range),

  • -
  • ImagesSource (Reference: ImagesSource),

    +
  • ImagesSource (Reference: ImagesSource),

  • KernelOfSemigroupHomomorphism (14.1-7).

    @@ -339,9 +339,9 @@
    14.2-2 SmallestMultiplicationTable

    This function returns the lex-least multiplication table of a semigroup isomorphic to the semigroup S. SmallestMultiplicationTable returns the lex-least multiplication of any semigroup isomorphic to S. 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.

    +

    SmallestMultiplicationTable is based on the function IdSmallSemigroup (Smallsemi: IdSmallSemigroup) by Andreas Distler.

    -

    From Version 3.3.0 of Semigroups this attribute is computed using MinimalImage (images: MinimalImage) from the the images package. See also: CanonicalMultiplicationTable (14.2-3).

    +

    From Version 3.3.0 of Semigroups this attribute is computed using MinimalImage (images: MinimalImage) from the the images package. See also: CanonicalMultiplicationTable (14.2-3).

    @@ -367,7 +367,7 @@ 
    14.2-3 CanonicalMultiplicationTable

    This function returns a multiplication table of a semigroup isomorphic to the semigroup S. CanonicalMultiplicationTable returns a multiplication that is canonical, in the sense that if two semigroups S and T are isomorphic, then the return values of CanonicalMultiplicationTable are equal.

    -

    CanonicalMultiplicationTable uses the machinery for canonical labelling of vertex coloured digraphs in bliss via BlissCanonicalLabelling (Digraphs: BlissCanonicalLabelling for a digraph and a list).

    +

    CanonicalMultiplicationTable uses the machinery for canonical labelling of vertex coloured digraphs in bliss via BlissCanonicalLabelling (Digraphs: BlissCanonicalLabelling for a digraph and a list).

    The multiplication table returned by this function is the result of OnMultiplicationTable(MultiplicationTable(S), CanonicalMultiplicationTablePerm(S));

    @@ -401,7 +401,7 @@
    14.2-4 CanonicalMultiplicationTablePerm

    See CanonicalMultiplicationTable (14.2-3) for more details.

    -

    CanonicalMultiplicationTablePerm uses the machinery for canonical labelling of vertex coloured digraphs in bliss via BlissCanonicalLabelling (Digraphs: BlissCanonicalLabelling for a digraph and a list).

    +

    CanonicalMultiplicationTablePerm uses the machinery for canonical labelling of vertex coloured digraphs in bliss via BlissCanonicalLabelling (Digraphs: BlissCanonicalLabelling for a digraph and a list).

    @@ -450,7 +450,7 @@ 
    14.2-6 IsomorphismSemigroups

    This operation attempts to find an isomorphism from the semigroup S to the semigroup T. If it finds one, then it is returned, and if not, then fail is returned.

    -

    IsomorphismSemigroups uses the machinery for finding isomorphisms between vertex coloured digraphs in bliss via IsomorphismDigraphs (Digraphs: IsomorphismDigraphs for digraphs and homogeneous lists) using digraphs constructed from the multiplication tables of S and T.

    +

    IsomorphismSemigroups uses the machinery for finding isomorphisms between vertex coloured digraphs in bliss via IsomorphismDigraphs (Digraphs: IsomorphismDigraphs for digraphs and homogeneous lists) using digraphs constructed from the multiplication tables of S and T.

    Note that finding an isomorphism between two semigroups is difficult, and may not be possible for semigroups whose size exceeds a few hundred elements. On the other hand, IsomorphismSemigroups may be able deduce that S and T are not isomorphic by finding that some of their semigroup-theoretic properties differ.

    @@ -496,7 +496,7 @@
    14.2-7 AutomorphismGroup
    ‣ AutomorphismGroup( S )( operation )

    Returns: A group.

    -

    This operation returns the group of automorphisms of the semigroup S. AutomorphismGroup uses bliss via AutomorphismGroup (Digraphs: AutomorphismGroup for a digraph and a homogeneous list) using a vertex coloured digraph constructed from the multiplication table of S. Consequently, this method is only really feasible for semigroups whose size does not exceed a few hundred elements.

    +

    This operation returns the group of automorphisms of the semigroup S. AutomorphismGroup uses bliss via AutomorphismGroup (Digraphs: AutomorphismGroup for a digraph and a homogeneous list) using a vertex coloured digraph constructed from the multiplication table of S. Consequently, this method is only really feasible for semigroups whose size does not exceed a few hundred elements.

    @@ -539,9 +539,9 @@ 
    14.2-9 SemigroupIsomorphismByFunctionNC

    SemigroupIsomorphismByFunctionNC returns a semigroup isomorphism with source S and range T, such that each element s in S is mapped to the element fun(s), where fun is a GAP function, and invFun its inverse, mapping fun(s) back to s.

    -

    The function SemigroupIsomorphismByFunctionNC performs no checks on whether the function actually gives an isomorphism, and so it is possible for this operation to return a mapping from S to T that is not a homomorphism, or not a bijection, or where the return value of InverseGeneralMapping (Reference: InverseGeneralMapping) is not the inverse of the returned function.

    +

    The function SemigroupIsomorphismByFunctionNC performs no checks on whether the function actually gives an isomorphism, and so it is possible for this operation to return a mapping from S to T that is not a homomorphism, or not a bijection, or where the return value of InverseGeneralMapping (Reference: InverseGeneralMapping) is not the inverse of the returned function.

    -

    The function SemigroupIsomorphismByFunction checks that: the mapping from S to T defined by fun satisfies RespectsMultiplication (Reference: RespectsMultiplication); that the function from T to S defined by invFun satisfies RespectsMultiplication (Reference: RespectsMultiplication); and that these functions are mutual inverses. This can be expensive. If any of these checks fails, then fail is returned.

    +

    The function SemigroupIsomorphismByFunction checks that: the mapping from S to T defined by fun satisfies RespectsMultiplication (Reference: RespectsMultiplication); that the function from T to S defined by invFun satisfies RespectsMultiplication (Reference: RespectsMultiplication); and that these functions are mutual inverses. This can be expensive. If any of these checks fails, then fail is returned.

    @@ -562,7 +562,7 @@ 
    14.2-10 IsSemigroupIsomorphismByFunction
    ‣ IsSemigroupIsomorphismByFunction( iso )( filter )

    Returns: true or false.

    -

    IsSemigroupIsomorphismByFunction returns true if hom satisfies IsSemigroupHomomorphismByFunction (14.1-4) and IsBijective (Reference: IsBijective), and false if does not. Note that this filter may return true even if the underlying GAP function does not define a homomorphism. A semigroup isomorphism is a mapping from a semigroup S to a semigroup T that respects multiplication. This representation describes semigroup isomorphisms internally by using a GAP function mapping elements of S to their images in T. See SemigroupIsomorphismByFunction (14.2-9).

    +

    IsSemigroupIsomorphismByFunction returns true if hom satisfies IsSemigroupHomomorphismByFunction (14.1-4) and IsBijective (Reference: IsBijective), and false if does not. Note that this filter may return true even if the underlying GAP function does not define a homomorphism. A semigroup isomorphism is a mapping from a semigroup S to a semigroup T that respects multiplication. This representation describes semigroup isomorphisms internally by using a GAP function mapping elements of S to their images in T. See SemigroupIsomorphismByFunction (14.2-9).

    @@ -680,7 +680,7 @@ 
    14.3-1 IsRMSIsoByTriple
  • -

    belong to the categories IsRMSIsoByTriple and IsRZMSIsoByTriple. Basic operators for such isomorphism are given in 14.3-7, and basic operations are: Range (Reference: range), Source (Reference: Source), ELM_LIST (14.3-3), CompositionMapping (Reference: CompositionMapping), ImagesElm (14.3-5), ImagesRepresentative (14.3-5), InverseGeneralMapping (Reference: InverseGeneralMapping), PreImagesRepresentative (Reference: PreImagesRepresentative), IsOne (Reference: IsOne).

    +

    belong to the categories IsRMSIsoByTriple and IsRZMSIsoByTriple. Basic operators for such isomorphism are given in 14.3-7, and basic operations are: Range (Reference: range), Source (Reference: Source), ELM_LIST (14.3-3), CompositionMapping (Reference: CompositionMapping), ImagesElm (14.3-5), ImagesRepresentative (14.3-5), InverseGeneralMapping (Reference: InverseGeneralMapping), PreImagesRepresentative (Reference: PreImagesRepresentative), IsOne (Reference: IsOne).

    @@ -697,10 +697,10 @@
    14.3-2 RMSIsoByTriple
  • triple[1] should be a permutation describing an isomorphism from the graph of R1 to the graph of R2, i.e. it should satisfy OnDigraphs(RZMSDigraph(R1), triple[1]) = RZMSDigraph(R2).

  • -
  • triple[2] should be an isomorphism from the underlying group of R1 to the underlying group of R2 (see UnderlyingSemigroup (Reference: UnderlyingSemigroup for a Rees 0-matrix semigroup)).

    +
  • triple[2] should be an isomorphism from the underlying group of R1 to the underlying group of R2 (see UnderlyingSemigroup (Reference: UnderlyingSemigroup for a Rees 0-matrix semigroup)).

  • -
  • triple[3] should be a list of elements from the underlying group of R2. If the Matrix (Reference: Matrix) of R1 has m columns and n rows, then the list should have length m + n, where the first m entries should correspond to the columns of R1's matrix, and the last n entries should correspond to the rows. These column and row entries should correspond to the u_i and v_λ elements in Theorem 3.4.1 of [How95].

    +
  • triple[3] should be a list of elements from the underlying group of R2. If the Matrix (Reference: Matrix) of R1 has m columns and n rows, then the list should have length m + n, where the first m entries should correspond to the columns of R1's matrix, and the last n entries should correspond to the rows. These column and row entries should correspond to the u_i and v_λ elements in Theorem 3.4.1 of [How95].

@@ -840,7 +840,7 @@
14.3-6 CanonicalReesZeroMatrixSemigroup
‣ CanonicalReesMatrixSemigroup( S )( attribute )

Returns: A Rees zero matrix semigroup.

-

If S is a Rees 0-matrix semigroup then CanonicalReesZeroMatrixSemigroup returns an isomorphic Rees 0-matrix semigroup T with the same UnderlyingSemigroup (Reference: UnderlyingSemigroup for a Rees 0-matrix semigroup) as S but the Matrix (Reference: Matrix) of T has been canonicalized. The output T is canonical in the sense that for any two inputs which are isomorphic Rees zero matrix semigroups the output of this function is the same.

+

If S is a Rees 0-matrix semigroup then CanonicalReesZeroMatrixSemigroup returns an isomorphic Rees 0-matrix semigroup T with the same UnderlyingSemigroup (Reference: UnderlyingSemigroup for a Rees 0-matrix semigroup) as S but the Matrix (Reference: Matrix) of T has been canonicalized. The output T is canonical in the sense that for any two inputs which are isomorphic Rees zero matrix semigroups the output of this function is the same.

CanonicalReesMatrixSemigroup works the same but for Rees matrix semigroups.

diff --git a/doc/chap15.html b/doc/chap15.html index 380a690d0..4db7c7a2c 100644 --- a/doc/chap15.html +++ b/doc/chap15.html @@ -214,7 +214,7 @@

15.2 Helper functions

-

This section describes operations implemented in Semigroups that are designed to interact with standard GAP methods for creating finitely presented semigroups and monoids (see Reference: Finitely Presented Semigroups and Monoids).

+

This section describes operations implemented in Semigroups that are designed to interact with standard GAP methods for creating finitely presented semigroups and monoids (see Reference: Finitely Presented Semigroups and Monoids).

@@ -227,7 +227,7 @@
15.2-1 ParseRelations

The argument gens must be a list of generators for a free semigroup, each being a single alphabet letter (in upper or lower case). The argument rels must be string that lists the equalities desired.

-

To take a quotient of a free monoid, it is necessary to use GeneratorsOfMonoid (Reference: GeneratorsOfMonoid) as the 1st argument to ParseRelations and the identity may appear as 1 in the specified relations.

+

To take a quotient of a free monoid, it is necessary to use GeneratorsOfMonoid (Reference: GeneratorsOfMonoid) as the 1st argument to ParseRelations and the identity may appear as 1 in the specified relations.

@@ -255,9 +255,9 @@ 
15.2-2 ElementOfFpSemigroup
‣ ElementOfFpSemigroup( S, word )( operation )

Returns: An element of the fp semigroup S.

-

When S is a finitely presented semigroup and word is an associative word in the associated free semigroup (see IsAssocWord (Reference: IsAssocWord)), this returns the fp semigroup element with representative word.

+

When S is a finitely presented semigroup and word is an associative word in the associated free semigroup (see IsAssocWord (Reference: IsAssocWord)), this returns the fp semigroup element with representative word.

-

This function is just a short form of the GAP library implementation of ElementOfFpSemigroup (Reference: ElementOfFpSemigroup) which does not require retrieving an element family.

+

This function is just a short form of the GAP library implementation of ElementOfFpSemigroup (Reference: ElementOfFpSemigroup) which does not require retrieving an element family.

@@ -281,7 +281,7 @@ 
15.2-3 ElementOfFpMonoid
‣ ElementOfFpMonoid( M, word )( operation )

Returns: An element of the fp monoid M.

-

When M is a finitely presented monoid and word is an associative word in the associated free monoid (see IsAssocWord (Reference: IsAssocWord)), this returns the fp monoid element with representative word.

+

When M is a finitely presented monoid and word is an associative word in the associated free monoid (see IsAssocWord (Reference: IsAssocWord)), this returns the fp monoid element with representative word.

This is analogous to ElementOfFpSemigroup (15.2-2).

@@ -317,7 +317,7 @@
15.2-5 IsSubsemigroupOfFpMonoid
‣ IsSubsemigroupOfFpMonoid( S )( property )

Returns: true or false.

-

This property is true if the object S is a subsemigroup of an fp monoid, and false otherwise. This property is just a synonym for IsSemigroup (Reference: IsSemigroup) and IsElementOfFpMonoidCollection.

+

This property is true if the object S is a subsemigroup of an fp monoid, and false otherwise. This property is just a synonym for IsSemigroup (Reference: IsSemigroup) and IsElementOfFpMonoidCollection.

@@ -344,11 +344,11 @@ 

15.3 Creating Tietze transformation objects

-

It is possible to use GAP to create finitely presented semigroups without the Semigroups package, by creating a free semigroup, then quotienting by a list of relations. This is described in the reference manual (Reference: Finitely Presented Semigroups and Monoids).

+

It is possible to use GAP to create finitely presented semigroups without the Semigroups package, by creating a free semigroup, then quotienting by a list of relations. This is described in the reference manual (Reference: Finitely Presented Semigroups and Monoids).

However, finitely presented semigroups do not allow for their relations to be simplified, so in the following sections, we describe how to create and modify the semigroup Tietze (IsStzPresentation (15.3-2)) object associated with an fp semigroup. This object can be automatically simplified, or the user can manually apply Tietze transformations to add or remove relations or generators in the presentation.

-

This object is analogous to PresentationFpGroup (Reference: PresentationFpGroup) implemented for fp groups in the main GAP distribution (Reference: Presentations and Tietze Transformations), but its features are semigroup-specific. Most of the functions used to create, view and manipulate semigroup Tietze objects are prefixed with Stz.

+

This object is analogous to PresentationFpGroup (Reference: PresentationFpGroup) implemented for fp groups in the main GAP distribution (Reference: Presentations and Tietze Transformations), but its features are semigroup-specific. Most of the functions used to create, view and manipulate semigroup Tietze objects are prefixed with Stz.

@@ -357,7 +357,7 @@
15.3-1 StzPresentation
‣ StzPresentation( S )( operation )

Returns: A semigroup Tietze (Stz) object.

-

If s is an fp semigroup (IsFpSemigroup (Reference: IsFpSemigroup)), then this function returns a modifiable object representing the generators and relations of s.

+

If s is an fp semigroup (IsFpSemigroup (Reference: IsFpSemigroup)), then this function returns a modifiable object representing the generators and relations of s.

@@ -376,7 +376,7 @@ 
15.3-2 IsStzPresentation
‣ IsStzPresentation( stz )( filter )

Returns: true or false.

-

Every semigroup Tietze object is an element of the category IsStzPresentation. Internally, each Stz object contains a list of generators (each represented as a string) and a list of relations (each represented as a pair of LetterRep words, see LetterRepAssocWord (Reference: LetterRepAssocWord)). These generator and relation lists can be modified using Tietze transformations (15.5).

+

Every semigroup Tietze object is an element of the category IsStzPresentation. Internally, each Stz object contains a list of generators (each represented as a string) and a list of relations (each represented as a pair of LetterRep words, see LetterRepAssocWord (Reference: LetterRepAssocWord)). These generator and relation lists can be modified using Tietze transformations (15.5).

When a IsStzPresentation object stz is created from an fp semigroup s using stz := StzPresentation(s), the generators and relations of stz are initially equal to the generators and relations of s. However, as the Stz object stz is modified, these lists may change, and their current state can be viewed using GeneratorsOfStzPresentation (15.3-3) and RelationsOfStzPresentation (15.3-4).

@@ -421,7 +421,7 @@
15.3-3 GeneratorsOfStzPresentation
15.3-4 RelationsOfStzPresentation
‣ RelationsOfStzPresentation( stz )( attribute )
-

Returns: A list of pairs of words in LetterRep (LetterRepAssocWord (Reference: LetterRepAssocWord)) form.

+

Returns: A list of pairs of words in LetterRep (LetterRepAssocWord (Reference: LetterRepAssocWord)) form.

If stz is an StzPresentation (15.3-1) object, then RelationsOfStzPresentation will return in letter rep form the current relations of the presentation object. When the presentation object is first created, these will be the LetterRep forms of the relations of the fp semigroup object that is used to create stz. As Tietze transformations are performed on the presentation object, the relations returned by this function will change to reflect the transformations.

@@ -494,7 +494,7 @@

15.4

Since the relations are stored as flat lists of numbers, there are several methods installed to print the presentations in more user-friendly forms.

-

All printing methods in this section are displayed as information (Info (Reference: Info)) in the class InfoFpSemigroup at level 1. Setting SetInfoLevevl(InfoFpSemigroup, 0) will suppress the messages, while any higher number will display them.

+

All printing methods in this section are displayed as information (Info (Reference: Info)) in the class InfoFpSemigroup at level 1. Setting SetInfoLevevl(InfoFpSemigroup, 0) will suppress the messages, while any higher number will display them.

@@ -773,7 +773,7 @@

15.6 Converting a Tietze transformation object into a fp semigroup

-

Semigroup Tietze transformation objects (IsStzPresentation (15.3-2)) are not actual fp semigroups in the sense of IsFpSemigroup (Reference: IsFpSemigroup). This is because their generators and relations can be modified (see section 15.5). However, an StzPresentation (15.3-1) can be converted back into an actual finitely presented semigroup using the methods described in this section.

+

Semigroup Tietze transformation objects (IsStzPresentation (15.3-2)) are not actual fp semigroups in the sense of IsFpSemigroup (Reference: IsFpSemigroup). This is because their generators and relations can be modified (see section 15.5). However, an StzPresentation (15.3-1) can be converted back into an actual finitely presented semigroup using the methods described in this section.

The intended use of semigroup Tietze objects is as follows: given an fp semigroup S, create a modifiable presentation using stz := StzPresentation(S), apply Tietze transformations to it (perhaps in order to simplify the presentation), then generate a new fp semigroup T given by stz which is isomorphic to S, but has a simpler presentation. Once T is obtained, it may be of interest to map elements of S over to T, where they may be represented by different combinations of generators. The isomorphism achieving this is described in this section (see StzIsomorphism (15.6-3)).

@@ -971,7 +971,7 @@
15.8-2 SimplifiedFpSemigroup
‣ SimplifiedFpSemigroup( S )( operation )

Returns: A finitely presented semigroup.

-

If S is an fp semigroup object (IsFpSemigroup (Reference: IsFpSemigroup)), then SimplifiedFpSemigroup will return an FpSemigroup object T which is isomorphic to S which has been reduced to minimise its length. SimplifiedFpSemigroup applies SimplifyFpSemigroup (15.8-1) and assigns the Range of the isomorphism object which is returned to T, adding the isomorphism to T as an attribute. In this way, while T is a completely new FpSemigroup object, words in S can be mapped to T using the map obtained from the attribute FpTietzeIsomorphism (15.8-4).

+

If S is an fp semigroup object (IsFpSemigroup (Reference: IsFpSemigroup)), then SimplifiedFpSemigroup will return an FpSemigroup object T which is isomorphic to S which has been reduced to minimise its length. SimplifiedFpSemigroup applies SimplifyFpSemigroup (15.8-1) and assigns the Range of the isomorphism object which is returned to T, adding the isomorphism to T as an attribute. In this way, while T is a completely new FpSemigroup object, words in S can be mapped to T using the map obtained from the attribute FpTietzeIsomorphism (15.8-4).

For more information on the mapping between the semigroups and how it is created, see 15.6.

diff --git a/doc/chap16.html b/doc/chap16.html index 56a66e83f..c0fbecfdd 100644 --- a/doc/chap16.html +++ b/doc/chap16.html @@ -57,7 +57,7 @@

16 Visualising semigroups and elements

-

There are two operations TikzString (16.3-1) and DotString (16.1-1) in Semigroups for creating LaTeX and dot (also known as GraphViz) format pictures of the Green's class structure of a semigroup and for visualising certain types of elements of a semigroup. There is also a function Splash (Digraphs: Splash) for automatically processing the output of TikzString (16.3-1) and DotString (16.1-1) and opening the resulting pdf file.

+

There are two operations TikzString (16.3-1) and DotString (16.1-1) in Semigroups for creating LaTeX and dot (also known as GraphViz) format pictures of the Green's class structure of a semigroup and for visualising certain types of elements of a semigroup. There is also a function Splash (Digraphs: Splash) for automatically processing the output of TikzString (16.3-1) and DotString (16.1-1) and opening the resulting pdf file.

@@ -67,7 +67,7 @@

16.1

In this section, we describe the operations in Semigroups for creating pictures in dot format.

-

The operations described in this section return strings, which can be written to a file using the function FileString (GAPDoc: FileString) or viewed using Splash (Digraphs: Splash).

+

The operations described in this section return strings, which can be written to a file using the function FileString (GAPDoc: FileString) or viewed using Splash (Digraphs: Splash).

@@ -78,7 +78,7 @@
16.1-1 DotString

If the argument S is a semigroup, and the optional second argument options is a record, then this operation produces a graphical representation of the partial order of the D-classes of the semigroup S together with the eggbox diagram of each D-class. The output is in dot format (also known as GraphViz) format. For details about this file format, and information about how to display or edit this format see https://www.graphviz.org.

-

The string returned by DotString can be written to a file using the command FileString (GAPDoc: FileString).

+

The string returned by DotString can be written to a file using the command FileString (GAPDoc: FileString).

The D-classes are shown as eggbox diagrams with L-classes as rows and R-classes as columns; group H-classes are shaded gray and contain an asterisk. The L-classes and R-classes within a D-class are arranged to correspond to the normalization of the principal factor given by NormalizedPrincipalFactor (10.4-8). The D-classes are numbered according to their index in GreensDClasses(S), so that an i appears next to the eggbox diagram of GreensDClasses(S)[i]. A line from one D-class to another indicates that the higher D-class is greater than the lower one in the D-order on S.

@@ -91,7 +91,7 @@
16.1-1 DotString
maximal
-

if options.maximal is true, then the structure description of the group H-classes is displayed; see StructureDescription (Reference: StructureDescription). Setting this attribute to true can adversely affect the performance of DotString. The default value for this option is false.

+

if options.maximal is true, then the structure description of the group H-classes is displayed; see StructureDescription (Reference: StructureDescription). Setting this attribute to true can adversely affect the performance of DotString. The default value for this option is false.

normal
@@ -131,9 +131,9 @@
16.1-2 DotString
‣ DotString( digraph )( operation )

Returns: A string.

-

If digraph is a Digraph (Digraphs: Digraph) in the category IsCayleyDigraph (Digraphs: IsCayleyDigraph), then DotString returns a graphical representation of digraph. The output is in dot format (also known as GraphViz) format. For details about this file format, and information about how to display or edit this format see https://www.graphviz.org.

+

If digraph is a Digraph (Digraphs: Digraph) in the category IsCayleyDigraph (Digraphs: IsCayleyDigraph), then DotString returns a graphical representation of digraph. The output is in dot format (also known as GraphViz) format. For details about this file format, and information about how to display or edit this format see https://www.graphviz.org.

-

The string returned by DotString can be written to a file using the command FileString (GAPDoc: FileString).

+

The string returned by DotString can be written to a file using the command FileString (GAPDoc: FileString).

See also DotLeftCayleyDigraph (16.1-4) and TikzLeftCayleyDigraph (16.3-2).

@@ -144,7 +144,7 @@
16.1-3 DotSemilatticeOfIdempotents
‣ DotSemilatticeOfIdempotents( S )( attribute )

Returns: A string.

-

This function produces a graphical representation of the semilattice of the idempotents of an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: Inverse). The idempotents are grouped by the D-class they belong to.

+

This function produces a graphical representation of the semilattice of the idempotents of an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: inverse). The idempotents are grouped by the D-class they belong to.

The output is in dot format (also known as GraphViz) format. For details about this file format, and information about how to display or edit this format see https://www.graphviz.org.

@@ -199,7 +199,7 @@
16.2-1 TexString
‣ TexString( f[, n] )( operation )

Returns: A string.

-

This function produces a string containing LaTeX code for the transformation f. If the optional parameter n is used, then this is taken to be the degree of the transformation f, if the parameter n is not given, then DegreeOfTransformation (Reference: DegreeOfTransformation) is used by default. If n is less than the degree of f, then an error is given.

+

This function produces a string containing LaTeX code for the transformation f. If the optional parameter n is used, then this is taken to be the degree of the transformation f, if the parameter n is not given, then DegreeOfTransformation (Reference: DegreeOfTransformation) is used by default. If n is less than the degree of f, then an error is given.

@@ -218,7 +218,7 @@ 

16.3

In this section, we describe the operations in Semigroups for creating pictures in tikz format.

-

The functions described in this section return a string, which can be written to a file using the function FileString (GAPDoc: FileString) or viewed using Splash (Digraphs: Splash).

+

The functions described in this section return a string, which can be written to a file using the function FileString (GAPDoc: FileString) or viewed using Splash (Digraphs: Splash).

@@ -248,7 +248,7 @@
16.3-1 TikzString
Cayley graphs
-

If obj is a Digraph (Digraphs: Digraph) in the category IsCayleyDigraph (Digraphs: IsCayleyDigraph), then TikzString returns a picture of obj. No attempt is made whatsoever to produce a sensible picture of the digraph obj, in fact, the vertices are all given the same coordinates. Human intervention is required to produce a meaningful picture from the value returned by this method. It is intended to make the task of drawing such a Cayley graph more straightforward by providing everything except the final layout of the graph. Please use DotString (16.1-1) if you want an automatically laid out diagram of the digraph obj.

+

If obj is a Digraph (Digraphs: Digraph) in the category IsCayleyDigraph (Digraphs: IsCayleyDigraph), then TikzString returns a picture of obj. No attempt is made whatsoever to produce a sensible picture of the digraph obj, in fact, the vertices are all given the same coordinates. Human intervention is required to produce a meaningful picture from the value returned by this method. It is intended to make the task of drawing such a Cayley graph more straightforward by providing everything except the final layout of the graph. Please use DotString (16.1-1) if you want an automatically laid out diagram of the digraph obj.

diff --git a/doc/chap16.txt b/doc/chap16.txt index f9b70f5d1..f5ee87106 100644 --- a/doc/chap16.txt +++ b/doc/chap16.txt @@ -115,7 +115,7 @@ This function produces a graphical representation of the semilattice of the idempotents of an inverse semigroup S where the elements of S have a unique - semigroup inverse accessible via Inverse (Reference: Inverse). The + semigroup inverse accessible via Inverse (Reference: inverse). The idempotents are grouped by the D-class they belong to. The output is in dot format (also known as GraphViz) format. For details diff --git a/doc/chap16_mj.html b/doc/chap16_mj.html index 16185f063..abfbe033f 100644 --- a/doc/chap16_mj.html +++ b/doc/chap16_mj.html @@ -147,7 +147,7 @@
16.1-3 DotSemilatticeOfIdempotents
‣ DotSemilatticeOfIdempotents( S )( attribute )

Returns: A string.

-

This function produces a graphical representation of the semilattice of the idempotents of an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: Inverse). The idempotents are grouped by the \(\mathscr{D}\)-class they belong to.

+

This function produces a graphical representation of the semilattice of the idempotents of an inverse semigroup S where the elements of S have a unique semigroup inverse accessible via Inverse (Reference: inverse). The idempotents are grouped by the \(\mathscr{D}\)-class they belong to.

The output is in dot format (also known as GraphViz) format. For details about this file format, and information about how to display or edit this format see https://www.graphviz.org.

diff --git a/doc/chap17.html b/doc/chap17.html index 158f6567b..2da8f6063 100644 --- a/doc/chap17.html +++ b/doc/chap17.html @@ -82,17 +82,17 @@
17.1-2 WriteGenerators

The argument list should be a list of lists of elements, or semigroups.

-

The argument filename should be a string containing the name of a file or an IO package file object where the entries in list will be written; see IO_File (IO: IO_File mode) and IO_CompressedFile (IO: IO_CompressedFile).

+

The argument filename should be a string containing the name of a file or an IO package file object where the entries in list will be written; see IO_File (IO: IO_File mode) and IO_CompressedFile (IO: IO_CompressedFile).

If the optional third argument append is not present or is given and equals "w", then the previous content of the file is deleted and overwritten. If the third argument is "a", then list is appended to the file.

-

If any element of list is a semigroup, then the generators of that semigroup are written to filename. More specifically, the list returned by GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) is written to the file.

+

If any element of list is a semigroup, then the generators of that semigroup are written to filename. More specifically, the list returned by GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) is written to the file.

-

This function returns IO_OK (IO: IO_OK) if everything went well or IO_ERROR (IO: IO_Error) if something went wrong.

+

This function returns IO_OK (IO: IO_OK) if everything went well or IO_ERROR (IO: IO_Error) if something went wrong.

The file produced by WriteGenerators can be read using ReadGenerators (17.1-1).

-

From Version 3.0.0 onwards the Semigroups package used the IO package pickling functionality; see IO: Pickling and unpickling for more details. This approach is used because it is more general and more robust than the methods used by earlier versions of Semigroups, although the performance is somewhat worse, and the resulting files are somewhat larger.

+

From Version 3.0.0 onwards the Semigroups package used the IO package pickling functionality; see IO: Pickling and unpickling for more details. This approach is used because it is more general and more robust than the methods used by earlier versions of Semigroups, although the performance is somewhat worse, and the resulting files are somewhat larger.

@@ -147,9 +147,9 @@
17.2-2 WriteMultiplicationTable

The argument list should be a list of multiplication tables.

-

The argument filename should be a file or a string containing the name of a file where the entries in list will be written or an IO package file object; see IO_File (IO: IO_File mode) and IO_CompressedFile (IO: IO_CompressedFile).

+

The argument filename should be a file or a string containing the name of a file where the entries in list will be written or an IO package file object; see IO_File (IO: IO_File mode) and IO_CompressedFile (IO: IO_CompressedFile).

-

If the optional third argument append is not present or is given and equals "w", then the previous content of the file is deleted and overwritten. If the third argument is given and equals "a" then list is appended to the file. This function returns IO_OK (IO: IO_OK) if everything went well or IO_ERROR (IO: IO_Error) if something went wrong.

+

If the optional third argument append is not present or is given and equals "w", then the previous content of the file is deleted and overwritten. If the third argument is given and equals "a" then list is appended to the file. This function returns IO_OK (IO: IO_OK) if everything went well or IO_ERROR (IO: IO_Error) if something went wrong.

The multiplication tables saved in filename can be recovered from the file using ReadMultiplicationTable (17.2-1).

diff --git a/doc/chap17_mj.html b/doc/chap17_mj.html index 0bff91aad..9a1d047e5 100644 --- a/doc/chap17_mj.html +++ b/doc/chap17_mj.html @@ -95,7 +95,7 @@
17.1-2 WriteGenerators

The file produced by WriteGenerators can be read using ReadGenerators (17.1-1).

-

From Version 3.0.0 onwards the Semigroups package used the IO package pickling functionality; see IO: Pickling and unpickling for more details. This approach is used because it is more general and more robust than the methods used by earlier versions of Semigroups, although the performance is somewhat worse, and the resulting files are somewhat larger.

+

From Version 3.0.0 onwards the Semigroups package used the IO package pickling functionality; see IO: Pickling and unpickling for more details. This approach is used because it is more general and more robust than the methods used by earlier versions of Semigroups, although the performance is somewhat worse, and the resulting files are somewhat larger.

diff --git a/doc/chap18.html b/doc/chap18.html index 1ae156fd2..d22ff9ffb 100644 --- a/doc/chap18.html +++ b/doc/chap18.html @@ -97,7 +97,7 @@
18.1-1 IsXTranslation
‣ IsSemigroupTranslation( arg )( filter )
‣ IsLeftTranslation( arg )( filter )
‣ IsRightTranslation( arg )( filter )
-

Returns: true or false

+

Returns: true or false

All, and only, left [right] translations belong to IsLeftTranslation [IsRightTranslation]. These are both subcategories of IsSemigroupTranslation, which itself is a subcategory of IsAssociativeElement.

@@ -122,9 +122,9 @@
18.1-1 IsXTranslation
18.1-2 IsBitranslation
‣ IsBitranslation( arg )( filter )
-

Returns: true or false

+

Returns: true or false

-

All, and only, bitranslations belong to IsBitranslation. This is a subcategory of IsAssociativeElement (Reference: IsAssociativeElement).

+

All, and only, bitranslations belong to IsBitranslation. This is a subcategory of IsAssociativeElement (Reference: IsAssociativeElement).

@@ -153,7 +153,7 @@ 
18.1-3 IsXTranslationCollection
‣ IsLeftTranslationCollection( obj )( filter )
‣ IsRightTranslationCollection( obj )( filter )
‣ IsBitranslationCollection( obj )( filter )
-

Returns: true or false

+

Returns: true or false

Every collection of left-, right-, or bi-translations belongs to the respective category IsXTranslationCollection.

diff --git a/doc/chap18.txt b/doc/chap18.txt index fc7cce17d..06fbafeec 100644 --- a/doc/chap18.txt +++ b/doc/chap18.txt @@ -74,7 +74,7 @@ IsSemigroupTranslation( arg )  filter IsLeftTranslation( arg )  filter IsRightTranslation( arg )  filter - Returns: true or false + Returns: true or false All, and only, left [right] translations belong to IsLeftTranslation [IsRightTranslation]. These are both subcategories of @@ -99,7 +99,7 @@ 18.1-2 IsBitranslation IsBitranslation( arg )  filter - Returns: true or false + Returns: true or false All, and only, bitranslations belong to IsBitranslation. This is a subcategory of IsAssociativeElement (Reference: IsAssociativeElement). @@ -129,7 +129,7 @@ IsLeftTranslationCollection( obj )  filter IsRightTranslationCollection( obj )  filter IsBitranslationCollection( obj )  filter - Returns: true or false + Returns: true or false Every collection of left-, right-, or bi-translations belongs to the respective category IsXTranslationCollection. diff --git a/doc/chap18_mj.html b/doc/chap18_mj.html index 6ca0cfb2e..9c67b9a9a 100644 --- a/doc/chap18_mj.html +++ b/doc/chap18_mj.html @@ -111,7 +111,7 @@
18.1-1 IsXTranslation
‣ IsSemigroupTranslation( arg )( filter )
‣ IsLeftTranslation( arg )( filter )
‣ IsRightTranslation( arg )( filter )
-

Returns: true or false

+

Returns: true or false

All, and only, left [right] translations belong to IsLeftTranslation [IsRightTranslation]. These are both subcategories of IsSemigroupTranslation, which itself is a subcategory of IsAssociativeElement.

@@ -136,7 +136,7 @@
18.1-1 IsXTranslation
18.1-2 IsBitranslation
‣ IsBitranslation( arg )( filter )
-

Returns: true or false

+

Returns: true or false

All, and only, bitranslations belong to IsBitranslation. This is a subcategory of IsAssociativeElement (Reference: IsAssociativeElement).

@@ -167,7 +167,7 @@
18.1-3 IsXTranslationCollection
‣ IsLeftTranslationCollection( obj )( filter )
‣ IsRightTranslationCollection( obj )( filter )
‣ IsBitranslationCollection( obj )( filter )
-

Returns: true or false

+

Returns: true or false

Every collection of left-, right-, or bi-translations belongs to the respective category IsXTranslationCollection.

diff --git a/doc/chap1_mj.html b/doc/chap1_mj.html index bcbaec683..f5414b507 100644 --- a/doc/chap1_mj.html +++ b/doc/chap1_mj.html @@ -51,7 +51,7 @@

1.1 Introduction

-

This is the manual for the Semigroups package for GAP version 5.3.4. Semigroups 5.3.4 is a distant descendant of the Monoid package for GAP 3 by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc.

+

This is the manual for the Semigroups package for GAP version 5.3.5. Semigroups 5.3.5 is a distant descendant of the Monoid package for GAP 3 by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc.

From Version 3.0.0, Semigroups includes a copy of the libsemigroups C++ library which contains implementations of the Froidure-Pin, Todd-Coxeter, and Knuth-Bendix algorithms (among others) that Semigroups utilises.

diff --git a/doc/chap2.html b/doc/chap2.html index b364d03c5..baf2178bf 100644 --- a/doc/chap2.html +++ b/doc/chap2.html @@ -60,34 +60,34 @@

2.1 For those in a hurry

    -
  • ensure that the datastructures package version 0.2.5 or higher is available. datastructures must be compiled before Semigroups can be loaded.

    +
  • ensure that the datastructures package version 0.2.5 or higher is available. datastructures must be compiled before Semigroups can be loaded.

  • -
  • ensure that the Digraphs package version 1.6.2 or higher is available. Digraphs must be compiled before Semigroups can be loaded.

    +
  • ensure that the digraphs package version 1.6.2 or higher is available. digraphs must be compiled before Semigroups can be loaded.

  • -
  • ensure that the genss package version 1.6.5 or higher is available.

    +
  • ensure that the genss package version 1.6.5 or higher is available.

  • ensure that the images package version 1.3.1 or higher is available.

  • -
  • ensure that the IO package version 4.5.1 or higher is available. IO must be compiled before Semigroups can be loaded.

    +
  • ensure that the IO package version 4.5.1 or higher is available. IO must be compiled before Semigroups can be loaded.

  • ensure that the orb package version 4.8.2 or higher is available. orb and Semigroups both perform better if orb is compiled.

  • -
  • download the package archive semigroups-5.3.4.tar.gz from the Semigroups package webpage.

    +
  • download the package archive semigroups-5.3.5.tar.gz from the Semigroups package webpage.

  • -
  • unzip and untar the file, this should create a directory called semigroups-5.3.4.

    +
  • unzip and untar the file, this should create a directory called semigroups-5.3.5.

  • -
  • locate your GAP directory, the one containing the directories lib, doc and so on. Move the directory semigroups-5.3.4.tar.gz into the pkg subdirectory of your GAP directory.

    +
  • locate your GAP directory, the one containing the directories lib, doc and so on. Move the directory semigroups-5.3.5.tar.gz into the pkg subdirectory of your GAP directory.

  • -
  • from version 3.0.0, it is necessary to compile the Semigroups package. Semigroups uses the libsemigroups C++ library, which requires a compiler implementing the C++14 standard. Inside the pkg/semigroups-5.3.4 directory, in your terminal type

    +
  • from version 3.0.0, it is necessary to compile the Semigroups package. Semigroups uses the libsemigroups C++ library, which requires a compiler implementing the C++14 standard. Inside the pkg/semigroups-5.3.5 directory, in your terminal type

    @@ -114,7 +114,7 @@ 

    2.2 Compiling the kernel module

    As of version 3.0.0, the Semigroups package has a kernel module written in C++ and this must be compiled. The kernel module contains the interface to the C++ library libsemigroups . It is not possible to use the Semigroups package without compiling it.

    -

    To compile the kernel component inside the pkg/semigroups-5.3.4.tar.gz directory, type

    +

    To compile the kernel component inside the pkg/semigroups-5.3.5.tar.gz directory, type

    @@ -138,7 +138,7 @@ 

    2.3 Rebuilding the documentation

    gap makedoc.g
    -

    when you're inside the pkg/semigroups-5.3.4 directory.

    +

    when you're inside the pkg/semigroups-5.3.5 directory.

    @@ -199,7 +199,7 @@

    2.5 More information during a computation

    2.5-1 InfoSemigroups
    ‣ InfoSemigroups( info class )
    -

    InfoSemigroups is the info class of the Semigroups package. The info level is initially set to 0 and no info messages are displayed. To increase the amount of information displayed during a computation increase the info level to 2 or 3. To stop all info messages from being displayed, set the info level to 0. See also Reference: Info Functions and SetInfoLevel (Reference: InfoLevel).

    +

    InfoSemigroups is the info class of the Semigroups package. The info level is initially set to 0 and no info messages are displayed. To increase the amount of information displayed during a computation increase the info level to 2 or 3. To stop all info messages from being displayed, set the info level to 0. See also Reference: Info Functions and SetInfoLevel (Reference: InfoLevel).

    diff --git a/doc/chap2.txt b/doc/chap2.txt index 8acde53aa..e1ef3a491 100644 --- a/doc/chap2.txt +++ b/doc/chap2.txt @@ -19,8 +19,8 @@ available. datastructures must be compiled before Semigroups can be loaded. -  ensure that the Digraphs package version 1.6.2 or higher is available. - Digraphs must be compiled before Semigroups can be loaded. +  ensure that the digraphs package version 1.6.2 or higher is available. + digraphs must be compiled before Semigroups can be loaded.  ensure that the genss package version 1.6.5 or higher is available. @@ -32,21 +32,21 @@  ensure that the orb package version 4.8.2 or higher is available. orb and Semigroups both perform better if orb is compiled. -  download the package archive semigroups-5.3.4.tar.gz from the +  download the package archive semigroups-5.3.5.tar.gz from the Semigroups package webpage (https://semigroups.github.io/Semigroups).  unzip and untar the file, this should create a directory called - semigroups-5.3.4. + semigroups-5.3.5.  locate your GAP directory, the one containing the directories lib, doc - and so on. Move the directory semigroups-5.3.4.tar.gz into the pkg + and so on. Move the directory semigroups-5.3.5.tar.gz into the pkg subdirectory of your GAP directory.  from version 3.0.0, it is necessary to compile the Semigroups package. Semigroups uses the libsemigroups (https://libsemigroups.github.io/libsemigroups/) C++ library, which requires a compiler implementing the C++14 standard. Inside the - pkg/semigroups-5.3.4 directory, in your terminal type + pkg/semigroups-5.3.5 directory, in your terminal type   ./configure && make @@ -73,7 +73,7 @@ the C++ library libsemigroups. It is not possible to use the Semigroups package without compiling it. - To compile the kernel component inside the pkg/semigroups-5.3.4.tar.gz + To compile the kernel component inside the pkg/semigroups-5.3.5.tar.gz directory, type  @@ -115,7 +115,7 @@    - when you're inside the pkg/semigroups-5.3.4 directory. + when you're inside the pkg/semigroups-5.3.5 directory. 2.4 Testing your installation diff --git a/doc/chap2_mj.html b/doc/chap2_mj.html index 78f3a73eb..03ef67c67 100644 --- a/doc/chap2_mj.html +++ b/doc/chap2_mj.html @@ -63,34 +63,34 @@

    2.1 For those in a hurry

      -
    • ensure that the datastructures package version 0.2.5 or higher is available. datastructures must be compiled before Semigroups can be loaded.

      +
    • ensure that the datastructures package version 0.2.5 or higher is available. datastructures must be compiled before Semigroups can be loaded.

    • -
    • ensure that the Digraphs package version 1.6.2 or higher is available. Digraphs must be compiled before Semigroups can be loaded.

      +
    • ensure that the digraphs package version 1.6.2 or higher is available. digraphs must be compiled before Semigroups can be loaded.

    • -
    • ensure that the genss package version 1.6.5 or higher is available.

      +
    • ensure that the genss package version 1.6.5 or higher is available.

    • ensure that the images package version 1.3.1 or higher is available.

    • -
    • ensure that the IO package version 4.5.1 or higher is available. IO must be compiled before Semigroups can be loaded.

      +
    • ensure that the IO package version 4.5.1 or higher is available. IO must be compiled before Semigroups can be loaded.

    • ensure that the orb package version 4.8.2 or higher is available. orb and Semigroups both perform better if orb is compiled.

    • -
    • download the package archive semigroups-5.3.4.tar.gz from the Semigroups package webpage.

      +
    • download the package archive semigroups-5.3.5.tar.gz from the Semigroups package webpage.

    • -
    • unzip and untar the file, this should create a directory called semigroups-5.3.4.

      +
    • unzip and untar the file, this should create a directory called semigroups-5.3.5.

    • -
    • locate your GAP directory, the one containing the directories lib, doc and so on. Move the directory semigroups-5.3.4.tar.gz into the pkg subdirectory of your GAP directory.

      +
    • locate your GAP directory, the one containing the directories lib, doc and so on. Move the directory semigroups-5.3.5.tar.gz into the pkg subdirectory of your GAP directory.

    • -
    • from version 3.0.0, it is necessary to compile the Semigroups package. Semigroups uses the libsemigroups C++ library, which requires a compiler implementing the C++14 standard. Inside the pkg/semigroups-5.3.4 directory, in your terminal type

      +
    • from version 3.0.0, it is necessary to compile the Semigroups package. Semigroups uses the libsemigroups C++ library, which requires a compiler implementing the C++14 standard. Inside the pkg/semigroups-5.3.5 directory, in your terminal type

      @@ -117,7 +117,7 @@ 

      2.2 Compiling the kernel module

      As of version 3.0.0, the Semigroups package has a kernel module written in C++ and this must be compiled. The kernel module contains the interface to the C++ library libsemigroups . It is not possible to use the Semigroups package without compiling it.

      -

      To compile the kernel component inside the pkg/semigroups-5.3.4.tar.gz directory, type

      +

      To compile the kernel component inside the pkg/semigroups-5.3.5.tar.gz directory, type

      @@ -141,7 +141,7 @@ 

      2.3 Rebuilding the documentation

      gap makedoc.g
      -

      when you're inside the pkg/semigroups-5.3.4 directory.

      +

      when you're inside the pkg/semigroups-5.3.5 directory.

      diff --git a/doc/chap3.html b/doc/chap3.html index d792e2423..2a7b48ff6 100644 --- a/doc/chap3.html +++ b/doc/chap3.html @@ -396,7 +396,7 @@
      3.3-1 AsBipartition
      permutations

      If x is a permutation and n is a positive integer, then AsBipartition(x, n) returns the bipartition on [1 .. n] with classes [i, i ^ x] for all i = 1 .. n.

      -

      If no positive integer n is specified, then the largest moved point of x is used as the value for n; see LargestMovedPoint (Reference: LargestMovedPoint for a permutation).

      +

      If no positive integer n is specified, then the largest moved point of x is used as the value for n; see LargestMovedPoint (Reference: LargestMovedPoint for a permutation).

      transformations
      @@ -1227,9 +1227,9 @@

      3.8 Semigroups of bipartitions

      -

      Semigroups and monoids of bipartitions can be created in the usual way in GAP using the functions Semigroup (Reference: Semigroup) and Monoid (Reference: Monoid); see Chapter 6 for more details.

      +

      Semigroups and monoids of bipartitions can be created in the usual way in GAP using the functions Semigroup (Reference: Semigroup) and Monoid (Reference: Monoid); see Chapter 6 for more details.

      -

      It is possible to create inverse semigroups and monoids of bipartitions using InverseSemigroup (Reference: InverseSemigroup) and InverseMonoid (Reference: InverseMonoid) when the argument is a collection of block bijections or partial perm bipartions; see IsBlockBijection (3.5-16) and IsPartialPermBipartition (3.5-15). Note that every bipartition semigroup in Semigroups is finite.

      +

      It is possible to create inverse semigroups and monoids of bipartitions using InverseSemigroup (Reference: InverseSemigroup) and InverseMonoid (Reference: InverseMonoid) when the argument is a collection of block bijections or partial perm bipartions; see IsBlockBijection (3.5-16) and IsPartialPermBipartition (3.5-15). Note that every bipartition semigroup in Semigroups is finite.

      @@ -1239,9 +1239,9 @@
      3.8-1 IsBipartitionSemigroup
      ‣ IsBipartitionMonoid( S )( filter )

      Returns: true or false.

      -

      A bipartition semigroup is simply a semigroup consisting of bipartitions. An object obj is a bipartition semigroup in GAP if it satisfies IsSemigroup (Reference: IsSemigroup) and IsBipartitionCollection (3.1-2).

      +

      A bipartition semigroup is simply a semigroup consisting of bipartitions. An object obj is a bipartition semigroup in GAP if it satisfies IsSemigroup (Reference: IsSemigroup) and IsBipartitionCollection (3.1-2).

      -

      A bipartition monoid is a monoid consisting of bipartitions. An object obj is a bipartition monoid in GAP if it satisfies IsMonoid (Reference: IsMonoid) and IsBipartitionCollection (3.1-2).

      +

      A bipartition monoid is a monoid consisting of bipartitions. An object obj is a bipartition monoid in GAP if it satisfies IsMonoid (Reference: IsMonoid) and IsBipartitionCollection (3.1-2).

      Note that it is possible for a bipartition semigroup to have a multiplicative neutral element (i.e. an identity element) but not to satisfy IsBipartitionMonoid. For example,

      @@ -1271,9 +1271,9 @@
      3.8-1 IsBipartitionSemigroup
      gap> IsMonoid(S); false
      -

      In this example S cannot be converted into a monoid using AsMonoid (Reference: AsMonoid) since the One (Reference: One) of any element in S differs from the multiplicative neutral element.

      +

      In this example S cannot be converted into a monoid using AsMonoid (Reference: AsMonoid) since the One (Reference: One) of any element in S differs from the multiplicative neutral element.

      -

      For more details see IsMagmaWithOne (Reference: IsMagmaWithOne).

      +

      For more details see IsMagmaWithOne (Reference: IsMagmaWithOne).

      @@ -1285,7 +1285,7 @@
      3.8-2 IsBlockBijectionSemigroup

      A block bijection semigroup is simply a semigroup consisting of block bijections. A block bijection monoid is a monoid consisting of block bijections.

      -

      An object in GAP is a block bijection monoid if it satisfies IsMonoid (Reference: IsMonoid) and IsBlockBijectionSemigroup.

      +

      An object in GAP is a block bijection monoid if it satisfies IsMonoid (Reference: IsMonoid) and IsBlockBijectionSemigroup.

      See IsBlockBijection (3.5-16).

      @@ -1299,7 +1299,7 @@
      3.8-3 IsPartialPermBipartitionSemigroup

      A partial perm bipartition semigroup is simply a semigroup consisting of partial perm bipartitions. A partial perm bipartition monoid is a monoid consisting of partial perm bipartitions.

      -

      An object in GAP is a partial perm bipartition monoid if it satisfies IsMonoid (Reference: IsMonoid) and IsPartialPermBipartitionSemigroup.

      +

      An object in GAP is a partial perm bipartition monoid if it satisfies IsMonoid (Reference: IsMonoid) and IsPartialPermBipartitionSemigroup.

      See IsPartialPermBipartition (3.5-15).

      diff --git a/doc/chap4.html b/doc/chap4.html index 891f6a819..c1d384ec1 100644 --- a/doc/chap4.html +++ b/doc/chap4.html @@ -672,9 +672,9 @@

      4.6 Semigroups of PBRs

      -

      Semigroups and monoids of PBRs can be created in the usual way in GAP using the functions Semigroup (Reference: Semigroup) and Monoid (Reference: Monoid); see Chapter 6 for more details.

      +

      Semigroups and monoids of PBRs can be created in the usual way in GAP using the functions Semigroup (Reference: Semigroup) and Monoid (Reference: Monoid); see Chapter 6 for more details.

      -

      It is possible to create inverse semigroups and monoids of PBRs using InverseSemigroup (Reference: InverseSemigroup) and InverseMonoid (Reference: InverseMonoid) when the argument is a collection of PBRs satisfying IsBipartitionPBR (4.5-8) and when considered as bipartitions, the collection satisfies IsGeneratorsOfInverseSemigroup.

      +

      It is possible to create inverse semigroups and monoids of PBRs using InverseSemigroup (Reference: InverseSemigroup) and InverseMonoid (Reference: InverseMonoid) when the argument is a collection of PBRs satisfying IsBipartitionPBR (4.5-8) and when considered as bipartitions, the collection satisfies IsGeneratorsOfInverseSemigroup.

      Note that every PBR semigroup in Semigroups is finite.

      @@ -686,9 +686,9 @@
      4.6-1 IsPBRSemigroup
      ‣ IsPBRMonoid( S )( filter )

      Returns: true or false.

      -

      A PBR semigroup is simply a semigroup consisting of PBRs. An object obj is a PBR semigroup in GAP if it satisfies IsSemigroup (Reference: IsSemigroup) and IsPBRCollection (4.1-2).

      +

      A PBR semigroup is simply a semigroup consisting of PBRs. An object obj is a PBR semigroup in GAP if it satisfies IsSemigroup (Reference: IsSemigroup) and IsPBRCollection (4.1-2).

      -

      A PBR monoid is a monoid consisting of PBRs. An object obj is a PBR monoid in GAP if it satisfies IsMonoid (Reference: IsMonoid) and IsPBRCollection (4.1-2).

      +

      A PBR monoid is a monoid consisting of PBRs. An object obj is a PBR monoid in GAP if it satisfies IsMonoid (Reference: IsMonoid) and IsPBRCollection (4.1-2).

      Note that it is possible for a PBR semigroup to have a multiplicative neutral element (i.e. an identity element) but not to satisfy IsPBRMonoid. For example,

      @@ -718,9 +718,9 @@
      4.6-1 IsPBRSemigroup
      gap> IsPBRMonoid(S); false
    -

    In this example S cannot be converted into a monoid using AsMonoid (Reference: AsMonoid) since the One (Reference: One) of any element in S differs from the multiplicative neutral element.

    +

    In this example S cannot be converted into a monoid using AsMonoid (Reference: AsMonoid) since the One (Reference: One) of any element in S differs from the multiplicative neutral element.

    -

    For more details see IsMagmaWithOne (Reference: IsMagmaWithOne).

    +

    For more details see IsMagmaWithOne (Reference: IsMagmaWithOne).

    diff --git a/doc/chap5.html b/doc/chap5.html index bc77cae89..93d1b331c 100644 --- a/doc/chap5.html +++ b/doc/chap5.html @@ -172,11 +172,11 @@
    5.1-1 IsMatrixOverSemiring
    ‣ IsMatrixOverSemiring( obj )( category )

    Returns: true or false.

    -

    Every matrix over a semiring in Semigroups is a member of the category IsMatrixOverSemiring, which is a subcategory of IsMultiplicativeElementWithOne (Reference: IsMultiplicativeElementWithOne), IsAssociativeElement (Reference: IsAssociativeElement), and IsPositionalObjectRep; see Reference: Representation.

    +

    Every matrix over a semiring in Semigroups is a member of the category IsMatrixOverSemiring, which is a subcategory of IsMultiplicativeElementWithOne (Reference: IsMultiplicativeElementWithOne), IsAssociativeElement (Reference: IsAssociativeElement), and IsPositionalObjectRep; see Reference: Representation.

    Every matrix over a semiring in Semigroups is a square matrix.

    -

    Basic operations for matrices over semirings are: DimensionOfMatrixOverSemiring (5.1-3), TransposedMat (Reference: TransposedMat), and One (Reference: One).

    +

    Basic operations for matrices over semirings are: DimensionOfMatrixOverSemiring (5.1-3), TransposedMat (Reference: TransposedMat), and One (Reference: One).

    @@ -265,7 +265,7 @@
    5.1-5 Matrix
    -

    In its second form, the arguments should be a semiring semiring and matrix mat with entries in semiring. Currently, the only supported semirings are finite fields of prime order, and the integers Integers (Reference: Integers).

    +

    In its second form, the arguments should be a semiring semiring and matrix mat with entries in semiring. Currently, the only supported semirings are finite fields of prime order, and the integers Integers (Reference: Integers).

    The function BooleanMat (5.3-1) is provided for specifically creating boolean matrices.

    @@ -429,7 +429,7 @@
    5.1-7 RandomMatrix
    -

    In its second form, the arguments should be a semiring semiring and dimension dim. Currently, the only supported semirings are finite fields of prime order and the integers Integers (Reference: Integers).

    +

    In its second form, the arguments should be a semiring semiring and dimension dim. Currently, the only supported semirings are finite fields of prime order and the integers Integers (Reference: Integers).

    @@ -473,7 +473,7 @@ 
    5.1-8 Matrix filters

    IsTropicalMatrix is a supercategory of IsTropicalMaxPlusMatrix and IsTropicalMinPlusMatrix.

    -

    Basic operations for matrices over semirings include: multiplication via \*, DimensionOfMatrixOverSemiring (5.1-3), One (Reference: One), the underlying list of lists used to create the matrix can be accessed using AsList (5.1-10), the rows of mat can be accessed using mat[i] where i is between 1 and the dimension of the matrix, it also possible to loop over the rows of a matrix; for tropical matrices ThresholdTropicalMatrix (5.1-11); for ntp matrices ThresholdNTPMatrix (5.1-12) and PeriodNTPMatrix (5.1-12).

    +

    Basic operations for matrices over semirings include: multiplication via \*, DimensionOfMatrixOverSemiring (5.1-3), One (Reference: One), the underlying list of lists used to create the matrix can be accessed using AsList (5.1-10), the rows of mat can be accessed using mat[i] where i is between 1 and the dimension of the matrix, it also possible to loop over the rows of a matrix; for tropical matrices ThresholdTropicalMatrix (5.1-11); for ntp matrices ThresholdNTPMatrix (5.1-12) and PeriodNTPMatrix (5.1-12).

    For matrices over finite fields see Section 5.4; for Boolean matrices more details can be found in Section 5.3.

    @@ -721,7 +721,7 @@
    5.3-2 AsBooleanMat
    permutations

    If x is a permutation and n is a positive integer, then AsBooleanMat(x, n) returns the boolean matrix mat of dimension n such that mat[i][j] = true if and only if j = i ^ x.

    -

    If no positive integer n is specified, then the largest moved point of x is used as the value for n; see LargestMovedPoint (Reference: LargestMovedPoint for a permutation).

    +

    If no positive integer n is specified, then the largest moved point of x is used as the value for n; see LargestMovedPoint (Reference: LargestMovedPoint for a permutation).

    transformations
    @@ -975,7 +975,7 @@
    5.3-8 CanonicalBooleanMat

    In its second form, when only a single permutation group G is specified, G acts on the rows and columns of mat independently.

    -

    In its third form, when only a boolean matrix is specified, CanonicalBooleanMat returns a fixed representative of the orbit of mat under the action of the symmetric group on its rows, and, independently, on its columns. In other words, CanonicalBooleanMat returns a canonical boolean matrix equivalent to mat up to rearranging rows and columns. This version of CanonicalBooleanMat uses Digraphs and its interface with the bliss library for computing automorphism groups and canonical forms of graphs [JK07]. As a consequence, CanonicalBooleanMat with a single argument is significantly faster than the versions with 2 or 3 arguments.

    +

    In its third form, when only a boolean matrix is specified, CanonicalBooleanMat returns a fixed representative of the orbit of mat under the action of the symmetric group on its rows, and, independently, on its columns. In other words, CanonicalBooleanMat returns a canonical boolean matrix equivalent to mat up to rearranging rows and columns. This version of CanonicalBooleanMat uses digraphs and its interface with the bliss library for computing automorphism groups and canonical forms of graphs [JK07]. As a consequence, CanonicalBooleanMat with a single argument is significantly faster than the versions with 2 or 3 arguments.

    @@ -1241,7 +1241,7 @@ 

    5.4

    In this section we describe some operations in Semigroups for matrices over finite fields that are required for such matrices to form semigroups satisfying IsActingSemigroup (6.1-2).

    -

    From v5.0.0, Semigroups uses the GAP library implementation of matrices over finite fields belonging to the category IsMatrixObj (Reference: IsMatrixObj) rather than the previous implementation in the Semigroups package. This means that from v5.0.0, matrices over a finite field no longer belong to the category IsMatrixOverSemiring (5.1-1).

    +

    From v5.0.0, Semigroups uses the GAP library implementation of matrices over finite fields belonging to the category IsMatrixObj (Reference: IsMatrixObj) rather than the previous implementation in the Semigroups package. This means that from v5.0.0, matrices over a finite field no longer belong to the category IsMatrixOverSemiring (5.1-1).

    The following methods are implemented in Semigroups for matrix objects over finite fields.

    @@ -1297,7 +1297,7 @@

    5.5

    In this section we describe operations in Semigroups specifically for integer matrices.

    -

    From v5.0.0, Semigroups uses the GAP library implementation of matrices over the integers belonging to the category IsMatrixObj (Reference: IsMatrixObj) rather than the previous implementation in the Semigroups package. This means that from v5.0.0, matrices over the integers no longer belong to the category IsMatrixOverSemiring (5.1-1).

    +

    From v5.0.0, Semigroups uses the GAP library implementation of matrices over the integers belonging to the category IsMatrixObj (Reference: IsMatrixObj) rather than the previous implementation in the Semigroups package. This means that from v5.0.0, matrices over the integers no longer belong to the category IsMatrixOverSemiring (5.1-1).

    The following methods are implemented in Semigroups for matrix objects over the integers.

    diff --git a/doc/chap5.txt b/doc/chap5.txt index 18e80fdee..b22101b21 100644 --- a/doc/chap5.txt +++ b/doc/chap5.txt @@ -896,7 +896,7 @@ the action of the symmetric group on its rows, and, independently, on its columns. In other words, CanonicalBooleanMat returns a canonical boolean matrix equivalent to mat up to rearranging rows and columns. This version of - CanonicalBooleanMat uses Digraphs and its interface with the bliss library + CanonicalBooleanMat uses digraphs and its interface with the bliss library for computing automorphism groups and canonical forms of graphs [JK07]. As a consequence, CanonicalBooleanMat with a single argument is significantly faster than the versions with 2 or 3 arguments. diff --git a/doc/chap5_mj.html b/doc/chap5_mj.html index 38cdc1c76..0a565f7fa 100644 --- a/doc/chap5_mj.html +++ b/doc/chap5_mj.html @@ -978,7 +978,7 @@
    5.3-8 CanonicalBooleanMat

    In its second form, when only a single permutation group G is specified, G acts on the rows and columns of mat independently.

    -

    In its third form, when only a boolean matrix is specified, CanonicalBooleanMat returns a fixed representative of the orbit of mat under the action of the symmetric group on its rows, and, independently, on its columns. In other words, CanonicalBooleanMat returns a canonical boolean matrix equivalent to mat up to rearranging rows and columns. This version of CanonicalBooleanMat uses Digraphs and its interface with the bliss library for computing automorphism groups and canonical forms of graphs [JK07]. As a consequence, CanonicalBooleanMat with a single argument is significantly faster than the versions with 2 or 3 arguments.

    +

    In its third form, when only a boolean matrix is specified, CanonicalBooleanMat returns a fixed representative of the orbit of mat under the action of the symmetric group on its rows, and, independently, on its columns. In other words, CanonicalBooleanMat returns a canonical boolean matrix equivalent to mat up to rearranging rows and columns. This version of CanonicalBooleanMat uses digraphs and its interface with the bliss library for computing automorphism groups and canonical forms of graphs [JK07]. As a consequence, CanonicalBooleanMat with a single argument is significantly faster than the versions with 2 or 3 arguments.

    diff --git a/doc/chap6.html b/doc/chap6.html
    index d9036f23b..127085aa8 100644
    --- a/doc/chap6.html
    +++ b/doc/chap6.html
    @@ -96,7 +96,7 @@ 
    6.1-1

    The first of the fundamental algorithms for computing a semigroup defined by a generating set is described in [EENMP19]. When applied to a semigroup or monoid with relatively large subgroups, or D-classes, these are the most efficient methods in the Semigroups package. For example, the complexity of computing, say, the size of a transformation semigroup that happens to be a group, is the same as the complexity of the Schreier-Sims Algorithm (polynomial in the number of points acted on by the transformations) for a permutation group.

    -

    In theory, these algorithms can be applied to compute any subsemigroup of a regular semigroup; but so far in the Semigroups package they are only implemented for semigroups of: transformations (see Reference: Transformations), partial permutations (see Reference: Partial permutations), bipartitions (see Chapter 3), matrices over a finite field (see Section 5.4); subsemigroups of regular Rees 0-matrix semigroups over permutation groups (see Chapter Reference: Rees Matrix Semigroups), and subsemigroups of McAlister triples (see Section 8.4).

    +

    In theory, these algorithms can be applied to compute any subsemigroup of a regular semigroup; but so far in the Semigroups package they are only implemented for semigroups of: transformations (see Reference: Transformations), partial permutations (see Reference: Partial permutations), bipartitions (see Chapter 3), matrices over a finite field (see Section 5.4); subsemigroups of regular Rees 0-matrix semigroups over permutation groups (see Chapter Reference: Rees Matrix Semigroups), and subsemigroups of McAlister triples (see Section 8.4).

    We refer to semigroups to which the algorithms in [EENMP19] can be applied as acting semigroups, and such semigroups belong to the category IsActingSemigroup (6.1-2).

    @@ -136,7 +136,7 @@
    6.1-3 The Froidure-Pin Algorithm

    A semigroup to which the Froidure-Pin Algorithm can be applied in Semigroups satisfy CanUseFroidurePin (6.1-4). Every acting semigroup in Semigroups satisfies CanUseFroidurePin (6.1-4) and the Froidure-Pin Algorithm is used to compute certain properties or attributes.

    -

    Currently, the libsemigroups implementation of the Froidure-Pin Algorithm can be applied to semigroups consisting of the following types of elements: transformations (see Reference: Transformations), partial permutations (see Reference: Partial permutations), bipartitions (see Chapter 3), partitioned binary relations (see Chapter 4) as defined in [MM13]; and matrices over the following semirings:

    +

    Currently, the libsemigroups implementation of the Froidure-Pin Algorithm can be applied to semigroups consisting of the following types of elements: transformations (see Reference: Transformations), partial permutations (see Reference: Partial permutations), bipartitions (see Chapter 3), partitioned binary relations (see Chapter 4) as defined in [MM13]; and matrices over the following semirings:

      @@ -221,22 +221,22 @@

      6.3 Options when creating semigroups

        -
      • InverseSemigroup (Reference: InverseSemigroup),

        +
      • InverseSemigroup (Reference: InverseSemigroup),

      • -
      • InverseMonoid (Reference: InverseMonoid),

        +
      • InverseMonoid (Reference: InverseMonoid),

      • -
      • Semigroup (Reference: Semigroup),

        +
      • Semigroup (Reference: Semigroup),

      • -
      • Monoid (Reference: Monoid),

        +
      • Monoid (Reference: Monoid),

      • -
      • SemigroupByGenerators (Reference: SemigroupByGenerators),

        +
      • SemigroupByGenerators (Reference: SemigroupByGenerators),

      • -
      • MonoidByGenerators (Reference: MonoidByGenerators),

        +
      • MonoidByGenerators (Reference: MonoidByGenerators),

      • ClosureSemigroup (6.4-1),

        @@ -278,7 +278,7 @@

        6.3 Options when creating semigroups

        hashlen

        this component should be a positive integer, which roughly specifies the lengths of the hash tables used internally by Semigroups. Semigroups uses hash tables in several fundamental methods. The lengths of these tables are a compromise between performance and memory usage; larger tables provide better performance for large computations but use more memory. Note that it is unlikely that you will need to specify this option unless you find that GAP runs out of memory unexpectedly or that the performance of Semigroups is poorer than expected. If you find that GAP runs out of memory unexpectedly, or you plan to do a large number of computations with relatively small semigroups (say with tens of thousands of elements), then you might consider setting hashlen to be less than the default value of 12517 for each of these semigroups. If you find that the performance of Semigroups is unexpectedly poor, or you plan to do a computation with a very large semigroup (say, more than 10 million elements), then you might consider setting hashlen to be greater than the default value of 12517.

        -

        You might find it useful to set the info level of the info class InfoOrb to 2 or higher since this will indicate when hash tables used by Semigroups are being grown; see SetInfoLevel (Reference: InfoLevel).

        +

        You might find it useful to set the info level of the info class InfoOrb to 2 or higher since this will indicate when hash tables used by Semigroups are being grown; see SetInfoLevel (Reference: InfoLevel).

        small
        @@ -305,7 +305,7 @@

        6.3 Options when creating semigroups

        gap> SEMIGROUPS.DefaultOptionsRec.small := true; true
    -

    If you want to change the default values of the options stored in SEMIGROUPS.DefaultOptionsRec (6.3-1) for all GAP sessions, then you can edit these values in the file semigroups-5.3.4/gap/options.g.

    +

    If you want to change the default values of the options stored in SEMIGROUPS.DefaultOptionsRec (6.3-1) for all GAP sessions, then you can edit these values in the file semigroups-5.3.5/gap/options.g.

    @@ -332,7 +332,7 @@
    6.4-1 ClosureSemigroup

    These operations return the semigroup, monoid, inverse semigroup or inverse monoid generated by the argument S and the collection of elements coll after removing duplicates and elements from coll that are already in S. In most cases, the new semigroup knows at least as much information about its structure as was already known about that of S.

    -

    When X is any of Semigroup (Reference: Semigroup), Monoid (Reference: Monoid), InverseSemigroup (Reference: InverseSemigroup), or InverseMonoid (Reference: InverseMonoid), the argument S of the operation ClosureX must belong to the category IsX, and ClosureX(S, coll) returns an object in the category IsX such that

    +

    When X is any of Semigroup (Reference: Semigroup), Monoid (Reference: Monoid), InverseSemigroup (Reference: InverseSemigroup), or InverseMonoid (Reference: InverseMonoid), the argument S of the operation ClosureX must belong to the category IsX, and ClosureX(S, coll) returns an object in the category IsX such that

    @@ -340,7 +340,7 @@ 
    6.4-1 ClosureSemigroup

    but may have fewer generators, if for example, coll contains a duplicates or elements already known to belong to S.

    -

    For example, the argument S of ClosureInverseSemigroup must be an inverse semigroup in the category IsInverseSemigroup (Reference: IsInverseSemigroup). ClosureInverseSemigroup(S, coll) returns an inverse semigroup which is equal to InverseSemigroup(S, coll).

    +

    For example, the argument S of ClosureInverseSemigroup must be an inverse semigroup in the category IsInverseSemigroup (Reference: IsInverseSemigroup). ClosureInverseSemigroup(S, coll) returns an inverse semigroup which is equal to InverseSemigroup(S, coll).

    If present, the optional third argument opts should be a record containing the values of the options for the semigroup being created as described in Section 6.3.

    @@ -468,23 +468,23 @@

    6.5 Changing the representation of a semigroup< -

    The operation IsomorphismMonoid (6.5-2) can be used to return an isomorphism from a semigroup which is mathematically a monoid (but does not below to the category of monoids in GAP IsMonoid (Reference: IsMonoid)) into a monoid. This is the primary purpose of the operation IsomorphismMonoid (6.5-2). Either IsomorphismSemigroup (6.5-1) or IsomorphismMonoid (6.5-2) can be used to change the representation of a monoid, but only the latter is guaranteed to return an object in the category of monoids.

    +

    The operation IsomorphismMonoid (6.5-2) can be used to return an isomorphism from a semigroup which is mathematically a monoid (but does not below to the category of monoids in GAP IsMonoid (Reference: IsMonoid)) into a monoid. This is the primary purpose of the operation IsomorphismMonoid (6.5-2). Either IsomorphismSemigroup (6.5-1) or IsomorphismMonoid (6.5-2) can be used to change the representation of a monoid, but only the latter is guaranteed to return an object in the category of monoids.

    @@ -523,15 +523,15 @@ 
    6.5-1 IsomorphismSemigroup

    IsomorphismSemigroup can be used to find an isomorphism from a given semigroup to a semigroup of another type, provided such an isomorphism exists.

    -

    The first argument filt must be of the form IsXSemigroup, for example, IsTransformationSemigroup (Reference: IsTransformationSemigroup), IsFpSemigroup (Reference: IsFpSemigroup), and IsPBRSemigroup (4.6-1) are some possible values for filt. Note that filt should not be of the form IsXMonoid; see IsomorphismMonoid (6.5-2). The second argument S should be a semigroup.

    +

    The first argument filt must be of the form IsXSemigroup, for example, IsTransformationSemigroup (Reference: IsTransformationSemigroup), IsFpSemigroup (Reference: IsFpSemigroup), and IsPBRSemigroup (4.6-1) are some possible values for filt. Note that filt should not be of the form IsXMonoid; see IsomorphismMonoid (6.5-2). The second argument S should be a semigroup.

    IsomorphismSemigroup returns an isomorphism from S to a semigroup T of the type described by filt, if such an isomorphism exists. More precisely, if T is the range of the returned isomorphism, then filt(T) will return true. For example, if filt is IsTransformationSemigroup, then the range of the returned isomorphism will be a transformation semigroup.

    -

    An error is returned if there is no isomorphism from S to a semigroup satisfying filt. For example, there is no method for IsomorphismSemigroup when filt is, say, IsReesMatrixSemigroup (Reference: IsReesMatrixSemigroup) and when S is a non-simple semigroup. Similarly, there is no method when filt is IsPartialPermSemigroup (Reference: IsPartialPermSemigroup) and when S is a non-inverse semigroup.

    +

    An error is returned if there is no isomorphism from S to a semigroup satisfying filt. For example, there is no method for IsomorphismSemigroup when filt is, say, IsReesMatrixSemigroup (Reference: IsReesMatrixSemigroup) and when S is a non-simple semigroup. Similarly, there is no method when filt is IsPartialPermSemigroup (Reference: IsPartialPermSemigroup) and when S is a non-inverse semigroup.

    In some cases, if no better method is installed, IsomorphismSemigroup returns an isomorphism found by composing an isomorphism from S to a transformation semigroup T, and an isomorphism from T to a semigroup of type filt.

    -

    Note that if the argument S belongs to the category of monoids IsMonoid (Reference: IsMonoid), then IsomorphismSemigroup will often, but not always, return a monoid isomorphism.

    +

    Note that if the argument S belongs to the category of monoids IsMonoid (Reference: IsMonoid), then IsomorphismSemigroup will often, but not always, return a monoid isomorphism.

    @@ -580,11 +580,11 @@ 
    6.5-2 IsomorphismMonoid

    IsomorphismMonoid can be used to find an isomorphism from a given semigroup which is mathematically a monoid (but might not belong to the category of monoids in GAP) to a monoid, provided such an isomorphism exists.

    -

    The first argument filt must be of the form IsXMonoid, for example, IsTransformationMonoid (Reference: IsTransformationMonoid), IsFpMonoid (Reference: IsFpMonoid), and IsBipartitionMonoid (3.8-1) are some possible values for filt. Note that filt should not be of the form IsXSemigroup; see IsomorphismSemigroup (6.5-1). The second argument S should be a semigroup which is mathematically a monoid but which may or may not belong to the category IsMonoid (Reference: IsMonoid) of monoids in GAP, i.e. S must satisfy IsMonoidAsSemigroup (12.1-13).

    +

    The first argument filt must be of the form IsXMonoid, for example, IsTransformationMonoid (Reference: IsTransformationMonoid), IsFpMonoid (Reference: IsFpMonoid), and IsBipartitionMonoid (3.8-1) are some possible values for filt. Note that filt should not be of the form IsXSemigroup; see IsomorphismSemigroup (6.5-1). The second argument S should be a semigroup which is mathematically a monoid but which may or may not belong to the category IsMonoid (Reference: IsMonoid) of monoids in GAP, i.e. S must satisfy IsMonoidAsSemigroup (12.1-13).

    -

    IsomorphismMonoid returns a monoid isomorphism from S to a semigroup T of the type described by filt, if such an isomorphism exists. In this context, a monoid isomorphism is a semigroup isomorphism that maps the MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement) of S to the One (Reference: One) of T. If T is the range of the returned isomorphism, then filt(T) will return true. For example, if filt is IsTransformationMonoid, then the range of the returned isomorphism will be a transformation monoid.

    +

    IsomorphismMonoid returns a monoid isomorphism from S to a semigroup T of the type described by filt, if such an isomorphism exists. In this context, a monoid isomorphism is a semigroup isomorphism that maps the MultiplicativeNeutralElement (Reference: MultiplicativeNeutralElement) of S to the One (Reference: One) of T. If T is the range of the returned isomorphism, then filt(T) will return true. For example, if filt is IsTransformationMonoid, then the range of the returned isomorphism will be a transformation monoid.

    -

    An error is returned if there is no isomorphism from S to a monoid satisfying filt. For example, there is no method for IsomorphismMonoid when filt is, say, IsReesZeroMatrixSemigroup (Reference: IsReesZeroMatrixSemigroup) and when S is a not 0-simple. Similarly, there is no method when filt is IsPartialPermMonoid (Reference: IsPartialPermMonoid) and when S is a non-inverse monoid.

    +

    An error is returned if there is no isomorphism from S to a monoid satisfying filt. For example, there is no method for IsomorphismMonoid when filt is, say, IsReesZeroMatrixSemigroup (Reference: IsReesZeroMatrixSemigroup) and when S is a not 0-simple. Similarly, there is no method when filt is IsPartialPermMonoid (Reference: IsPartialPermMonoid) and when S is a non-inverse monoid.

    In some cases, if no better method is installed, IsomorphismMonoid returns an isomorphism found by composing an isomorphism from S to a transformation monoid T, and an isomorphism from T to a monoid of type filt.

    @@ -612,7 +612,7 @@
    6.5-3 AsSemigroup

    AsSemigroup(filt, S) is just shorthand for Range(IsomorphismSemigroup(filt, S)), when S is a semigroup; see IsomorphismSemigroup (6.5-1) for more details.

    -

    Note that if the argument S belongs to the category of monoids IsMonoid (Reference: IsMonoid), then AsSemigroup will often, but not always, return a monoid. A monoid is not returned if there is not a good monoid isomorphism from S to a monoid of the required type, but there is a good semigroup isomorphism.

    +

    Note that if the argument S belongs to the category of monoids IsMonoid (Reference: IsMonoid), then AsSemigroup will often, but not always, return a monoid. A monoid is not returned if there is not a good monoid isomorphism from S to a monoid of the required type, but there is a good semigroup isomorphism.

    If it is not possible to convert the semigroup S to a semigroup of type filt, then an error is given.

    @@ -684,7 +684,7 @@
    6.5-5 IsomorphismPermGroup

    If S is not a group then an error is given.

    -

    See also IsomorphismPermGroup (Reference: IsomorphismPermGroup).

    +

    See also IsomorphismPermGroup (Reference: IsomorphismPermGroup).

    @@ -721,7 +721,7 @@ 
    6.5-6 RZMSNormalization
    ‣ RZMSNormalization( R )( attribute )

    Returns: An isomorphism.

    -

    If R is a Rees 0-matrix semigroup M^0[I, T, Λ; P] then RZMSNormalization returns an isomorphism from R to a normalized Rees 0-matrix semigroup S = M^0[I, T, Λ; Q]. The structure matrix Q is obtained by normalizing the matrix P (see Matrix (Reference: Matrix)) and has the following properties:

    +

    If R is a Rees 0-matrix semigroup M^0[I, T, Λ; P] then RZMSNormalization returns an isomorphism from R to a normalized Rees 0-matrix semigroup S = M^0[I, T, Λ; Q]. The structure matrix Q is obtained by normalizing the matrix P (see Matrix (Reference: Matrix)) and has the following properties:

      @@ -794,7 +794,7 @@
      6.5-7 RMSNormalization

      If R is a Rees matrix semigroup over a group G (i.e. a semigroup for which IsGroupAsSemigroup (12.1-7) returns true), then RMSNormalization returns an isomorphism from R to a normalized Rees matrix semigroup S over G.

      -

      The semigroup S is normalized in the sense that the first entry of each row and column of the Matrix (Reference: Matrix) of S is the identity element of G.

      +

      The semigroup S is normalized in the sense that the first entry of each row and column of the Matrix (Reference: Matrix) of S is the identity element of G.

      @@ -850,7 +850,7 @@ 
      6.5-9 AntiIsomorphismDualFpSemigroup
      ‣ AntiIsomorphismDualFpMonoid( S )( attribute )

      Returns: A finitely presented semigroup or monoid.

      -

      AntiIsomorphismDualFpSemigroup returns an anti-isomorphism (MappingByFunction (Reference: MappingByFunction)) from the finitely presented semigroup S to another finitely presented semigroup. The range finitely presented semigroup is obtained from S by reversing the relations of S.

      +

      AntiIsomorphismDualFpSemigroup returns an anti-isomorphism (MappingByFunction (Reference: MappingByFunction)) from the finitely presented semigroup S to another finitely presented semigroup. The range finitely presented semigroup is obtained from S by reversing the relations of S.

      AntiIsomorphismDualFpMonoid works analogously when S is a finitely presented monoid, and the range of the returned anti-isomorphism is a finitely presented monoid.

      @@ -879,7 +879,7 @@
      6.5-10 EmbeddingFpMonoid
      ‣ EmbeddingFpMonoid( S )( attribute )

      Returns: A finitely presented monoid.

      -

      EmbeddingFpMonoid returns an embedding (SemigroupHomomorphismByImages (14.1-1)) from the finitely presented semigroup S into a finitely presented monoid. If S satisfies IsMonoidAsSemigroup (12.1-13), then the mapping returned by this function is an isomorphism (the same isomorphism as IsomorphismFpMonoid (Reference: IsomorphismFpMonoid)). If S is not a monoid, then the range is isomorphic to S with an identity adjoined (a new element not previously in S). The embedded copy of S in the range can be recovered using Image (Reference: Image).

      +

      EmbeddingFpMonoid returns an embedding (SemigroupHomomorphismByImages (14.1-1)) from the finitely presented semigroup S into a finitely presented monoid. If S satisfies IsMonoidAsSemigroup (12.1-13), then the mapping returned by this function is an isomorphism (the same isomorphism as IsomorphismFpMonoid (Reference: IsomorphismFpMonoid)). If S is not a monoid, then the range is isomorphic to S with an identity adjoined (a new element not previously in S). The embedded copy of S in the range can be recovered using Image (Reference: Image).

      @@ -921,9 +921,9 @@ 
      6.6-1 RandomSemigroup

      If no arguments are specified, then they are all chosen at random, for a truly random experience.

      -

      The first argument, if present, should be a filter filter. For RandomSemigroup and RandomInverseSemigroup the filter filter must be of the form IsXSemigroup. For example, IsTransformationSemigroup (Reference: IsTransformationSemigroup), IsFpSemigroup (Reference: IsFpSemigroup), and IsPBRSemigroup (4.6-1) are some possible values for filter. For RandomMonoid and RandomInverseMonoid the argument filter must be of the form IsXMonoid; such as IsBipartitionMonoid (3.8-1) or IsBooleanMatMonoid (5.7-2).

      +

      The first argument, if present, should be a filter filter. For RandomSemigroup and RandomInverseSemigroup the filter filter must be of the form IsXSemigroup. For example, IsTransformationSemigroup (Reference: IsTransformationSemigroup), IsFpSemigroup (Reference: IsFpSemigroup), and IsPBRSemigroup (4.6-1) are some possible values for filter. For RandomMonoid and RandomInverseMonoid the argument filter must be of the form IsXMonoid; such as IsBipartitionMonoid (3.8-1) or IsBooleanMatMonoid (5.7-2).

      -

      Suppose that the first argument filter is IsFpSemigroup (Reference: IsFpSemigroup). Then the only other arguments that can be specified is (and this argument is also optional):

      +

      Suppose that the first argument filter is IsFpSemigroup (Reference: IsFpSemigroup). Then the only other arguments that can be specified is (and this argument is also optional):

      @@ -932,7 +932,7 @@
      6.6-1 RandomSemigroup
      -

      If filter is a filter such as IsTransformationSemigroup (Reference: IsTransformationSemigroup) or IsIntegerMatrixSemigroup (5.7-1), then a further argument can be specified:

      +

      If filter is a filter such as IsTransformationSemigroup (Reference: IsTransformationSemigroup) or IsIntegerMatrixSemigroup (5.7-1), then a further argument can be specified:

      diff --git a/doc/chap6.txt b/doc/chap6.txt index 6560d7519..99deaf197 100644 --- a/doc/chap6.txt +++ b/doc/chap6.txt @@ -330,7 +330,7 @@ If you want to change the default values of the options stored in SEMIGROUPS.DefaultOptionsRec (6.3-1) for all GAP sessions, then you can edit - these values in the file semigroups-5.3.4/gap/options.g. + these values in the file semigroups-5.3.5/gap/options.g. 6.3-1 SEMIGROUPS.DefaultOptionsRec diff --git a/doc/chap6_mj.html b/doc/chap6_mj.html index e075eab3c..3f54ecd6f 100644 --- a/doc/chap6_mj.html +++ b/doc/chap6_mj.html @@ -308,7 +308,7 @@

      6.3 Options when creating semigroups

      gap> SEMIGROUPS.DefaultOptionsRec.small := true; true
      -

      If you want to change the default values of the options stored in SEMIGROUPS.DefaultOptionsRec (6.3-1) for all GAP sessions, then you can edit these values in the file semigroups-5.3.4/gap/options.g.

      +

      If you want to change the default values of the options stored in SEMIGROUPS.DefaultOptionsRec (6.3-1) for all GAP sessions, then you can edit these values in the file semigroups-5.3.5/gap/options.g.

      diff --git a/doc/chap7.html b/doc/chap7.html index 83ce15a79..5c5047317 100644 --- a/doc/chap7.html +++ b/doc/chap7.html @@ -178,7 +178,7 @@

      7.1 Transformation semigroups

      -

      In this section, we describe the operations in Semigroups that can be used to create transformation semigroups belonging to several standard classes of example. See Reference: Transformations for more information about transformations.

      +

      In this section, we describe the operations in Semigroups that can be used to create transformation semigroups belonging to several standard classes of example. See Reference: Transformations for more information about transformations.

      @@ -343,7 +343,7 @@
      7.1-6 EndomorphismMonoid
      ‣ EndomorphismMonoid( digraph, colors )( operation )

      Returns: A monoid.

      -

      An endomorphism of digraph is a homomorphism DigraphHomomorphism (Digraphs: DigraphHomomorphism) from digraph back to itself.

      +

      An endomorphism of digraph is a homomorphism DigraphHomomorphism (Digraphs: DigraphHomomorphism) from digraph back to itself.

      EndomorphismMonoid, called with a single argument, returns the monoid of all endomorphisms of digraph.

      @@ -358,7 +358,7 @@
      7.1-6 EndomorphismMonoid
    -

    See also GeneratorsOfEndomorphismMonoid (Digraphs: GeneratorsOfEndomorphismMonoid). Note that the performance of EndomorphismMonoid may differ from that of GeneratorsOfEndomorphismMonoid (Digraphs: GeneratorsOfEndomorphismMonoid) since the former incrementally adds newly discovered endomorphisms to the monoid using ClosureMonoid (6.4-1).

    +

    See also GeneratorsOfEndomorphismMonoid (Digraphs: GeneratorsOfEndomorphismMonoid). Note that the performance of EndomorphismMonoid may differ from that of GeneratorsOfEndomorphismMonoid (Digraphs: GeneratorsOfEndomorphismMonoid) since the former incrementally adds newly discovered endomorphisms to the monoid using ClosureMonoid (6.4-1).

    @@ -384,7 +384,7 @@ 

    7.2 Semigroups of partial permutations

    -

    In this section, we describe the operations in Semigroups that can be used to create semigroups of partial permutations belonging to several standard classes of example. See Reference: Partial permutations for more information about partial permutations.

    +

    In this section, we describe the operations in Semigroups that can be used to create semigroups of partial permutations belonging to several standard classes of example. See Reference: Partial permutations for more information about partial permutations.

    @@ -418,7 +418,7 @@
    7.2-2 RookMonoid
    ‣ RookMonoid( n )( operation )

    Returns: An inverse monoid of partial permutations.

    -

    RookMonoid is a synonym for SymmetricInverseMonoid (Reference: SymmetricInverseMonoid).

    +

    RookMonoid is a synonym for SymmetricInverseMonoid (Reference: SymmetricInverseMonoid).

    @@ -1684,7 +1684,7 @@ 
    7.10-1 GraphInverseSemigroup
    ‣ GraphInverseSemigroup( E )( operation )

    Returns: A graph inverse semigroup.

    -

    If E is a digraph (i.e. it satisfies IsDigraph (Digraphs: IsDigraph)), then GraphInverseSemigroup returns the graph inverse semigroup G(E) where, roughly speaking, elements correspond to paths in the graph E.

    +

    If E is a digraph (i.e. it satisfies IsDigraph (Digraphs: IsDigraph)), then GraphInverseSemigroup returns the graph inverse semigroup G(E) where, roughly speaking, elements correspond to paths in the graph E.

    Let us describe E as a digraph E = (E ^ 0, E ^ 1, r, s), where E^0 is the set of vertices, E^1 is the set of edges, and r and s are functions E^1 -> E^0 giving the range and source of an edge, respectively. The graph inverse semigroup G(E) of E is the semigroup-with-zero generated by the sets E ^ 0 and E ^ 1, together with a set of variables {e ^ -1 ∣ e ∈ E ^ 1}, satisfying the following relations for all v, w ∈ E ^ 0 and e, f ∈ E ^ 1:

    @@ -1841,7 +1841,7 @@
    7.10-7 IsGraphInverseSubsemigroup
    ‣ IsGraphInverseSubsemigroup( filter )

    IsGraphInverseSubsemigroup is a synonym for IsSemigroup and IsInverseSemigroup and IsGraphInverseSemigroupElementCollection.

    -

    See IsGraphInverseSemigroupElementCollection (7.10-6) and IsInverseSemigroup (Reference: IsInverseSemigroup).

    +

    See IsGraphInverseSemigroupElementCollection (7.10-6) and IsInverseSemigroup (Reference: IsInverseSemigroup).

    @@ -1914,7 +1914,7 @@ 

    7.11

    The internal representation of an element of a free inverse semigroup uses a Munn tree. A Munn tree is a directed tree with distinguished start and terminal vertices and where the edges are labeled by generators so that two edges labeled by the same generator are only incident to the same vertex if one of the edges is coming in and the other is leaving the vertex. For more information regarding free inverse semigroups and the Munn representations see Section 5.10 of [How95].

    -

    See also Reference: Inverse semigroups and monoids, Reference: Partial permutations and Reference: Free Groups, Monoids and Semigroups.

    +

    See also Reference: Inverse semigroups and monoids, Reference: Partial permutations and Reference: Free Groups, Monoids and Semigroups.

    An element of a free inverse semigroup in Semigroups is displayed, by default, as a shortest word corresponding to the element. However, there might be more than one word of the minimum length. For example, if x and y are generators of a free inverse semigroups, then

    @@ -1960,7 +1960,7 @@
    7.11-1 FreeInverseSemigroup
    7.11-2 IsFreeInverseSemigroupCategory
    ‣ IsFreeInverseSemigroupCategory( obj )( category )
    -

    Every free inverse semigroup in GAP created by FreeInverseSemigroup (7.11-1) belongs to the category IsFreeInverseSemigroup. Basic operations for a free inverse semigroup are: GeneratorsOfInverseSemigroup (Reference: GeneratorsOfInverseSemigroup) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup). Elements of a free inverse semigroup belong to the category IsFreeInverseSemigroupElement (7.11-4).

    +

    Every free inverse semigroup in GAP created by FreeInverseSemigroup (7.11-1) belongs to the category IsFreeInverseSemigroup. Basic operations for a free inverse semigroup are: GeneratorsOfInverseSemigroup (Reference: GeneratorsOfInverseSemigroup) and GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup). Elements of a free inverse semigroup belong to the category IsFreeInverseSemigroupElement (7.11-4).

    @@ -2030,7 +2030,7 @@
    7.11-7 MinimalWord
    7.11-8 Displaying free inverse semigroup elements
    -

    There is a way to change how GAP displays free inverse semigroup elements using the user preference FreeInverseSemigroupElementDisplay. See UserPreference (Reference: UserPreference) for more information about user preferences.

    +

    There is a way to change how GAP displays free inverse semigroup elements using the user preference FreeInverseSemigroupElementDisplay. See UserPreference (Reference: UserPreference) for more information about user preferences.

    There are two possible values for FreeInverseSemigroupElementDisplay:

    diff --git a/doc/chap8.html b/doc/chap8.html index 789e5e15f..c16d405a8 100644 --- a/doc/chap8.html +++ b/doc/chap8.html @@ -97,9 +97,9 @@
    8.1-1 DirectProduct

    If these finite semigroups are all partial perm semigroups, all bipartition semigroups, or all PBR semigroups, then DirectProduct returns a semigroup of the same type. Otherwise, DirectProduct returns a transformation semigroup.

    -

    The operation DirectProductOp is included for consistency with the GAP library (see DirectProductOp (Reference: DirectProductOp)). It takes exactly two arguments, namely a non-empty list list of semigroups and one of these semigroups, S, and returns the same result as CallFuncList(DirectProduct, list).

    +

    The operation DirectProductOp is included for consistency with the GAP library (see DirectProductOp (Reference: DirectProductOp)). It takes exactly two arguments, namely a non-empty list list of semigroups and one of these semigroups, S, and returns the same result as CallFuncList(DirectProduct, list).

    -

    If D is the direct product of a collection of semigroups, then an embedding of the ith factor into D can be accessed with the command Embedding(D, i), and a projection of D onto its ith factor can be accessed with the command Projection(D, i); see Embedding (Reference: Embedding) and Projection (Reference: Projection) for more information.

    +

    If D is the direct product of a collection of semigroups, then an embedding of the ith factor into D can be accessed with the command Embedding(D, i), and a projection of D onto its ith factor can be accessed with the command Projection(D, i); see Embedding (Reference: Embedding) and Projection (Reference: Projection) for more information.

    @@ -285,7 +285,7 @@ 
    8.3-1 StrongSemilatticeOfSemigroups
      -
    • D must be a digraph whose DigraphReflexiveTransitiveClosure (Digraphs: DigraphReflexiveTransitiveClosure) is a meet-semilattice. For example, Digraph([2, 3], [4], [4], []]) is valid and produces a semilattice where the meet of 2 and 3 is 1. See IsMeetSemilatticeDigraph (Digraphs: IsMeetSemilatticeDigraph).

      +
    • D must be a digraph whose DigraphReflexiveTransitiveClosure (Digraphs: DigraphReflexiveTransitiveClosure) is a meet-semilattice. For example, Digraph([2, 3], [4], [4], []]) is valid and produces a semilattice where the meet of 2 and 3 is 1. See IsMeetSemilatticeDigraph (Digraphs: IsMeetSemilatticeDigraph).

    • L must contain as many semigroups as there are vertices in D.

      @@ -460,7 +460,7 @@
      8.4-2 McAlisterTripleSemigroup

      The following documentation covers the technical information needed to create McAlister triple semigroups in GAP, the underlying theory can be read in the introduction to Chapter 8.4.

      -

      In this implementation the partial order X of a McAlister triple is represented by a Digraph (Digraphs: Digraph) object X. The digraph represents a partial order in the sense that vertices are the elements of the partial order and the order relation is defined by A B if and only if there is an edge from B to A. The semilattice Y of the McAlister triple should be an induced subdigraph Y of X and the DigraphVertexLabels (Digraphs: DigraphVertexLabels) must correspond to the vertices of X on which Y is induced. That means that the following:

      +

      In this implementation the partial order X of a McAlister triple is represented by a Digraph (Digraphs: Digraph) object X. The digraph represents a partial order in the sense that vertices are the elements of the partial order and the order relation is defined by A B if and only if there is an edge from B to A. The semilattice Y of the McAlister triple should be an induced subdigraph Y of X and the DigraphVertexLabels (Digraphs: DigraphVertexLabels) must correspond to the vertices of X on which Y is induced. That means that the following:

      Y = InducedSubdigraph(X, DigraphVertexLabels(Y))

      @@ -473,10 +473,10 @@
      8.4-2 McAlisterTripleSemigroup
    • G is a finite group.

    • -
    • X is a digraph satisfying IsPartialOrderDigraph (Digraphs: IsPartialOrderDigraph).

      +
    • X is a digraph satisfying IsPartialOrderDigraph (Digraphs: IsPartialOrderDigraph).

    • -
    • Y is a digraph satisfying IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph) which is an induced subdigraph of X satisfying the aforementioned labeling criteria. Furthermore the OutNeighbours (Digraphs: OutNeighbours) of each vertex of X which is in Y must contain only vertices which are in Y.

      +
    • Y is a digraph satisfying IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph) which is an induced subdigraph of X satisfying the aforementioned labeling criteria. Furthermore the OutNeighbours (Digraphs: OutNeighbours) of each vertex of X which is in Y must contain only vertices which are in Y.

    • act is a function which takes as its first argument a vertex of the digraph X, its second argument should be an element of G, and it must return a vertex of X. act must be a right action, meaning that act(A,gh)=act(act(A,g),h) holds for all A in X and g,h G. Furthermore the permutation representation of this action must be a subgroup of the automorphism group of X. That means we require the following to return true:

      @@ -487,7 +487,7 @@
      8.4-2 McAlisterTripleSemigroup
    -

    For user convenience, there are multiple versions of McAlisterTripleSemigroup. When the argument act is omitted it is assumed to be OnPoints (Reference: OnPoints). Additionally, the semilattice argument Y may be replaced by a homogeneous list sub_ver of vertices of X. When sub_ver is provided, McAlisterTripleSemigroup is called with Y equalling InducedSubdigraph(X, sub_ver) with the appropriate labels.

    +

    For user convenience, there are multiple versions of McAlisterTripleSemigroup. When the argument act is omitted it is assumed to be OnPoints (Reference: OnPoints). Additionally, the semilattice argument Y may be replaced by a homogeneous list sub_ver of vertices of X. When sub_ver is provided, McAlisterTripleSemigroup is called with Y equalling InducedSubdigraph(X, sub_ver) with the appropriate labels.

    @@ -524,7 +524,7 @@ 
    8.4-4 McAlisterTripleSemigroupPartialOrder
    ‣ McAlisterTripleSemigroupPartialOrder( S )( attribute )

    Returns: A partial order digraph.

    -

    Returns the IsPartialOrderDigraph (Digraphs: IsPartialOrderDigraph) used to create the McAlister triple semigroup S via McAlisterTripleSemigroup (8.4-2).

    +

    Returns the IsPartialOrderDigraph (Digraphs: IsPartialOrderDigraph) used to create the McAlister triple semigroup S via McAlisterTripleSemigroup (8.4-2).

    @@ -533,7 +533,7 @@
    8.4-5 McAlisterTripleSemigroupSemilattice
    ‣ McAlisterTripleSemigroupSemilattice( S )( attribute )

    Returns: A join-semilattice digraph.

    -

    Returns the IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph) used to create the McAlister triple semigroup S via McAlisterTripleSemigroup (8.4-2).

    +

    Returns the IsJoinSemilatticeDigraph (Digraphs: IsJoinSemilatticeDigraph) used to create the McAlister triple semigroup S via McAlisterTripleSemigroup (8.4-2).

    diff --git a/doc/chap9.html b/doc/chap9.html index 1491bb32e..697c57a1b 100644 --- a/doc/chap9.html +++ b/doc/chap9.html @@ -70,7 +70,7 @@
    9.1-1 SemigroupIdeal

    If obj1, obj2, .. . are (any combination) of elements of the semigroup S or collections of elements of S (including subsemigroups and ideals of S), then SemigroupIdeal returns the 2-sided ideal of the semigroup S generated by the union of obj1, obj2, .. ..

    -

    The Parent (Reference: Parent) of the ideal returned by this function is S.

    +

    The Parent (Reference: Parent) of the ideal returned by this function is S.

    @@ -130,7 +130,7 @@ 
    9.2-1 GeneratorsOfSemigroupIdeal

    If I is an ideal of a semigroup, then I is defined to be the least 2-sided ideal of a semigroup S containing a set J of elements of S. The set J is said to generate I.

    -

    The notion of the generators of an ideal is distinct from the notion of the generators of a semigroup or monoid. In particular, the semigroup generated by the generators of an ideal is not, in general, equal to that ideal. Use GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) to obtain a semigroup generating set for an ideal, but beware that this can be very costly.

    +

    The notion of the generators of an ideal is distinct from the notion of the generators of a semigroup or monoid. In particular, the semigroup generated by the generators of an ideal is not, in general, equal to that ideal. Use GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) to obtain a semigroup generating set for an ideal, but beware that this can be very costly.

    @@ -155,7 +155,7 @@ 
    9.2-2 MinimalIdealGeneratingSet

    This function returns a minimal set of elements of the parent of the semigroup ideal I required to generate I as an ideal.

    -

    The notion of the generators of an ideal is distinct from the notion of the generators of a semigroup or monoid. In particular, the semigroup generated by the generators of an ideal is not, in general, equal to that ideal. Use GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) to obtain a semigroup generating set for an ideal, but beware that this can be very costly.

    +

    The notion of the generators of an ideal is distinct from the notion of the generators of a semigroup or monoid. In particular, the semigroup generated by the generators of an ideal is not, in general, equal to that ideal. Use GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup) to obtain a semigroup generating set for an ideal, but beware that this can be very costly.

    @@ -173,7 +173,7 @@ 
    9.2-3 SupersemigroupOfIdeal
    ‣ SupersemigroupOfIdeal( I )( attribute )

    Returns: An ideal of a semigroup.

    -

    The Parent (Reference: Parent) of an ideal is the semigroup in which the ideal was created, i.e. the first argument of SemigroupIdeal (9.1-1) or SemigroupIdealByGenerators. This function returns the semigroup containing the generators of the semigroup (i.e. GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup)) which are used to compute the ideal.

    +

    The Parent (Reference: Parent) of an ideal is the semigroup in which the ideal was created, i.e. the first argument of SemigroupIdeal (9.1-1) or SemigroupIdealByGenerators. This function returns the semigroup containing the generators of the semigroup (i.e. GeneratorsOfSemigroup (Reference: GeneratorsOfSemigroup)) which are used to compute the ideal.

    For a regular semigroup ideal, SupersemigroupOfIdeal will always be the top most semigroup used to create any of the predecessors of the current ideal. For example, if S is a semigroup, I is a regular ideal of S, and J is an ideal of I, then Parent(J) is I and SupersemigroupOfIdeal(J) is S. This is to avoid computing a generating set for I, in this example, which is expensive and unnecessary since I is regular (in which case the Green's relations of I are just restrictions of the Green's relations on S).

    diff --git a/doc/chapBib.txt b/doc/chapBib.txt index d0fad6ae4..9a3769baf 100644 --- a/doc/chapBib.txt +++ b/doc/chapBib.txt @@ -60,7 +60,7 @@ [How95] Howie, J. M., Fundamentals of semigroup theory, The Clarendon Press Oxford University Press, London Mathematical Society Monographs. New Series, - 12, New York (1995), x+351 pages, (Oxford Science Publications). + 12, New York (1995), x+351 pages, ((Oxford Science Publications)). [HR05] Halverson, T. and Ram, A., Partition algebras, European Journal of Combinatorics, Elsevier, 26, 6 (2005), 869–921.