From d6989b40032da755c9cf250c1a50a893e8b9b217 Mon Sep 17 00:00:00 2001 From: joe-dw Date: Tue, 16 Jun 2026 10:53:18 +0100 Subject: [PATCH 1/2] Set IsPositionalObjectRep on graph inverse semigroup elements, added attribute EdgesOfGraphInverseSemigroup and added IsWholeFamily test to graph inverse subsemigroups --- gap/semigroups/semigraph.gd | 5 ++++- gap/semigroups/semigraph.gi | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gap/semigroups/semigraph.gd b/gap/semigroups/semigraph.gd index 2cb8b5ab6..8ae9bcb03 100644 --- a/gap/semigroups/semigraph.gd +++ b/gap/semigroups/semigraph.gd @@ -10,7 +10,8 @@ DeclareOperation("GraphInverseSemigroup", [IsDigraph]); -DeclareCategory("IsGraphInverseSemigroupElement", IsAssociativeElement); +DeclareCategory("IsGraphInverseSemigroupElement", + IsAssociativeElement and IsPositionalObjectRep); DeclareCategoryCollections("IsGraphInverseSemigroupElement"); DeclareSynonymAttr("IsGraphInverseSubsemigroup", @@ -38,3 +39,5 @@ DeclareOperation("IndexOfVertexOfGraphInverseSemigroup", [IsGraphInverseSemigroupElement]); DeclareAttribute("VerticesOfGraphInverseSemigroup", IsGraphInverseSemigroup); +DeclareAttribute("EdgesOfGraphInverseSemigroup", + IsGraphInverseSemigroup); diff --git a/gap/semigroups/semigraph.gi b/gap/semigroups/semigraph.gi index 1f7d0c3b5..5399efbd1 100644 --- a/gap/semigroups/semigraph.gi +++ b/gap/semigroups/semigraph.gi @@ -282,6 +282,13 @@ function(S) return result; end); +InstallMethod(EdgesOfGraphInverseSemigroup, +"for a graph inverse semigroup", +[IsGraphInverseSemigroup], +function(S) + return Difference(GeneratorsOfInverseSemigroup(S), VerticesOfGraphInverseSemigroup(S)); +end); + InstallMethod(IndexOfVertexOfGraphInverseSemigroup, "for a graph inverse semigroup element", [IsGraphInverseSemigroupElement], @@ -291,3 +298,10 @@ function(x) fi; return x![1][1] - DigraphNrEdges(x![2]); end); + +InstallMethod(IsWholeFamily, +"for a subsemigroup of a graph inverse semigroup", +[IsGraphInverseSubsemigroup], +function(S) + return Size(ElementsFamily(FamilyObj(S))!.semigroup) = Size(S); +end); From c73f9e5e5e077e1bcc4d01b4cbde8089465ca281 Mon Sep 17 00:00:00 2001 From: joe-dw Date: Tue, 16 Jun 2026 11:52:03 +0100 Subject: [PATCH 2/2] lint --- gap/semigroups/semigraph.gd | 2 +- gap/semigroups/semigraph.gi | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/gap/semigroups/semigraph.gd b/gap/semigroups/semigraph.gd index 8ae9bcb03..69de98a70 100644 --- a/gap/semigroups/semigraph.gd +++ b/gap/semigroups/semigraph.gd @@ -10,7 +10,7 @@ DeclareOperation("GraphInverseSemigroup", [IsDigraph]); -DeclareCategory("IsGraphInverseSemigroupElement", +DeclareCategory("IsGraphInverseSemigroupElement", IsAssociativeElement and IsPositionalObjectRep); DeclareCategoryCollections("IsGraphInverseSemigroupElement"); diff --git a/gap/semigroups/semigraph.gi b/gap/semigroups/semigraph.gi index 5399efbd1..69e2b0f79 100644 --- a/gap/semigroups/semigraph.gi +++ b/gap/semigroups/semigraph.gi @@ -285,9 +285,8 @@ end); InstallMethod(EdgesOfGraphInverseSemigroup, "for a graph inverse semigroup", [IsGraphInverseSemigroup], -function(S) - return Difference(GeneratorsOfInverseSemigroup(S), VerticesOfGraphInverseSemigroup(S)); -end); +S -> Difference(GeneratorsOfInverseSemigroup(S), +VerticesOfGraphInverseSemigroup(S))); InstallMethod(IndexOfVertexOfGraphInverseSemigroup, "for a graph inverse semigroup element", @@ -302,6 +301,4 @@ end); InstallMethod(IsWholeFamily, "for a subsemigroup of a graph inverse semigroup", [IsGraphInverseSubsemigroup], -function(S) - return Size(ElementsFamily(FamilyObj(S))!.semigroup) = Size(S); -end); +S -> Size(ElementsFamily(FamilyObj(S))!.semigroup) = Size(S));