Generating set-cum-membership test-based black-box group algorithm for normality testing

From Groupprops

Summary

Item Value
Problem being solved normality testing problem: test whether a given subgroup of a given group is normal
Input format A group with an encoding and specified by means of a finite generating set , a subgroup specified by means of a finite generating set
Membership test for in terms of the encoding
Note that need not be finite groups
NOTE: In fact, we do not require to generate . We only require that generate , or equivalently, that generate .
Output format Yes/No depending on whether is normal in
Optionally, if is not normal, can output and such that one or both of and is not in
Running time Assuming the groups are finite: where is the time taken for group multiplication and inversion and is the time taken to do a membership test. With the log-size assumption is usually negligible, so this is in practice .
Note that the algorithm always takes about this much time if the subgroup is normal, but can terminate much more quickly if the subgroup is not normal, as soon as a counterexample is found.
Memory requirement Basically, same as the memory requirement for the membership testing algorithm, plus memory requirement for generating sets (though the generating sets can be processed online).
Mode of input processing Can be made online on (clarify this)
Parallelizable version The algorithm can be completely parallelized by carrying it out separately for each . With this, the time taken reduces to where is the time for doing multiplication and is the time for doing membership test.
The parallelization works best if it is possible to kill all processes as soon as a counterexample is found.
Pre-processing improvements The following are some candidates:
Reduce the size of , i.e., replace by a smaller generating set.
Reduce the size of , i.e., replace by a smaller generating set.
Whether these improvements are worth it depends on the situation.

Idea and outline

For each and , check that and .

Note that when is finite, it suffices to check that for each and , .