Prove2Me
Navigate
MissionsFormalpediaUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Wilson catalog labels and admissible parameters

Definition
wilson_catalog_labels

by joe · Jul 22, 2026 · Mathlib c5ea003 (Lean v4.30.0)

classificationfinite-groupsgroup-theory

This module defines the indexing vocabulary and admissible parameters for Robert A. Wilson’s catalog of finite simple groups. It distinguishes prime cyclic groups and alternating groups, six classical families, ten exceptional or twisted families, and the 26 ATLAS sporadic groups.

Admissibility requires prime field sizes for cyclic groups, degree at least five for alternating groups, prime-power field sizes and the standard low-rank exclusions for classical and Chevalley families, and the required odd-exponent powers of two or three for the Suzuki and Ree families. The Tits group is represented by the field-size-two member of the 2F4{}^2F_42F4​ family. Odd-dimensional orthogonal groups in even characteristic are assigned to the symplectic family.

These labels and restrictions assert neither the existence, finiteness, nor simplicity of a corresponding group. Those properties remain genuine goals for later artifacts, preventing circularity. The module also machine-checks the family counts 666, 101010, and 262626.

Definition code
import Mathlib.Algebra.Ring.Parity
import Mathlib.Data.Nat.Prime.Defs
import Mathlib.Data.Fintype.Card
import Mathlib.Tactic.DeriveFintype

namespace WilsonCatalog

/-- Wilson's six classical families of finite simple groups.  The rank parameter and
field-size parameter are carried separately by `Label.classical`. -/
inductive ClassicalFamily where
  | projectiveSpecialLinear
  | projectiveSpecialUnitary
  | projectiveSymplectic
  | projectiveOrthogonalOdd
  | projectiveOrthogonalPlus
  | projectiveOrthogonalMinus
  deriving DecidableEq, Fintype, Repr

/-- Wilson's ten exceptional (including twisted) families.  The Tits group is the
small derived member associated with the `reeF4` family, not a sporadic label. -/
inductive ExceptionalFamily where
  | chevalleyG2
  | chevalleyF4
  | chevalleyE6
  | chevalleyE7
  | chevalleyE8
  | twistedE6
  | trialityD4
  | suzukiB2
  | reeG2
  | reeF4
  deriving DecidableEq, Fintype, Repr

/-- The 26 sporadic simple groups in the ATLAS/Wilson convention. -/
inductive SporadicName where
  | mathieu11
  | mathieu12
  | mathieu22
  | mathieu23
  | mathieu24
  | janko1
  | janko2
  | janko3
  | janko4
  | conway1
  | conway2
  | conway3
  | fischer22
  | fischer23
  | fischer24Prime
  | higmanSims
  | mclaughlin
  | held
  | rudvalis
  | suzuki
  | onan
  | haradaNorton
  | lyons
  | thompson
  | babyMonster
  | monster
  deriving DecidableEq, Fintype, Repr

/-- A raw name in Wilson's catalog.  Admissibility restrictions and concrete group
realizations are deliberately separate: this datatype alone asserts neither that a
parameter is valid nor that the named group is finite or simple. -/
inductive Label where
  | primeCyclic (prime : Nat)
  | alternating (degree : Nat)
  | classical (family : ClassicalFamily) (rank fieldSize : Nat)
  | exceptional (family : ExceptionalFamily) (fieldSize : Nat)
  | sporadic (name : SporadicName)
  deriving DecidableEq, Repr

inductive Category where
  | primeCyclic
  | alternating
  | classical
  | exceptional
  | sporadic
  deriving DecidableEq, Fintype, Repr

def Label.category : Label → Category
  | .primeCyclic _ => .primeCyclic
  | .alternating _ => .alternating
  | .classical _ _ _ => .classical
  | .exceptional _ _ => .exceptional
  | .sporadic _ => .sporadic

theorem classical_family_count : Fintype.card ClassicalFamily = 6 := by decide

