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.
Alex is correct:
IsGrouponly returnstrueif 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 (viaInverseor^ -1), andOne. 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
IsGroupAsSemigroupwhich checks that the object mathematically defines a group, whether it belongs in the category of groups or not. Also you can doIsomorphismPermGroupto give an isomorphism permutation group.With the Semigroups package loaded you will get:
Neither
IsGroupAsSemigroupnorIsomorphismPermGroupwork in GAP without the Semigroups package.I don't know why
AsGroupreturnsfail, the documentation is a bit vague. This is probably a bug.