Skip to content

The trivial subgroup of the McLaughlin group McL

The presentation on this page is presentation (11.1) from Đoković's paper.

Claim

The presentation

\[ \begin{aligned} \langle a,b,c,d,e,f \mid {} & a^2=b^2=c^2=d^2=e^2=f^2=(be)^2=(bf)^2=(cf)^2=(de)^2 \\ &=(ab)^3=(bc)^3=(ce)^3=(ef)^3 =a(cdfd)^2=a(def)^3=e(abd)^3=(bcde)^5=1\rangle \end{aligned} \]

defines the McLaughlin group, whose order is

\[ |\mathrm{McL}|=898,128,000. \]

The script also adds ten relations listed as consequences in the source. We do not verify that these relations are redundant here.

The code

In libsemigroups_pybind11, the following script constructs the presentation and runs the Todd-Coxeter algorithm. The recorded run took about 4 days, 1 hour, and 8 minutes.

Code
from libsemigroups_pybind11 import (
    Presentation,
    ToddCoxeter,
    congruence_kind,
    presentation,
)


def mcl_dokovic_i() -> Presentation:
    p = Presentation("abcdef")
    p.contains_empty_word(True)
    presentation.add_rule(p, "aa", "")
    presentation.add_rule(p, "bb", "")
    presentation.add_rule(p, "cc", "")
    presentation.add_rule(p, "dd", "")
    presentation.add_rule(p, "ee", "")
    presentation.add_rule(p, "ff", "")

    presentation.add_rule(p, "be" * 2, "")
    presentation.add_rule(p, "bf" * 2, "")
    presentation.add_rule(p, "cf" * 2, "")
    presentation.add_rule(p, "de" * 2, "")

    presentation.add_rule(p, "ab" * 3, "")
    presentation.add_rule(p, "bc" * 3, "")
    presentation.add_rule(p, "ce" * 3, "")
    presentation.add_rule(p, "ef" * 3, "")

    presentation.add_rule(p, "a" + "cdfd" * 2, "")
    presentation.add_rule(p, "a" + "def" * 3, "")
    presentation.add_rule(p, "e" + "abd" * 3, "")
    presentation.add_rule(p, "bcde" * 5, "")

    # Redundant relations
    presentation.add_rule(p, "ac" * 2, "")
    presentation.add_rule(p, "ad" * 2, "")
    presentation.add_rule(p, "ae" * 2, "")
    presentation.add_rule(p, "af" * 2, "")
    presentation.add_rule(p, "bd" * 4, "")
    presentation.add_rule(p, "cd" * 4, "")
    presentation.add_rule(p, "df" * 4, "")
    presentation.add_rule(p, "cde" * 3, "")
    presentation.add_rule(p, "bcbd" * 5, "")
    presentation.add_rule(p, "bcd" * 7, "")
    return p


p = mcl_dokovic_i()

tc = ToddCoxeter(congruence_kind.twosided, p)
tc.strategy(ToddCoxeter.options.strategy.felsch).use_relations_in_extra(True)
tc.run()

print(f"The size of the group is {tc.number_of_classes()}")

The output

The output file is about 373 MB when decompressed, so a truncated version is shown below.

Truncated output from the Python script
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: RUN 0 START (strategy() = felsch)
#0: ToddCoxeter: |A| = 6, |R| = 28, |u| + |v| ∈ [2, 21], ∑(|u| + |v|) = 191
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: FELSCH 0.0 START
#0: ToddCoxeter: FELSCH 0.0.0     |       active |          killed |         defined
#0: ToddCoxeter: nodes            |          102 |              32 |             134
#0: ToddCoxeter:                  |       active |         missing |      % complete
#0: ToddCoxeter: edges            |          165 |             447 |           27.0%
#0: ToddCoxeter: time             | run 0 = 82µs | all runs = 82µs | elapsed = 131µs
[... lines omitted ...]
#1: ToddCoxeter: FELSCH 0.2.3047     |              active |                 killed |               defined
#1: ToddCoxeter: nodes               |         898,128,000 |            882,611,312 |         1,780,739,312
#1: ToddCoxeter: diff 0.2.3046       |                  +0 |                     +0 |                    +0
#1: ToddCoxeter: diff 0.2.0          |                  +0 |                     +0 |                    +0
#1: ToddCoxeter:                     |              active |                missing |            % complete
#1: ToddCoxeter: edges               |       5,388,768,000 |                      0 |                100.0%
#1: ToddCoxeter: diff 0.2.3046       |                  +0 |                     +0 |                 +0.0%
#1: ToddCoxeter: diff 0.2.0          |                  +0 |                     +0 |                 +0.0%
#1: ToddCoxeter: phase 0.2 = 51min6s | run 0 = 4d1h7min49s | all runs = 4d1h7min49s | elapsed = 4d1h7min49s
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: RUN 0 STOP (finished)
#0: ToddCoxeter: run 0                |           lookahead |             lookbehind |                   hlt |           felsch
#0: ToddCoxeter: num. phases          |                   1 |                      0 |                     0 |                1
#0: ToddCoxeter: time spent in phases |       50min52s (1%) |                 - (0%) |                - (0%) | 4d16min43s (99%)
#0: ToddCoxeter: phase 0.2 = 51min6s  | run 0 = 4d1h7min50s | all runs = 4d1h7min50s | elapsed = 4d1h7min50s
The size of the group is 898128000

The computed size is the claimed order of the McLaughlin group: \(898,128,000\).