How to use toddcox

The toddcox program enumerates the cosets of a subgroup H of a group G. The simplest way to use it is to start it and respond to the prompts. Here is a sample run in which G is the alternating group on four letters, with two generators a,b and relations a3 = b3 = (ab)2 = 1. The subgroup H is the cyclic group generated by  a.  User input is shown in red.

$ ./toddcox

This program uses the Todd-Coxeter procedure to compute the
index in a finitely presented group G of a subgroup H.  You
will be prompted to enter the number of generators of G, the
defining relators of G, and the generators of H.  Use
a,b,... for the generators of G and A,B,... for their
inverses.

Number of generators: 2
Enter the relators for G, one per line; press Enter when finished:
> aaa
> bbb
> abab
>       <--- user pressed Enter
Enter the generators of H, one per line; press Enter when finished:
> a
>       <--- user pressed Enter

The index of H in G is 4.
The coset table had size 4 before compression.

Compressed and standardized coset table:

       a   A   b   B
 1:    1   1   2   3
 2:    3   4   3   1
 3:    4   2   1   2
 4:    2   3   4   4

Here is a second example. The group G is the Mathieu group M12, which is a simple group of order 95040, with three generators a,b,c and relations

   a11 = b2 = c2 = (ab)3 = (ac)3 =(bc)10 = 1,   a2(bc)2 =(bc)2a-1
The subgroup H is the trivial group.
$ ./toddcox

This program uses the Todd-Coxeter procedure to compute the
index in a finitely presented group G of a subgroup H.  You
will be prompted to enter the number of generators of G, the
defining relators of G, and the generators of H.  Use
a,b,... for the generators of G and A,B,... for their
inverses.

Number of generators: 3
Enter the relators for G, one per line; press Enter when finished:
> aaaaaaaaaaa
> bb
> cc
> ababab
> acacac
> bcbcbcbcbcbcbcbcbcbc
> aabcbcaCBCB
>
Enter the generators of H, one per line; press Enter when finished:
>

The index of H in G is 95040.
The coset table had size 573191 before compression.

Enter file name for output, or press Enter to quit:
>

Note that the coset table was not printed on the terminal because it was too large. In this case the user is given the option of specifying a file to which to print the table. In the example above the user simply pressed Enter to quit without printing the table.

Specifying an input file

To save typing, we can put the group-theoretic information in a file, exactly as we would enter it in response to the prompts (including blank lines). We then specify the filename as a command-line argument to the program. For example, suppose we have a file M12.in with the following contents:

3
aaaaaaaaaaa
bb
cc
ababab
acacac
bcbcbcbcbcbcbcbcbcbc
aabcbcaCBCB
       <--- blank line
       <--- blank line

We could then repeat the example above by giving the command toddcox M12.in. The Toddcox distribution contains several such input files in the examples subdirectory, as well as a README file describing the examples.

Notes for advanced users

There are several methods for carrying out coset enumeration. See, for instance, Handbook of Computational Group Theory by Holt et al, which describes three methods (HLT, HLT+lookahead, and Felsch). The toddcox program uses the HLT method by default, but command-line options can make it use the other two methods. For example, one can give the command

toddcox --felsch [FILE]
to use the Felsch method. Here [FILE] is an optional input file, such as M12.in. For HLT+lookahead, the user specifies a positive integer threshold. The program then proceeds as in the HLT method, but if a step in that method causes the coset table to get bigger than threshold, the program uses lookahead to try to reduce the size to at most threshold. If it succeeds, processing continues. Here is an example that uses a threshold of 200,000 on the Mathieu group mentioned above. We assume the presentation is given in a file M12.in as above.

$ ./toddcox --threshold 200000 M12.in

Threshold exceeded; table size is 200006.  Looking ahead...
Table size is now 68727.  Continuing.

Threshold exceeded; table size is 200006.  Looking ahead...
Table size is now 91503.  Continuing.

The index of H in G is 95040.
The coset table had size 121996 before compression.

Enter file name for output, or press Enter to quit:
>

←Back to Toddcox home page.


Toddcox is free software, licensed under the GNU General Public License GPLv3.

Ken Brown
Department of Mathematics
Cornell University
Ithaca, NY 14853
Email: kbrown@cornell.edu