Martin Schoenert replied to my email message of 1996/03/22:
Unfortunately it is impossible to recompute the conjugands afterwards.
This is because during the lattice computation the conjugands are
computed as the right transversal of the normalizer of the
representative. But 'RightTransversal' is not guaranteed to return the
same transversal if you call it after the lattice computation.
This surprises me a bit. I thought I could reliably recompute the
SAME right transversal, and so far didn't have any problems with that
assumption. Under what conditions may it happen that subsequent
invocations of RightTransversal yield different results? If different
results can indeed occur (more precisely: different orderings in the
list of cosets), I do not see how GraphicLattice (from XGAP) could
reliably produce the correct result. In the function
GraphicLatticeOps.MakeMaximalSubgroups the right transversals of
subgroup conjugacy class representatives are computed two or more times,
and it seems that it is assumed that always the same result is obtained.
But perhaps I have overlooked some invariance in the topology of the
graph produced by GraphicLattice.
However, it is simple to modify 'MaximalSubgroups' and
'MinimalSupergroups' so that they not only give a subgroup in the form
'[<n>,<m>]' (which means <n>-th conjugacy class, <m>-th subgroup of that
class), but '[<n>,<m>,<c>]' where <c> is a conjugating element.
If you are interested, write me and I will send you the code.
I think it would be a good solution if MaximalSubgroups and
MinimalSupergroups would accept a flag which makes them return
the results in the way you suggest, of even make this the default
behaviour (provided that memory requirements permit, and that nothing
breaks if triples are returned instead of pairs). This would allow
to avoid all these problems.
In any case, I would appreciate receiving your code.