Let B be a generating set for G and T a Schreier tree for B with root x. If a Gx, then a is a vertex of T. Hence there is a unique path from x to a in the tree. If the labels of the edges in this path are bi1, ..., bik, respectively, then the element

ta := bik ··· bi1

of G satisfies ta(x) = a. We call ta a Schreier element.

Theorem

The stabilizer Gx is generated by

{tb(a)-1bta | a element of T,   b element of B}.


The above theorem together with the algorithm to determine a Schreier tree yields a way to completely describe the action of G on X (see Step 4 below). In particular, we can determine the order of G by applying the order theorem (Step 3).

Order algorithm

  1. Set X = {1, ..., n} and Order = 1.
  2. Fix a point x X and determine the length l of the G-orbit of x.
  3. Replace Order by Order · l.
  4. Determine a generating set B' for Gx.
  5. If B' generates only the trivial group, then return Order, otherwise replace X by X\{x}, B by B', G by Gx and go to Step 2.