GAP tells this semigroup is not a group.

169 Views Asked by At

Happy Nowruz 2016 to every one here!

Using the code which James pointed here; I was playing with the following finite semigroup:

gap > f:=FreeSemigroup("a","b");;  
      a:=f.1;;  b:=f.2;; 
      w:=f/[[a^4,a],[b^2,a^3],[b*a,a^2*b],[b^3,b]];;
      T=Range(IsomorphismTransformationSemigroup(w));;

GAP tells us that T has $6$ elements, is regular (Inverse) and has just one idempotent. This means that T is a finite group see here.

But, by calling another codes AsGroup(T) and IsGroup(T) both would end to undesirable results failed and false respectively. Is there anything obvious I cannot see well?

Thanks for the time.

1

There are 1 best solutions below

5
On BEST ANSWER

Alex is correct: IsGroup only returns true if the object it is applied to belongs to the category of groups. This means that certain operations make sense for the object, such as inversion (via Inverse or ^ -1), and One. Since transformations don't always have an inverse, this means that they sometimes don't belong to the category of groups even though they do define a group mathematically. Just to make life more complicated they also do sometimes belong to the category of groups but let's not get into that.

The thing to check is IsGroupAsSemigroup which checks that the object mathematically defines a group, whether it belongs in the category of groups or not. Also you can do IsomorphismPermGroup to give an isomorphism permutation group.

With the Semigroups package loaded you will get:

gap> IsGroupAsSemigroup(T);
true
gap> IsomorphismPermGroup(T);
MappingByFunction( <transformation group of degree 7 with 2 generators>
, Group([ (2,3,4)(5,6,7), (2,7)(3,6)
(4,5) ]), <Attribute "PermutationOfImage">, function( x ) ... end )

Neither IsGroupAsSemigroup nor IsomorphismPermGroup work in GAP without the Semigroups package.

I don't know why AsGroup returns fail, the documentation is a bit vague. This is probably a bug.