IndisputableMonolith.Materials.ThermalConductivityRegimesFromPhiLadder
IndisputableMonolith/Materials/ThermalConductivityRegimesFromPhiLadder.lean · 51 lines · 7 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Thermal Conductivity Regimes from φ-ladder — B9 Materials Depth
6
7Five canonical thermal-conductivity regimes (= configDim D = 5):
8 ballistic, diffusive, phonon-dominated, electron-dominated,
9 interface-limited.
10
11Adjacent-regime conductivity ratio on the φ-ladder.
12
13Lean status: 0 sorry, 0 axiom.
14-/
15
16namespace IndisputableMonolith.Materials.ThermalConductivityRegimesFromPhiLadder
17open Constants
18
19inductive ThermalConductivityRegime where
20 | ballistic
21 | diffusive
22 | phononDominated
23 | electronDominated
24 | interfaceLimited
25 deriving DecidableEq, Repr, BEq, Fintype
26
27theorem thermalConductivityRegime_count :
28 Fintype.card ThermalConductivityRegime = 5 := by decide
29
30noncomputable def kappa (k : ℕ) : ℝ := phi ^ k
31
32theorem kappa_ratio (k : ℕ) : kappa (k + 1) / kappa k = phi := by
33 unfold kappa
34 have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
35 rw [div_eq_iff hpos.ne', pow_succ]
36 ring
37
38theorem kappa_pos (k : ℕ) : 0 < kappa k := pow_pos phi_pos k
39
40structure ThermalConductivityCert where
41 five_regimes : Fintype.card ThermalConductivityRegime = 5
42 phi_ratio : ∀ k, kappa (k + 1) / kappa k = phi
43 kappa_always_pos : ∀ k, 0 < kappa k
44
45noncomputable def thermalConductivityCert : ThermalConductivityCert where
46 five_regimes := thermalConductivityRegime_count
47 phi_ratio := kappa_ratio
48 kappa_always_pos := kappa_pos
49
50end IndisputableMonolith.Materials.ThermalConductivityRegimesFromPhiLadder
51