Janko group J3
The claims on this page come from https://brauer.maths.qmul.ac.uk/Atlas/v3/spor/J3/.
Claim
\[
\mathrm{J}_3 = \langle a, b \mid a^2 = b^3 = (ab)^{19} = [a, b]^9 = ((ab)^6(ab^{−1})^5)^2 = ((ababab^{−1})^2abab^{−1}ab^{−1}abab^{−1})^2 = abab(abab^{−1})^3abab(abab^{−1})^4ab^{−1}(abab^{−1})^3 = (ababababab^{−1}abab^{−1})^4 = 1 \rangle
\]
with
\[
|\mathrm{J}_3| = 50,232,960.
\]
On this page, we verify that the above claimed presentation of the Janko group J3 defines a group of order \(50,232,960\).
The code
In libsemigroups_pybind11, the following script constructs the presentation for J1 and runs the Todd-Coxeter algorithm.
Code
from libsemigroups_pybind11 import (
Presentation,
ToddCoxeter,
congruence_kind,
presentation,
)
from libsemigroups_pybind11.words import parse_relations
# Setup the presentation object with the empty word and inverses, so it can represent a group
p = Presentation("abAB")
p.contains_empty_word(True)
presentation.add_inverse_rules(p, "ABab")
# Add the defining relations
presentation.add_rule(p, parse_relations("a^2"), "")
presentation.add_rule(p, parse_relations("b^3"), "")
presentation.add_rule(p, parse_relations("(a,b)^9"), "")
presentation.add_rule(p, parse_relations("(ab)^19"), "")
presentation.add_rule(p, parse_relations("((ab)^6(aB)^5)^2"), "")
presentation.add_rule(p, parse_relations("((ababaB)^2abaBaBabaB)^2"), "")
presentation.add_rule(p, parse_relations("abab(abaB)^3abab(abaB)^4aB(abaB)^3"), "")
presentation.add_rule(p, parse_relations("((ab)^3(abaB)^2)^4"), "")
presentation.balance(p, "abAB", "ABab")
presentation.replace_subword(p, "A", "a")
presentation.replace_subword(p, "B", "bb")
p.alphabet("ab")
tc = ToddCoxeter(congruence_kind.twosided, p)
tc.strategy(ToddCoxeter.options.strategy.felsch)
print(f"The size of the group is {tc.number_of_classes()}")
The output
The truncated output of the enumeration is below:
Truncated output from the Python script
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: RUN 0 START (strategy() = felsch)
#0: ToddCoxeter: |A| = 2, |R| = 12, |u| + |v| ∈ [2, 70], ∑(|u| + |v|) = 350
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: FELSCH 0.0 START
#0: ToddCoxeter: FELSCH 0.0.0 | active | killed | defined
#0: ToddCoxeter: nodes | 1 | 0 | 1
#0: ToddCoxeter: | active | missing | % complete
#0: ToddCoxeter: edges | 0 | 2 | 0.0%
#0: ToddCoxeter: time | run 0 = 24µs | all runs = 24µs | elapsed = 100µs
++++++++++++++++++++++++++++++++
#1: ToddCoxeter: FELSCH 0.0.1 | active | killed | defined
#1: ToddCoxeter: nodes | 1,123,584 | 18,085 | 1,141,712
#1: ToddCoxeter: diff 0.0.0 | +1,123,583 | +18,085 | +1,141,711
#1: ToddCoxeter: | active | missing | % complete
#1: ToddCoxeter: edges | 1,891,405 | 355,763 | 84.2%
#1: ToddCoxeter: diff 0.0.0 | +1,891,405 | +355,761 | +84.2%
#1: ToddCoxeter: phase 0.0 = 1.000s | run 0 = 1.000s | all runs = 1.000s | elapsed = 1.000s
++++++++++++++++++++++++++++++++
#1: ToddCoxeter: FELSCH 0.0.2 | active | killed | defined
#1: ToddCoxeter: nodes | 2,248,417 | 39,195 | 2,287,629
#1: ToddCoxeter: diff 0.0.1 | +1,124,833 | +21,110 | +1,145,917
#1: ToddCoxeter: diff 0.0.0 | +2,248,416 | +39,195 | +2,287,628
#1: ToddCoxeter: | active | missing | % complete
#1: ToddCoxeter: edges | 3,785,925 | 710,909 | 84.2%
#1: ToddCoxeter: diff 0.0.1 | +1,894,520 | +355,146 | +0.0%
#1: ToddCoxeter: diff 0.0.0 | +3,785,925 | +710,907 | +84.2%
#1: ToddCoxeter: phase 0.0 = 2.000s | run 0 = 2.000s | all runs = 2.000s | elapsed = 2.000s
++++++++++++++++++++++++++++++++
#1: ToddCoxeter: FELSCH 0.0.3 | active | killed | defined
#1: ToddCoxeter: nodes | 3,346,541 | 61,314 | 3,407,869
#1: ToddCoxeter: diff 0.0.2 | +1,098,124 | +22,119 | +1,120,240
#1: ToddCoxeter: diff 0.0.0 | +3,346,540 | +61,314 | +3,407,868
#1: ToddCoxeter: | active | missing | % complete
#1: ToddCoxeter: edges | 5,635,856 | 1,057,226 | 84.2%
#1: ToddCoxeter: diff 0.0.2 | +1,849,931 | +346,317 | +0.0%
#1: ToddCoxeter: diff 0.0.0 | +5,635,856 | +1,057,224 | +84.2%
#1: ToddCoxeter: phase 0.0 = 3.001s | run 0 = 3.001s | all runs = 3.001s | elapsed = 3.001s
++++++++++++++++++++++++++++++++
[... lines omitted ...]
++++++++++++++++++++++++++++++++
#1: ToddCoxeter: FELSCH 0.2.317 | active | killed | defined
#1: ToddCoxeter: nodes | 50,232,960 | 110,530,444 | 160,763,404
#1: ToddCoxeter: diff 0.2.316 | +0 | +0 | +0
#1: ToddCoxeter: diff 0.2.0 | +0 | +0 | +0
#1: ToddCoxeter: | active | missing | % complete
#1: ToddCoxeter: edges | 100,465,920 | 0 | 100.0%
#1: ToddCoxeter: diff 0.2.316 | +0 | +0 | +0.0%
#1: ToddCoxeter: diff 0.2.0 | +0 | +0 | +0.0%
#1: ToddCoxeter: phase 0.2 = 5min16s | run 0 = 19min52s | all runs = 19min52s | elapsed = 19min52s
++++++++++++++++++++++++++++++++
#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 | 5min15s (26%) | - (0%) | - (0%) | 14min36s (74%)
#0: ToddCoxeter: phase 0.2 = 5min16s | run 0 = 19min52s | all runs = 19min52s | elapsed = 19min52s
The size of the group is 50232960
The computed size of the group matches the size of the group provided on the ATLAS: \(50,232,960\).