Problem with RhoOrb for this partial perm semigroup ideal

Issue #122 resolved
wilfwilson
created an issue

Asking for the SchutzenbergerGroup of the L-class {<empty partial perm>} in this semigroup ideal fails:

gap> s := Semigroup([
> PartialPerm( [ 1, 2, 3, 4 ], [ 2, 3, 4, 1 ] ),
> PartialPerm( [ 1, 2, 3, 4 ], [ 2, 1, 3, 4 ] ),
> PartialPerm( [ 1, 3 ], [ 2, 3 ] ) ]);; 
gap> t := PartialPerm( [  ], [  ] );;
gap> I := SemigroupIdeal(s, t);;
gap> l := GreensLClassOfElement(I, t);
{PartialPerm( [  ], [  ] )}
gap> SchutzenbergerGroup(l);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `RhoOrb' on 1 arguments called from
RhoOrb( L 
 ) on line 442 of file /Users/Wilf/Documents/GAP/pkg/semigroups/gap/greens-act\
ing.gi called from
<function "unknown">( <arguments> )

This is probably just an edge case because everything is empty, but as I don't really know what's going on in the code I'm not sure how to fix it.

Comments (5)

  1. James Mitchell repo owner

    I think I've fixed this pushing once test complete. It's not a corner case.

    The problem is:

    • when the LClassType of I is set it doesn't know that it is in IsActingSemigroupWithInverseOp and so LClassType does not contain IsInverseOpClass
    • by the time l is created I knows that it is in IsActingSemigroupWithInverseOp but the type still doesn't contain IsInverseOpClass (it's an attribute, so it can't change). So the inverse-op method is used to create the l class, but the class does not know IsInverseOpClass.
    • when trying to do SchutzenbergerGroup(l) the wrong method is used and it doesn't work.
  2. Log in to comment