From 56dedad95c591c07c01201876d1ef6db93fb94e5 Mon Sep 17 00:00:00 2001 From: James Mitchell Date: Wed, 25 Mar 2026 09:50:00 +0000 Subject: [PATCH 1/2] Narrow declaration of Factorization --- gap/attributes/factor.gd | 6 +++++- gap/semigroups/semifp.gd | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gap/attributes/factor.gd b/gap/attributes/factor.gd index 91add8019..c609d2698 100644 --- a/gap/attributes/factor.gd +++ b/gap/attributes/factor.gd @@ -13,5 +13,9 @@ DeclareOperation("MinimalFactorization", DeclareOperation("NonTrivialFactorization", [IsSemigroup, IsMultiplicativeElement]); DeclareOperation("Factorization", [IsLambdaOrb, IsPosInt, IsPerm]); -DeclareOperation("Factorization", [IsSemigroup, IsMultiplicativeElement]); +DeclareOperation("Factorization", + [IsSemigroup and CanUseFroidurePin, IsMultiplicativeElement]); +DeclareOperation("Factorization", + [IsActingSemigroup and HasGeneratorsOfSemigroup, + IsMultiplicativeElement]); DeclareOperation("TraceSchreierTreeForward", [IsSemigroupData, IsPosInt]); diff --git a/gap/semigroups/semifp.gd b/gap/semigroups/semifp.gd index bcf6c3fef..acba8be2a 100644 --- a/gap/semigroups/semifp.gd +++ b/gap/semigroups/semifp.gd @@ -26,3 +26,8 @@ DeclareOperation("ReversedOp", [IsElementOfFpMonoid]); DeclareGlobalFunction("FreeMonoidAndAssignGeneratorVars"); DeclareGlobalFunction("FreeSemigroupAndAssignGeneratorVars"); + +DeclareOperation("Factorization", [IsFpSemigroup, IsElementOfFpSemigroup]); +DeclareOperation("Factorization", [IsFpMonoid, IsElementOfFpMonoid]); +DeclareOperation("Factorization", [IsFreeSemigroup, IsWord]); +DeclareOperation("Factorization", [IsFreeMonoid, IsWord]); From c9168f0534e4be1ba5a4117edbf436fb7f3ae9ee Mon Sep 17 00:00:00 2001 From: James Mitchell Date: Wed, 25 Mar 2026 09:52:13 +0000 Subject: [PATCH 2/2] Narrow declaration of WreathProduct --- gap/semigroups/semitrans.gd | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gap/semigroups/semitrans.gd b/gap/semigroups/semitrans.gd index ee12c8502..675cf48e4 100644 --- a/gap/semigroups/semitrans.gd +++ b/gap/semigroups/semitrans.gd @@ -42,8 +42,11 @@ DeclareOperation("EndomorphismMonoid", [IsDigraph, IsHomogeneousList]); DeclareAttribute("DigraphCore", IsDigraph); DeclareOperation("WreathProduct", - [IsMultiplicativeElementCollection, - IsMultiplicativeElementCollection]); + [IsTransformationMonoid, IsPermGroup]); +DeclareOperation("WreathProduct", + [IsPermGroup, IsTransformationSemigroup]); +DeclareOperation("WreathProduct", + [IsTransformationMonoid, IsTransformationSemigroup]); DeclareAttribute("SmallestElementRClass", IsGreensRClass); DeclareAttribute("LargestElementRClass", IsGreensRClass);