It should be relatively straightforward to make free bands in the Semigroups package acting semigroups. This will involve the following:
- adding the filter
IsActingSemigroup to IsFreeBandSubsemigroup, or at least, making it so that if IsFreeBandSubsemigroup holds then IsActingSemigroup does also
- Definitions of the functions in
main/setup.gd for free bands:
ActionRank = content of a free band element
MinActionRank = full content
LambdaFunc = (ftol, suffix)
LambdaAct = if (ftol_1, suffix_1) is the lambda value, and (prefix, ltof, ftol_2, suffix_2) is the element, then return the LambdaFunc of (reverse suffix_1, ftol_1, ftol_1, suffix) * (prefix, ltof, ftol_2, suffix_2)
RhoAct + RhoFunc are the analogues of LambdaAct and LambdaFunc, given by (prefix, ltof).
LambdaOrbSeed + RhoOrbSeed should be some neutral lambda func.
LambdaRank + RhoRank is the content of the lambda value (output of lambda func).
LambdaInverse + RhoInverse @reiniscirpons please fill this in
LambdaBound + RhoBound should both be 1
LambdaIdentity + RhoIdentity should both be the identity permutation
LambdaPerm always returns the identity permutation.
LambdaConjugator always returns the identity permutation.
IdempotentTester always returns true
IdempotentCreator given the lamba value (prefix, ltof) and rho value (ftol, suffix) returns (prefix, ltof, ftol, suffix)
StablizerAction(x, p) returns x
SchutzenbergerGroupMembership returns true.
- A hash function for elements of free bands.
It should be relatively straightforward to make free bands in the Semigroups package acting semigroups. This will involve the following:
IsActingSemigrouptoIsFreeBandSubsemigroup, or at least, making it so that ifIsFreeBandSubsemigroupholds thenIsActingSemigroupdoes alsomain/setup.gdfor free bands:ActionRank= content of a free band elementMinActionRank= full contentLambdaFunc= (ftol, suffix)LambdaAct= if(ftol_1, suffix_1)is the lambda value, and(prefix, ltof, ftol_2, suffix_2)is the element, then return theLambdaFuncof(reverse suffix_1, ftol_1, ftol_1, suffix) * (prefix, ltof, ftol_2, suffix_2)RhoAct+RhoFuncare the analogues ofLambdaActandLambdaFunc, given by(prefix, ltof).LambdaOrbSeed+RhoOrbSeedshould be some neutral lambda func.LambdaRank+RhoRankis the content of the lambda value (output of lambda func).LambdaInverse+RhoInverse@reiniscirpons please fill this inLambdaBound+RhoBoundshould both be 1LambdaIdentity+RhoIdentityshould both be the identity permutationLambdaPermalways returns the identity permutation.LambdaConjugatoralways returns the identity permutation.IdempotentTesteralways returns trueIdempotentCreatorgiven the lamba value (prefix, ltof) and rho value (ftol, suffix) returns (prefix, ltof, ftol, suffix)StablizerAction(x, p)returnsxSchutzenbergerGroupMembershipreturns true.