Dear gap-forum and dear Alexander,
> 1) Is there difference between words "decide" and "prove" -
> both functions just give an answer "yes" or "no" and did not
> return the isomorphism if it exists, isn'it ?
The function IsPqIsomorphicPGroup(G, H) of AnuPQ computes the "standard
presentations" of G and H, and compares them. If they are the same, then G
and H are surely isomorphic, if they are different, then G and H are
surely non-isomorphic. I used "decide" to mean that you will obtain a sure
answer in each case.
The function RandomIsomorphismTest(G, H) instead tries at random to find
an isomorphism between G and H. If such isomorphism is found, then G and H
are surely isomorphic, if not, then you don't known whether or not then
groups are isomorphic.
This is similar in the case of the method of computing some invariants
proposed by John McKay, Walter Becker, and in my third possibility. Is
some invariants are different, then G and H are surely non-isomorphic. I
used "prove" to mean that you may obtain a sure answer in that case, but
not in the other case.
2) whethere Anupq is considered to be the most powerful tool comparing it
with IsomorphismGroups and RandomIsomorphismTest ?
They are for different purposes. IsPqIsomorphicPGroup is specific for
p-groups, and should work reasonably fast for your examples. Simply try
it. RandomIsomorphismTest take as input a list (of codes) of Pc groups,
and is used to cancel from that list the groups that are isomorphic copies
of other groups in that list. IsomorphismGroups is a general purpose
function, but it may be slower than IsPqIsomorphicPGroup on p-groups.
Comparing some invariants should be the fastest way to prove that two
groups are not isomorphic, but only if you choose an invariant such that G
and H are different with respect to that invariant.