Skip to content

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\).