A complete irredundant list of the space-group types
OpenLeanEval.Geometry.SpaceGroupsProblem.space_groups_OP_classificationWork in with its Euclidean metric, and let be the group of bijective affine isometries of . Call a subgroup crystallographic if (i) for every and every the set is finite, and (ii) there are three linearly independent vectors such that translation by each belongs to .
For subgroups write (affinely equivalent) if some invertible affine map of satisfies as sets of affine maps, and (orientation-preserving affinely equivalent) if such a can be chosen with .
This statement is the enumeration form of the classical count of space-group types: there is a list
of crystallographic groups in that is
- complete: every crystallographic group satisfies for some index ; and
- irredundant: forces .
Equivalently, the crystallographic groups of fall into exactly classes under orientation-preserving affine conjugacy, the classification of Fedorov and Schoenflies. Completeness is the substantive half — it asserts that no crystallographic group escapes the list — while irredundancy says the listed groups are pairwise inequivalent, so that enantiomorphic (chiral) partners are counted separately.
Combined with the fact that is an equivalence relation, the two conditions give the cardinality of the set of -classes, and hence the count .
Formalization Note. The list is given as a function from Fin 230; CrystallographicGroup 3 is the subtype of subgroups of the affine isometry group of EuclideanSpace ℝ (Fin 3) satisfying the two conditions above, and AffOPEquivalent is the orientation-preserving affine conjugacy relation, both taken verbatim from the LeanEval definition bundle.
import Mathlib import Definitions.Def_LeanEval_SpaceGroups_Definitions
namespace LeanEval
namespace Geometry
namespace SpaceGroupsProblem
theorem space_groups_OP_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) := by
sorry
end SpaceGroupsProblem
end Geometry
end LeanEval