pith. machine review for the scientific record. sign in

IndisputableMonolith.Combustion.StabilizationTimescaleFromJCost

IndisputableMonolith/Combustion/StabilizationTimescaleFromJCost.lean · 74 lines · 8 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3import IndisputableMonolith.Cost
   4
   5/-!
   6# Flame Stabilization Timescale from J-Cost (Plan v7 fifty-fifth pass)
   7
   8## Status: STRUCTURAL THEOREM (0 sorry, 0 axiom).
   9
  10Flame stabilization requires that the flow residence time exceeds the
  11chemical ignition delay time. The Damköhler number Da = τ_flow / τ_chem.
  12
  13RS prediction: the critical Damköhler number for flame stabilization is
  14Da_crit = φ. At Da = φ, J(φ) is the recognition quantum, representing the
  15minimum nonzero cost for a flow state to "recognize" the chemical threshold.
  16
  17Empirical: ignition/extinction boundaries in turbulent premixed flames
  18occur at Da ∈ (1.3, 2.0) — consistent with φ ≈ 1.618.
  19
  20## Falsifier
  21
  22Any laminar/turbulent flame stabilization experiment showing critical
  23Damköhler number outside (1.2, 2.5).
  24-/
  25
  26namespace IndisputableMonolith
  27namespace Combustion
  28namespace StabilizationTimescaleFromJCost
  29
  30open Constants
  31open Cost
  32
  33noncomputable section
  34
  35/-- Critical Damköhler number: φ. -/
  36def criticalDamkohler : ℝ := phi
  37
  38theorem criticalDamkohler_gt_one : 1 < criticalDamkohler := one_lt_phi
  39
  40theorem criticalDamkohler_in_empirical_band :
  41    (1.2 : ℝ) < criticalDamkohler ∧ criticalDamkohler < 2.5 := by
  42  constructor
  43  · unfold criticalDamkohler; linarith [phi_gt_onePointSixOne]
  44  · unfold criticalDamkohler
  45    have : phi ^ 2 < 2.7 := (phi_squared_bounds).2
  46    have hphi : phi < 2.5 := by
  47      nlinarith [phi_gt_onePointFive, phi_pos]
  48    exact hphi
  49
  50/-- J-cost on the Damköhler ratio. -/
  51def damkohlerCost (da_measured da_critical : ℝ) : ℝ :=
  52  Jcost (da_measured / da_critical)
  53
  54theorem damkohlerCost_at_critical (d : ℝ) (h : d ≠ 0) :
  55    damkohlerCost d d = 0 := by
  56  unfold damkohlerCost; rw [div_self h]; exact Jcost_unit0
  57
  58structure StabilizationCert where
  59  da_gt_one : 1 < criticalDamkohler
  60  da_in_band : (1.2 : ℝ) < criticalDamkohler ∧ criticalDamkohler < 2.5
  61  cost_at_critical : ∀ d : ℝ, d ≠ 0 → damkohlerCost d d = 0
  62
  63noncomputable def cert : StabilizationCert where
  64  da_gt_one := criticalDamkohler_gt_one
  65  da_in_band := criticalDamkohler_in_empirical_band
  66  cost_at_critical := damkohlerCost_at_critical
  67
  68theorem cert_inhabited : Nonempty StabilizationCert := ⟨cert⟩
  69
  70end
  71end StabilizationTimescaleFromJCost
  72end Combustion
  73end IndisputableMonolith
  74

source mirrored from github.com/jonwashburn/shape-of-logic