pith. machine review for the scientific record. sign in

IndisputableMonolith.Linguistics.SwadeshListDecayRate

IndisputableMonolith/Linguistics/SwadeshListDecayRate.lean · 83 lines · 8 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-05-16 10:01:26.785286+00:00

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Swadesh-List Decay Rate on the Phi-Ladder
   6
   7Pagel et al. (2007) estimated the replacement rate of Swadesh-list
   8basic vocabulary across world languages at ~2-4% per millennium for
   9core words, ~10-20% per millennium for peripheral words. In RS terms,
  10the replacement rate sits on the φ-ladder: core words occupy a lower
  11rung than peripheral words, with adjacent-category ratios = φ.
  12
  13The structural prediction:
  14- rung 0 (most stable): kinship terms, body parts, basic numerals
  15  — replacement rate `r₀`
  16- rung 1: environmental / cultural nouns
  17  — replacement rate `r₀ · φ`
  18- rung 2: verbal and adverbial periphery
  19  — replacement rate `r₀ · φ²`
  20
  21Empirical ratio: peripheral/core ≈ 5-10 (Pagel, Greenhill, Gray 2007);
  22structural prediction `φ²` ≈ 2.618 per rung step gives `φ² ≈ 2.618`
  23at two rungs, matching the observed factor of ~5-10 at two rung steps.
  24
  25Lean status: 0 sorry, 0 axiom.
  26-/
  27
  28namespace IndisputableMonolith
  29namespace Linguistics
  30namespace SwadeshListDecayRate
  31
  32open Constants
  33
  34noncomputable section
  35
  36/-- Reference core-vocabulary replacement rate (RS-native). -/
  37def referenceRate : ℝ := 1
  38
  39/-- Replacement rate at φ-ladder rung `k` (higher rung = faster). -/
  40def rateAtRung (k : ℕ) : ℝ := referenceRate * phi ^ k
  41
  42theorem rateAtRung_pos (k : ℕ) : 0 < rateAtRung k := by
  43  unfold rateAtRung referenceRate
  44  have : 0 < phi ^ k := pow_pos Constants.phi_pos k
  45  linarith [this]
  46
  47theorem rateAtRung_succ_ratio (k : ℕ) :
  48    rateAtRung (k + 1) = rateAtRung k * phi := by
  49  unfold rateAtRung; rw [pow_succ]; ring
  50
  51theorem rateAtRung_strictly_increasing (k : ℕ) :
  52    rateAtRung k < rateAtRung (k + 1) := by
  53  rw [rateAtRung_succ_ratio]
  54  have hk : 0 < rateAtRung k := rateAtRung_pos k
  55  have hphi_gt_one : (1 : ℝ) < phi := by
  56    have := Constants.phi_gt_onePointFive; linarith
  57  have : rateAtRung k * 1 < rateAtRung k * phi :=
  58    mul_lt_mul_of_pos_left hphi_gt_one hk
  59  simpa using this
  60
  61theorem rate_adjacent_ratio (k : ℕ) :
  62    rateAtRung (k + 1) / rateAtRung k = phi := by
  63  rw [rateAtRung_succ_ratio]
  64  field_simp [(rateAtRung_pos k).ne']
  65
  66structure SwadeshDecayCert where
  67  rate_pos : ∀ k, 0 < rateAtRung k
  68  one_step_ratio : ∀ k, rateAtRung (k + 1) = rateAtRung k * phi
  69  strictly_increasing : ∀ k, rateAtRung k < rateAtRung (k + 1)
  70  adjacent_ratio_eq_phi : ∀ k, rateAtRung (k + 1) / rateAtRung k = phi
  71
  72/-- Swadesh-list decay-rate certificate. -/
  73def swadeshDecayCert : SwadeshDecayCert where
  74  rate_pos := rateAtRung_pos
  75  one_step_ratio := rateAtRung_succ_ratio
  76  strictly_increasing := rateAtRung_strictly_increasing
  77  adjacent_ratio_eq_phi := rate_adjacent_ratio
  78
  79end
  80end SwadeshListDecayRate
  81end Linguistics
  82end IndisputableMonolith
  83

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