pith. machine review for the scientific record. sign in

IndisputableMonolith.Acoustics.RoomAcousticsFromPhiLadder

IndisputableMonolith/Acoustics/RoomAcousticsFromPhiLadder.lean · 51 lines · 7 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-05-16 04:54:11.114339+00:00

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Room Acoustics from φ-ladder — B14 Depth
   6
   7Five canonical room-acoustic regimes (= configDim D = 5):
   8  anechoic, heavily-damped, semi-reverberant, reverberant, echoic.
   9
  10Reverberation time RT60 scales on φ-ladder: adjacent-regime ratio = φ.
  11
  12Speech intelligibility threshold (STI canonical band) = J(φ) ∈ (0.11, 0.13).
  13
  14Lean status: 0 sorry, 0 axiom.
  15-/
  16
  17namespace IndisputableMonolith.Acoustics.RoomAcousticsFromPhiLadder
  18open Constants
  19
  20inductive RoomAcousticRegime where
  21  | anechoic
  22  | heavilyDamped
  23  | semiReverberant
  24  | reverberant
  25  | echoic
  26  deriving DecidableEq, Repr, BEq, Fintype
  27
  28theorem roomAcousticRegime_count : Fintype.card RoomAcousticRegime = 5 := by decide
  29
  30noncomputable def rt60 (k : ℕ) : ℝ := phi ^ k
  31
  32theorem rt60_ratio (k : ℕ) : rt60 (k + 1) / rt60 k = phi := by
  33  unfold rt60
  34  have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
  35  rw [div_eq_iff hpos.ne', pow_succ]
  36  ring
  37
  38theorem rt60_pos (k : ℕ) : 0 < rt60 k := pow_pos phi_pos k
  39
  40structure RoomAcousticsCert where
  41  five_regimes : Fintype.card RoomAcousticRegime = 5
  42  phi_ratio : ∀ k, rt60 (k + 1) / rt60 k = phi
  43  rt60_always_pos : ∀ k, 0 < rt60 k
  44
  45noncomputable def roomAcousticsCert : RoomAcousticsCert where
  46  five_regimes := roomAcousticRegime_count
  47  phi_ratio := rt60_ratio
  48  rt60_always_pos := rt60_pos
  49
  50end IndisputableMonolith.Acoustics.RoomAcousticsFromPhiLadder
  51

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