The Mathieu group as a subgroup of
DefinitionMathieuM23_GroupLet be the symmetric group on points, acting on the left. Following §3 of the source, define the permutations
The Mathieu group is . For , the -conjugacy class of is .
These are the basic objects of every statement in the mission: the group , its explicit generators, and the third element of the triple used to build the -cover.
Formalization Note The points are encoded as Fin 23 via . The helper labelPerm takes the cycles in the paper's labels and performs this shift. Permutations compose as functions, matching the paper's left action.
import Mathlib
/-!
# The Mathieu group `M₂₃` as a permutation group (Huang–Jackson–Lee–Poonen–Pries–Zhang, §3)
Points `1, …, 23` of the paper are encoded as elements of `Fin 23` by `k ↦ k - 1`;
`MathieuM23.labelPerm` performs this shift, so the cycles below are copied verbatim from the paper.
Permutations act on the left: `(σ * τ) x = σ (τ x)`, matching the paper's footnote 3.
-/
namespace MathieuM23
/-- The permutation of `Fin 23` given by a list of disjoint cycles written with the paper's
labels `1, …, 23` (label `k` is the element `k - 1 : Fin 23`). -/
def labelPerm (cycles : List (List ℕ)) : Equiv.Perm (Fin 23) :=
(cycles.map fun c => (c.map fun k => (Fin.ofNat 23 (k - 1))).formPerm).prod
/-- `g₁ = (1,11)(2,23)(3,8)(4,16)(5,21)(7,20)(15,19)(18,22)`. -/
def g₁ : Equiv.Perm (Fin 23) :=
labelPerm [[1, 11], [2, 23], [3, 8], [4, 16], [5, 21], [7, 20], [15, 19], [18, 22]]
/-- `g₂ = (1,2,11,10,16,9,6,3,23,19,20,14,21,17,4,8,22,5,18,15,13,7,12)`. -/
def g₂ : Equiv.Perm (Fin 23) :=
labelPerm [[1, 2, 11, 10, 16, 9, 6, 3, 23, 19, 20, 14, 21, 17, 4, 8, 22, 5, 18, 15, 13, 7, 12]]
/-- `g₃ = (1,2,3,4,10,11,12,7,19,18,8,6,9,16,17,21,22,5,14,20,13,15,23)`. -/
def g₃ : Equiv.Perm (Fin 23) :=
labelPerm [[1, 2, 3, 4, 10, 11, 12, 7, 19, 18, 8, 6, 9, 16, 17, 21, 22, 5, 14, 20, 13, 15, 23]]
/-- The Mathieu group `M₂₃`, the subgroup of `S₂₃` generated by `g₁` and `g₂`. -/
def M23 : Subgroup (Equiv.Perm (Fin 23)) :=
Subgroup.closure {g₁, g₂}
/-- The conjugacy class in `M₂₃` of a permutation `g`: all `k g k⁻¹` with `k ∈ M₂₃`. -/
def classIn (g : Equiv.Perm (Fin 23)) : Set (Equiv.Perm (Fin 23)) :=
{h | ∃ k ∈ M23, h = k * g * k⁻¹}
end MathieuM23
Read-back
What the Lean code literally says, in plain math · Aristotle (Harmonic) — same agent as the drafter; non-blind
Disclosure — NON-BLIND read-back. This read-back was written by the same agent that drafted the Lean statement (Aristotle, by Harmonic), with full knowledge of the source paper and of the intended meaning. It is not independent, blind testimony and must not be mistaken for an independent audit; a reviewer should compare it against the Lean code directly.
This file introduces four objects inside the namespace MathieuM23.
- Label conversion. For a list of lists of natural numbers , the permutation of is the product (composition of functions, rightmost applied first). Here is the cyclic permutation of the list obtained from by replacing each by . That permutation sends the -th entry to the -st, the last entry to the first, and fixes everything else. If a list has repeated entries, or entries or , the result is still some permutation, but not a cycle in the usual sense. All lists used below have distinct entries in and are pairwise disjoint.
- The three permutations of are obtained this way from the cycle lists , and respectively. So in labels , is a product of disjoint transpositions and , are the displayed -cycles.
- The subgroup is the subgroup of the full permutation group of generated by the two elements and alone. is not a generator. Nothing in the definition asserts its order, simplicity, or that .
- Conjugacy class in . For any permutation (not required to lie in ), , with the product read as composition.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.