IndisputableMonolith.Thermodynamics.HeatTransferFromJCost
IndisputableMonolith/Thermodynamics/HeatTransferFromJCost.lean · 47 lines · 6 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Heat Transfer from Phi-Ladder — Tier F Thermodynamics
6
7The three heat transfer modes (conduction, convection, radiation) have
8characteristic time constants that scale with each other. In RS terms,
9the heat flux efficiency ratio r follows the phi-ladder across modes.
10
11Five canonical heat transfer regimes (pure conduction, mixed convection,
12forced convection, natural convection, radiative) = configDim D = 5.
13
14RS prediction: adjacent regime Nusselt numbers (dimensionless heat transfer)
15ratio by phi^2 (two rungs per mode transition).
16
17Lean status: 0 sorry, 0 axiom.
18-/
19
20namespace IndisputableMonolith.Thermodynamics.HeatTransferFromJCost
21open Constants
22
23inductive HeatTransferRegime where
24 | pureConduction | mixedConvection | forcedConvection | naturalConvection | radiative
25 deriving DecidableEq, Repr, BEq, Fintype
26
27theorem regimeCount : Fintype.card HeatTransferRegime = 5 := by decide
28
29noncomputable def nusseltAtRung (k : ℕ) : ℝ := phi ^ (2 * k)
30
31theorem nusseltRatio (k : ℕ) :
32 nusseltAtRung (k + 1) / nusseltAtRung k = phi ^ 2 := by
33 unfold nusseltAtRung
34 have hpos : 0 < phi ^ (2 * k) := pow_pos phi_pos _
35 rw [show 2 * (k + 1) = 2 * k + 2 from by ring, pow_add]
36 field_simp [hpos.ne']
37
38structure HeatTransferCert where
39 five_regimes : Fintype.card HeatTransferRegime = 5
40 phi_sq_ratio : ∀ k, nusseltAtRung (k + 1) / nusseltAtRung k = phi ^ 2
41
42noncomputable def heatTransferCert : HeatTransferCert where
43 five_regimes := regimeCount
44 phi_sq_ratio := nusseltRatio
45
46end IndisputableMonolith.Thermodynamics.HeatTransferFromJCost
47