Leonard Soicher writes in his e-mail message of 1994/07/28
Many thanks for the quick reply, Martin.
Will the following work if I want a provably correct result
(when mylimit is a proven upper bound on the size of G)?H:=ShallowCopy(G); StabChain(H,rec(random:=800; # or whatever limit:=mylimit); if Size(H) = mylimit then G := H; else StabChain(G); fi;
Assuming that either 'G' has no stabilizer chain at the beginning
or a provable correct one. If 'G' has an incorrect stabilizer chain
at the beginning all the calls to 'StabChain' wont change it. So in
this case the result will also be incorrect. Otherwise this is fine.
Does StabChain ever change an existing component of the group record;
that is, should I make a Copy instead of a ShallowCopy in the first
'StabChain' only touches 'G.stabChain', 'G.orbit', 'G.stabilizer', and
'G.transversal'. If 'G' has no stabilizer chain initially, then using
'ShallowCopy' is save. If 'G' has a stabilizer chain, the best is to use
'ShallowCopy' and then to 'Unbind' the above four entries. There is even
a function for this, namely 'ShallowCopyNoSC', but this function is not
likely to survive for long.
-- .- .-. - .. -. .-.. --- ...- . ... .- -. -. .. -.- .- Martin Sch"onert, Martin.Schoenert@Math.RWTH-Aachen.DE, +49 241 804551 Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, 52056 Aachen, Germany