Skip to content

Verifying presentations for sporadic simple groups

In this example, we will verify the validity of the presentations of the sporadic groups as given in this ATLAS we will use the Todd-Coxeter algorithm to check that the size of group defined by the presentations is equal to the claimed size. Where the claimed size of the group is very large, we will instead calculate the index of some low-index subgroups. This is a work-in-progress, so some of the pages may contain incomplete information. When this is the case, the pages will be clearly marked as such.

Disclaimer

The purpose of the following pages is not to prove the validity of the presentations of the sporadic groups; there are better approaches than those taken here. Instead, the purpose of these pages is to highlight some of the ways you might use libsemigroups_pybind11 and its implementation of the Todd-Coxeter algorithm to perform difficult enumerations.

libsemigroups_pybind11 version

All examples provided on the subsequent subpages were run using libsemigroups_pybind11 version 1.4.4 on a either laptop with a 13th Gen Intel(R) Core(TM) i7-13700H processor and 64 GB RAM or a 2024 MacBook Pro M4 with 48GB of RAM.

Defining groups with monoid presentations

The presentations provided for the groups in the ATLAS are group presentations. This means that it is assumed that there is multiplicative identity \(1\), and that each generator \(a\) has an inverse \(a^{-1}\) such that \(aa^{-1} = a^{-1}a = 1\). In libsemigroups_pybind11, however, presentations are either semigroup presentations or monoid presentations, depending whether the relations of the presentation are allowed to contain the empty word \(\varepsilon\). Therefore, we will need to add extra generators and relations to a monoid presentation to define a group.

Suppose that a group \(G\) is defined by the group presentation \(\langle{A \mid R }\rangle_{\text{grp}}\). Then \(G\) can also be defined by the monoid presentation \(\langle{A \sqcup A^{-1} \mid R \cup R' }\rangle_{\text{mon}}\) where \(A^{-1}\) is a set disjoint from \(A\) containing letters that will be treated as inverses for the letters in \(A\), and \(R'\) is the set of relations of the form \(aa^{-1} = \varepsilon\) and \(a^{-1}a = \varepsilon\).

In the subsequent subpages, we will use lowercase letters for the generators that are given in the presentations in the ATLAS, and their uppercase counterparts to represent their inverses. Therefore, many of our examples will begin in a similar way to:

from libsemigroups_pybind11 import presentation, Presentation
p = presentation("abAB")
p.contains_empty_word(True)
presentation.add_inverse_rules(p, "ABab")

The algorithms in libsemigroups_pybind11 were written for semigroups and monoids. This means that there are no group-specific optimisations.

The following tables summarise the results of this project. Click on a group to see more information.

Mathieu groups
M11 M12 M22 M23 M24
Leech lattice groups
HS J2 Co1 Co2 Co3 McL Suz
Monster sections
He HN Th Fi22 Fi23 Fi24' B M
Pariahs
J1 O'N J3 Ru J4 Ly
Miscellaneous
T
Legend
The presentation defines a group of the correct size.
The source of the presentation is not the ATLAS and the presentation defines a group of the correct size.
The presentation has at least 1 subgroup of the correct index.
The source of the presentation is not the ATLAS and the presentation has at least 1 subgroup of the correct index.
The presentation has at least 1 subgroup of the correct index, and at least 1 subgroup whose index could not be verified.
Work in progress.
No presentation in ATLAS.