IndisputableMonolith.Materials.GlassTransitionFromJCost
IndisputableMonolith/Materials/GlassTransitionFromJCost.lean · 50 lines · 7 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Glass Transition from J-Cost — B15 Depth
6
7Five canonical glass-transition regimes (= configDim D = 5):
8 fragile liquid, strong liquid, supercooled, vitreous, aging.
9
10Angell fragility index on φ-ladder; adjacent-regime ratio φ.
11
12Lean status: 0 sorry, 0 axiom.
13-/
14
15namespace IndisputableMonolith.Materials.GlassTransitionFromJCost
16open Constants
17
18inductive GlassRegime where
19 | fragileLiquid
20 | strongLiquid
21 | supercooled
22 | vitreous
23 | aging
24 deriving DecidableEq, Repr, BEq, Fintype
25
26theorem glassRegime_count : Fintype.card GlassRegime = 5 := by decide
27
28noncomputable def fragilityIndex (k : ℕ) : ℝ := phi ^ k
29
30theorem fragility_ratio (k : ℕ) :
31 fragilityIndex (k + 1) / fragilityIndex k = phi := by
32 unfold fragilityIndex
33 have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
34 rw [div_eq_iff hpos.ne', pow_succ]
35 ring
36
37theorem fragility_pos (k : ℕ) : 0 < fragilityIndex k := pow_pos phi_pos k
38
39structure GlassTransitionCert where
40 five_regimes : Fintype.card GlassRegime = 5
41 phi_ratio : ∀ k, fragilityIndex (k + 1) / fragilityIndex k = phi
42 fragility_always_pos : ∀ k, 0 < fragilityIndex k
43
44noncomputable def glassTransitionCert : GlassTransitionCert where
45 five_regimes := glassRegime_count
46 phi_ratio := fragility_ratio
47 fragility_always_pos := fragility_pos
48
49end IndisputableMonolith.Materials.GlassTransitionFromJCost
50