Narrow declarations of Factorization and WreathProduct#1156
Conversation
| DeclareOperation("NonTrivialFactorization", | ||
| [IsSemigroup, IsMultiplicativeElement]); | ||
| DeclareOperation("Factorization", [IsLambdaOrb, IsPosInt, IsPerm]); | ||
| DeclareOperation("Factorization", [IsSemigroup, IsMultiplicativeElement]); |
There was a problem hiding this comment.
Alternatively we could also widen the declaration in GAP itself, which currently is
DeclareOperation( "Factorization",
[ IsGroup, IsMultiplicativeElementWithInverse ] );The drawback of that would be that if GAP did that, loading any older Semigroups versions would produce a warning
#I equal requirements in multiple declarations for operation `Factorization'
and the new semigroups would either only work on the new GAP; or would have to have code to the effect of "if GAp does not declare this operation for IsSemigroup then declare it for semigroups".
So I am not sure it would be worth that hassle.
There was a problem hiding this comment.
Agreed I'll just merge this for now (when updated) and then we can think about what to do later.
|
For DeclareAttribute("StructureDescription", IsGroupAsSemigroup);and then change InstallMethod(StructureDescription, "for a group as semigroup",to InstallOtherMethod(StructureDescription, "for a group as semigroup", |
Aha, right, I forgot about |
bd9707d
into
semigroups:stable-5.6
This PR partially resolves:
gap-system/gap#6282
The part not resolved is that for
StructureDescription, it seems thatIsRcwaGroupandIsRcwaGroupOverZimplyIsGroupAsSemigroup(which make sense and is fine), but then the methods installed forStructureDescriptionforIsGroupAsSemigroupand something else (maybeIsGroup) collide. I'm not sure how to resolve this. Any suggestions @fingolfin ?