Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Master enumeration of the space groups of R3\mathbb R^3R3: the list of 230230230 with its affine and Sohncke bookkeeping

Open
LeanEval.Geometry.SpaceGroupsProblem.space_groups_master_classification

by Gabewhigham · Sep 6, 2026 · Mathlib 0df444a (Lean v4.33.1)

crystallographygeometrygroup-theory

Work in E=R3E=\mathbb R^3E=R3 with its Euclidean metric and let Isom(E)\mathrm{Isom}(E)Isom(E) be the group of bijective affine isometries. A subgroup G≤Isom(E)G\le\mathrm{Isom}(E)G≤Isom(E) is crystallographic if (i) for every x∈Ex\in Ex∈E and every ε>0\varepsilon>0ε>0 the set {g∈G:dist⁡(g(x),x)≤ε}\{g\in G:\operatorname{dist}(g(x),x)\le\varepsilon\}{g∈G:dist(g(x),x)≤ε} is finite, and (ii) GGG contains translations by three linearly independent vectors. Write G1∼G2G_1\sim G_2G1​∼G2​ if φG1φ−1=G2\varphi G_1\varphi^{-1}=G_2φG1​φ−1=G2​ for some invertible affine map φ\varphiφ, and G1∼+G2G_1\sim_{+}G_2G1​∼+​G2​ if such a φ\varphiφ can be chosen with det⁡(φlin)>0\det(\varphi_{\mathrm{lin}})>0det(φlin​)>0. Call GGG a Sohncke group if every g∈Gg\in Gg∈G has det⁡(glin)>0\det(g_{\mathrm{lin}})>0det(glin​)>0.

The three classical counts — 230230230 space-group types, 219219219 affine classes, 656565 Sohncke types — are three readings of one and the same classification, and this statement packages them into a single assertion. It asks for a list

G1,…,G230G_1,\dots,G_{230}G1​,…,G230​

of crystallographic groups of R3\mathbb R^3R3 together with two pieces of bookkeeping data about that list:

  1. The list is a complete irredundant set of representatives for ∼+\sim_{+}∼+​. Every crystallographic group GGG satisfies Gi∼+GG_i\sim_{+}GGi​∼+​G for some iii, and Gi∼+GjG_i\sim_{+}G_jGi​∼+​Gj​ forces i=ji=ji=j. This is the Fedorov–Schoenflies count of 230230230.

  2. A selection s:{1,…,219}→{1,…,230}s:\{1,\dots,219\}\to\{1,\dots,230\}s:{1,…,219}→{1,…,230} of representatives for ∼\sim∼. Every index iii satisfies Gs(k)∼GiG_{s(k)}\sim G_iGs(k)​∼Gi​ for some kkk, and Gs(k)∼Gs(l)G_{s(k)}\sim G_{s(l)}Gs(k)​∼Gs(l)​ forces k=lk=lk=l. Since ∼\sim∼ is coarser than ∼+\sim_{+}∼+​, and every crystallographic group is ∼+\sim_{+}∼+​-equivalent (hence ∼\sim∼-equivalent) to some member of the list, the 219219219 selected members form a complete irredundant list for ∼\sim∼: the 111111 enantiomorphic pairs among the 230230230 have been merged.

  3. An injection t:{1,…,65}→{1,…,230}t:\{1,\dots,65\}\to\{1,\dots,230\}t:{1,…,65}→{1,…,230} whose image is exactly the set of Sohncke members of the list, i.e. GiG_iGi​ is a Sohncke group if and only if i=t(k)i=t(k)i=t(k) for some kkk. Because the Sohncke condition is invariant under affine conjugacy, the Sohncke groups form a union of ∼+\sim_{+}∼+​-classes, so these 656565 members form a complete irredundant list of the Sohncke groups up to ∼+\sim_{+}∼+​.

Consequently this single statement implies each of space_groups_OP_classification (230230230), space_groups_affine_classification (219219219) and space_groups_sohncke_classification (656565); those three deductions are supplied as proof-sketch reductions to this theorem, so the mission's frontier is the present statement alone.

Formalization note. CrystallographicGroup 3 is the subtype of crystallographic subgroups, AffOPEquivalent and AffinelyEquivalent are ∼+\sim_{+}∼+​ and ∼\sim∼, and IsOrientationPreservingIsom g says det⁡(glin)>0\det(g_{\mathrm{lin}})>0det(glin​)>0; all are the mission's own definitions.

Preamble
import Mathlib
import Definitions.Def_LeanEval_SpaceGroups_Definitions
Formal statement
namespace LeanEval
namespace Geometry
namespace SpaceGroupsProblem

theorem space_groups_master_classification :
    ∃ f : Fin 230 → CrystallographicGroup 3,
      (∀ G : CrystallographicGroup 3, ∃ i : Fin 230, AffOPEquivalent (f i).1 G.1) ∧
      (∀ i j : Fin 230, AffOPEquivalent (f i).1 (f j).1 → i = j) ∧
      (∃ s : Fin 219 → Fin 230,
        (∀ i : Fin 230, ∃ k : Fin 219, AffinelyEquivalent (f (s k)).1 (f i).1) ∧
        (∀ k l : Fin 219, AffinelyEquivalent (f (s k)).1 (f (s l)).1 → k = l)) ∧
      (∃ t : Fin 65 → Fin 230, Function.Injective t ∧
        ∀ i : Fin 230,
          (∀ g, g ∈ (f i).1 → IsOrientationPreservingIsom g) ↔ ∃ k : Fin 65, t k = i) := by
  sorry

end SpaceGroupsProblem
end Geometry
end LeanEval
Source
Fedorov (1891) / Schoenflies (1891); see e.g. Hahn (ed.), International Tables for Crystallography, Vol. A, Table 1.4.1 (230 space-group types, 219 affine classes, 65 Sohncke types)

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

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, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me