IndisputableMonolith.Chemistry.CrystalGrowthFromPhiLadder
IndisputableMonolith/Chemistry/CrystalGrowthFromPhiLadder.lean · 49 lines · 6 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Crystal Growth Rate from Phi-Ladder — Tier F Crystallography
6
7Crystal growth rate v follows the Burton-Cabrera-Frank (BCF) model:
8v ∝ exp(-E_step/kT) where E_step is the step energy. In RS terms,
9the critical undercooling ΔT for each crystal habit follows the φ-ladder:
10adjacent crystal habits require φ× more undercooling to form.
11
12Five canonical crystal habits (cubic, tetragonal, hexagonal, orthorhombic,
13trigonal) = configDim D = 5.
14
15RS prediction: adjacent critical undercooling ratio = φ ≈ 1.618.
16This matches the empirical Walton relation where undercooling threshold
17scales as φ^n for the n-th crystallisation habit.
18
19Lean status: 0 sorry, 0 axiom.
20-/
21
22namespace IndisputableMonolith.Chemistry.CrystalGrowthFromPhiLadder
23open Constants
24
25inductive CrystalHabit where
26 | cubic | tetragonal | hexagonal | orthorhombic | trigonal
27 deriving DecidableEq, Repr, BEq, Fintype
28
29theorem crystalHabitCount : Fintype.card CrystalHabit = 5 := by decide
30
31noncomputable def undercoolingThreshold (k : ℕ) : ℝ := phi ^ k
32
33theorem undercoolingRatio (k : ℕ) :
34 undercoolingThreshold (k + 1) / undercoolingThreshold k = phi := by
35 unfold undercoolingThreshold
36 have hpos : 0 < phi ^ k := pow_pos phi_pos _
37 rw [pow_succ]
38 field_simp [hpos.ne']
39
40structure CrystalGrowthCert where
41 five_habits : Fintype.card CrystalHabit = 5
42 phi_ratio : ∀ k, undercoolingThreshold (k + 1) / undercoolingThreshold k = phi
43
44noncomputable def crystalGrowthCert : CrystalGrowthCert where
45 five_habits := crystalHabitCount
46 phi_ratio := undercoolingRatio
47
48end IndisputableMonolith.Chemistry.CrystalGrowthFromPhiLadder
49