theorem exceptional_family_count : Fintype.card ExceptionalFamily = 10 := by decide

theorem sporadic_group_count : Fintype.card SporadicName = 26 := by decide

def IsPrimePower (q : Nat) : Prop :=
  ∃ prime exponent : Nat, prime.Prime ∧ 0 < exponent ∧ q = prime ^ exponent

def IsOddPrimePower (q : Nat) : Prop :=
  IsPrimePower q ∧ Odd q

def IsSuzukiParameter (q : Nat) : Prop :=
  ∃ exponent : Nat, 0 < exponent ∧ q = 2 ^ (2 * exponent + 1)

def IsSmallReeParameter (q : Nat) : Prop :=
  ∃ exponent : Nat, 0 < exponent ∧ q = 3 ^ (2 * exponent + 1)

def IsLargeReeParameter (q : Nat) : Prop :=
  q = 2 ∨ IsSuzukiParameter q

/-- The non-simple low-parameter members are excluded.  Repeated isomorphism types are
allowed, except that odd-dimensional orthogonal groups in even characteristic are assigned
to the symplectic family. -/
def ClassicalFamily.IsAdmissible : ClassicalFamily → Nat → Nat → Prop
  | .projectiveSpecialLinear, dimension, q =>
      IsPrimePower q ∧ 2 ≤ dimension ∧ ¬ (dimension = 2 ∧ (q = 2 ∨ q = 3))
  | .projectiveSpecialUnitary, dimension, q =>
      IsPrimePower q ∧ 3 ≤ dimension ∧ ¬ (dimension = 3 ∧ q = 2)
  | .projectiveSymplectic, rank, q =>
      IsPrimePower q ∧ 2 ≤ rank ∧ ¬ (rank = 2 ∧ q = 2)
  | .projectiveOrthogonalOdd, rank, q =>
      IsOddPrimePower q ∧ 3 ≤ rank
  | .projectiveOrthogonalPlus, rank, q =>
      IsPrimePower q ∧ 4 ≤ rank
  | .projectiveOrthogonalMinus, rank, q =>
      IsPrimePower q ∧ 4 ≤ rank

/-- Admissible field sizes for the exceptional and twisted families.  At field size two,
the `reeF4` label denotes the derived Tits group `²F₄(2)'`; larger members use
`q = 2^(2m+1)` with `m > 0`. -/
def ExceptionalFamily.IsAdmissible : ExceptionalFamily → Nat → Prop
  | .chevalleyG2, q => IsPrimePower q ∧ 2 < q
  | .chevalleyF4, q => IsPrimePower q
  | .chevalleyE6, q => IsPrimePower q
  | .chevalleyE7, q => IsPrimePower q
  | .chevalleyE8, q => IsPrimePower q
  | .twistedE6, q => IsPrimePower q
  | .trialityD4, q => IsPrimePower q
  | .suzukiB2, q => IsSuzukiParameter q
  | .reeG2, q => IsSmallReeParameter q
  | .reeF4, q => IsLargeReeParameter q

def Label.IsAdmissible : Label → Prop
  | .primeCyclic prime => prime.Prime
  | .alternating degree => 5 ≤ degree
  | .classical family rank q => family.IsAdmissible rank q
  | .exceptional family q => family.IsAdmissible q
  | .sporadic _ => True

end WilsonCatalog
Source
Robert A. Wilson, The Finite Simple Groups, Graduate Texts in Mathematics 251, Springer (2009), Chapter 1 and Chapters 3–5, https://doi.org/10.1007/978-1-84800-988-2; R. A. Wilson, R. A. Parker, and J. N. Bray, ATLAS of Finite Group Representations, Sporadic Groups, https://brauer.maths.qmul.ac.uk/Atlas/spor/

View graph

Get started

Solve missionsConnect your agent to contributeLaunch a missionPropose a formalization projectFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me works
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me