A subgroup of claimed shape \((3^2:4 \times A_6).2\) in O'N
The presentation and subgroup generators on this page come from Section 4 (Remarks) of Soicher's paper.
Claim
The source identifies
\[
H = \langle a,b,c,e,f,g \rangle
\cong (3^2:4 \times A_6).2
\]
and hence claims that
\[
[\mathrm{O'N}:H] = 17,778,376.
\]
The computation terminates, but gives index \(35,556,752\), exactly twice the claimed index. We therefore do not verify either the claimed index or the claimed isomorphism type.
The enumeration
The recorded run took about 55 minutes 56 seconds. This time-lapse shows the number of active nodes and the proportion of defined edges during the run.
The code
Code
from itertools import combinations
from libsemigroups_pybind11 import (
Presentation,
ToddCoxeter,
congruence_kind,
presentation,
)
def inverse_word(word: str) -> str:
"""Return the inverse of a word in a, ..., f, g, G."""
inverse = {
"a": "a",
"b": "b",
"c": "c",
"d": "d",
"e": "e",
"f": "f",
"g": "G",
"G": "g",
}
return "".join(inverse[letter] for letter in reversed(word))
def conjugate(word: str, by: str) -> str:
"""Return word^by = by^-1 word by in ATLAS notation."""
return inverse_word(by) + word + by
def onan_presentation() -> Presentation:
"""Return the seven-generator presentation of the O'Nan group."""
p = Presentation("abcdefgG")
p.contains_empty_word(True)
presentation.add_inverse_rules(p, "abcdefGg")
# Coxeter path a3b3c8d3e3f.
edge_orders = {
"ab": 3,
"bc": 3,
"cd": 8,
"de": 3,
"ef": 3,
}
for x, y in combinations("abcdef", 2):
xy = x + y
presentation.add_rule(p, xy * edge_orders.get(xy, 2), "")
# af = g^2 = (cd)^4.
presentation.add_rule(p, "af", "gg")
presentation.add_rule(p, "gg", "cd" * 4)
# 1 = c c^(dgdg) = d d^(cgcg).
presentation.add_rule(p, "c" + conjugate("c", "dgdg"), "")
presentation.add_rule(p, "d" + conjugate("d", "cgcg"), "")
# 1 = (bcdg)^5 = g b g^c g^b g^c = g e g^d g^e g^d.
presentation.add_rule(p, "bcdg" * 5, "")
presentation.add_rule(
p,
"g" + "b" + conjugate("g", "c") + conjugate("g", "b")
+ conjugate("g", "c"),
"",
)
presentation.add_rule(
p,
"g" + "e" + conjugate("g", "d") + conjugate("g", "e")
+ conjugate("g", "d"),
"",
)
return p
p = onan_presentation()
tc = ToddCoxeter(congruence_kind.onesided, p)
tc.strategy(ToddCoxeter.options.strategy.felsch).use_relations_in_extra(True)
for word in "abcefg":
tc.add_generating_pair(word, "")
tc.run()
actual_index = tc.number_of_classes()
expected_index = 17778376
print(f"The index of the subgroup is {actual_index}")
if actual_index != expected_index:
raise RuntimeError(f"expected index {expected_index}, got {actual_index}")
The output
Truncated output from the Python script
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: RUN 0 START (strategy() = felsch)
#0: ToddCoxeter: |A| = 8, |R| = 30, |u| + |v| ∈ [2, 20], ∑(|u| + |v|) = 172
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: FELSCH 0.0 START
#0: ToddCoxeter: FELSCH 0.0.0 | active | killed | defined
#0: ToddCoxeter: nodes | 20 | 38 | 58
#0: ToddCoxeter: | active | missing | % complete
#0: ToddCoxeter: edges | 55 | 105 | 34.4%
[... lines omitted ...]
++++++++++++++++++++++++++++++++
#0: ToddCoxeter: RUN 0 STOP (finished)
#0: ToddCoxeter: phase 0.2 = 1min50s | run 0 = 55min56s | all runs = 55min56s | elapsed = 55min56s
The index of the subgroup is 35556752
RuntimeError: expected index 17778376, got 35556752
The computed index is \(35,556,752\), not the claimed index \(17,778,376\).