Conversion of black-box group algorithm dependent on generating set to nondeterministic black-box group algorithm

Definition
This is a process that:


 * Takes as input a black-box group algorithm $$\mathcal{A}(G,S)$$ for achieving anything given an encoding of a group $$G$$ and a generating set $$S$$ for the group.
 * Outputs a nondeterministic black-box group algorithm for achieving the same goal given an encoding of a group but without being given a generating set.

The process is as follows:


 * 1) The output algorithm first nondeterministically guesses a generating set $$S$$ for $$G$$. This is the nondeterministic part.
 * 2) Then, it uses the black-box group algorithm for finding the subgroup generated by a subset to check that $$S$$ generates $$G$$.
 * 3) Finally, it applies the algorithm $$\mathcal{A}(G,S)$$.

In the language of complexity theory, this is a nondeterministic polynomial-time many-one reduction (is it?).

Related conversions

 * Conversion of black-box group algorithm dependent on generating set to black-box group algorithm is the deterministic version. This conversion takes longer, and the output algorithm need not be a polynomial-time algorithm even if the input algorithm is.

Analysis of running time
The running time of the output algorithm is given by:

Running time of input algorithm + $$O(Ns) \times$$ (time taken for doing the group operations)

where $$N$$ is the order of $$G$$ and $$s$$ is the minimum size of generating set for $$G$$. In the worst case, since minimum size of generating set is bounded by sum of exponents of prime divisors of order, we obtain that $$s$$ is bounded by $$\log_2N$$, so the running time of the output algorithm is bounded by:

Running time of input algorithm + $$O(Ns) \times$$ (time taken for doing the group operations)

Further, since finding the generating set is a one-time process for a given group $$G$$, it is most useful if the algorithm $$\mathcal{A}$$ needs to be run repeatedly (say, for different additional inputs).