> < ^ From:

^ Subject:

Dear Gap-Forum,

Some time ago, Jan De Beule asked:

that this code (with the recursion) works perfectly well in gap4b5. So I

only have this question unanswered namely why the function Group() needs

the method for PrintObj and why the function GroupWithGenerators don't.

`Group' (in contrast to `GroupWithGenerators' which is more internal)

performs a test, that the generators are group elements, calling

`IsGeneratorsOfMagmaWithInverses' for the generators. (This is to avoid

problems, if you call for example Group("a","b"), which might be a

``natural'' choice if you don't know the system and work with free groups

but would produce very strange error messages.)

The default method for `IsGeneratorsOfMagmaWithInverses' then calls `Print'

implicitly, as I wrote already in my last mail:

> > The default method for `IsGeneratorsOfMagmaWithInverses' now checks, whether

> > `Inverse' is computable. This alone does not prove for example that the

> > multiplication is associative, and therefore this method prints a warning:

> > #I default `IsGeneratorsOfMagmaWithInverses' method returns `true' for

> > followed by the respective generators. (You can turn this and other warnings

> > off by setting SetInfoLevel(InfoWarning,0); )

Best regards,

Alexander Hulpke

> < [top]