You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#422 states, as the boundary of the value channel's known blind spot:
Exponential/geometric divergence (fixed relative step) IS caught; constant-increment or polynomial growth is not.
It is not caught. A textbook geometric runaway saturates at ±1e308 (the "finite by construction" rule), which turns an unbounded trajectory into a fixed point — and both channels then classify it as the strongest rest band.
Reproduction
v0.38.0, release build at 078e759.
define run as:
z is 2.0
for i in range of 20:
z is z * z
print of ("report=" + (report of z) + " report_value=" + (report_value of z) + " value=" + (str of z))
print of (" diverging? " + (str of (diverging of z)) + " converged? " + (str of (converged of z)))
return 0
run of 0
z reaches 1e308 after ~6 steps and stays pinned there for the remaining 14, so the dH window fills with zeros in both channels. On the entropy side H(1e308) ≈ 0 < h_low, so the entropy < h_low clause that normally holds converged back from information-rich fixed points is satisfied too. Every clause of the converged definition (PREDICATES.md kind 0) is legitimately met — the window really is quiet and the entropy really is low. The problem is upstream: saturation destroyed the evidence of divergence before the observer sampled it.
This is why report_value does not rescue it. #422 was closed on the reasoning that the relative-step channel catches fixed-relative-step growth; that reasoning holds only while the value can still grow. Past 1e308 the relative step is exactly 0.
Why it matters
README.md:158 sells the trajectory words for "instability alerts". This is the canonical instability, and the runtime reports maximal stability with rc=0. It is also the one failure mode where a wrong answer is most costly: a diverging solver that reports converged returns 1e308 as an answer rather than an error.
Options
Flag the saturation event on the observer slot and let diverging read it (cheapest; makes the clamp visible rather than silent).
Finding
#422states, as the boundary of the value channel's known blind spot:It is not caught. A textbook geometric runaway saturates at
±1e308(the "finite by construction" rule), which turns an unbounded trajectory into a fixed point — and both channels then classify it as the strongest rest band.Reproduction
v0.38.0, release build at
078e759.Expected:
diverging, or at minimum notconverged.Mechanism
zreaches1e308after ~6 steps and stays pinned there for the remaining 14, so thedHwindow fills with zeros in both channels. On the entropy sideH(1e308) ≈ 0 < h_low, so theentropy < h_lowclause that normally holdsconvergedback from information-rich fixed points is satisfied too. Every clause of theconvergeddefinition (PREDICATES.mdkind 0) is legitimately met — the window really is quiet and the entropy really is low. The problem is upstream: saturation destroyed the evidence of divergence before the observer sampled it.This is why
report_valuedoes not rescue it.#422was closed on the reasoning that the relative-step channel catches fixed-relative-step growth; that reasoning holds only while the value can still grow. Past1e308the relative step is exactly 0.Why it matters
README.md:158sells the trajectory words for "instability alerts". This is the canonical instability, and the runtime reports maximal stability with rc=0. It is also the one failure mode where a wrong answer is most costly: a diverging solver that reportsconvergedreturns1e308as an answer rather than an error.Options
divergingread it (cheapest; makes the clamp visible rather than silent).dHso an unbounded-growth signal exists independently of step size — this is option (a) from Observer value channel (report_value) is blind to sub-exponential divergence and sub-deadband oscillation (relative-delta normalization) #422, and would also cover the polynomial case Observer value channel (report_value) is blind to sub-exponential divergence and sub-deadband oscillation (relative-delta normalization) #422 left open.Related: #422, #674, #294, #412.