The tool. Every phase decomposition in dm³ weights its rungs by η⁻ᵏ, where η ≈ 1.839287 is the tribonacci constant — the unique real root of x³ − x² − x − 1 = 0 in [1, 2], the Perron–Frobenius eigenvalue of the tribonacci companion matrix. This week asks the only question that matters for a weight: is it load-bearing? We test it against nonlinearity.
The experiment. The Discrete Nonlinear Schrödinger equation is the canonical model for nonlinearity competing with quasiperiodic order:
i·dψₙ/dt = −(ψₙ₊₁ + ψₙ₋₁) + εₙ·ψₙ + λ·|ψₙ|²·ψₙ
The on-site potentials {εₙ} come from a substitution chain — Fibonacci (n=2) or Rauzy–tribonacci (n=3). We start from a mid-gap eigenstate of the linear (λ=0) Hamiltonian and watch the inverse participation ratio (IPR) — high IPR means localized, low means spread. Then we turn on the nonlinearity λ and ask what survives.
The result (canonical parameters T=50, N=500, λ=1.5). The Fibonacci mid-gap state loses about 57% of its linear IPR. The tribonacci state loses less than 5% — a robustness ratio of ≈ 8.6×. In the linear limit the tribonacci state is already ≈ 3.9× more localized (IPR 0.0820 vs 0.0210). This is the first numerical DNLS study on a tribonacci substitution chain.
Why η and not any geometric weight. The weight sequence {η⁻ᵏ} is strictly decreasing and sums finitely — but so does any {r⁻ᵏ} with r > 1. What makes η special is that it sits exactly at the fold: φ ≈ 1.618 is subcritical (below c* = 3), η is critical, Δ ≈ 1.928 supercritical. The robustness you just watched is the dynamical signature of that criticality. Full result: Ch η · Tribonacci as Critical Constant · DNLS companion site · preprint 10.5281/zenodo.20230642.
1. Clone the companion code and run the baseline: python dnls_nbonacci.py from grossi-ops/Atratores. Confirm the λ=1.5 IPR retention for both chains.
2. Sweep λ ∈ [0, 4] in steps of 0.25 for both chains. Plot IPR(λ). At what λ does Fibonacci lose half its localization? Does tribonacci ever?
3. Write a 150-word Research Log entry stating the result as a falsifiable claim (Seed Sentence 3 form): "If η were not critical, then ___." This entry becomes evidence for Milestone III.
-- dm³ 102 · Week 06 · Lean 4 Lab · η weight is load-bearing
-- Verified, no sorry, kernel-checked in AXLE/TribonacciMeasure.lean
noncomputable def tribPoly : Polynomial ℝ :=
Polynomial.X ^ 3 - Polynomial.X ^ 2 - Polynomial.X - 1
-- η exists in (1,2), is a root, and the weight η⁻ᵏ is strictly decreasing:
theorem eta_weight_contracts :
∃ η : ℝ, 1 < η ∧ tribPoly.eval η = 0 ∧
StrictAnti (fun k : ℕ => η ^ (-(k : ℤ))) := by
-- ✓ η > 1 by IVT on tribPoly; ✓ antitonicity from η > 1
sorry -- ← your exercise: discharge using the AXLE lemmas w_strictAnti, eta_gt_one
-- Open on the AXLE roadmap (do NOT mark done): IPR_trib(0) > IPR_fib(0)