NN.MLTheory.Stability.Runtime #
Executable Float-specialized diagnostics for the stability specifications in
NN.MLTheory.Stability.Spec.
Stability runtime utilities (Float) #
This module provides executable, Float-specialized helpers for exploring stability properties of discrete-time systems ($x_{t+1}=f(x_t)$).
All routines in this file are runtime diagnostics:
- they compute concrete trajectories and check concrete inequalities, and
- they return
Except Stringso absent or non-finite evidence cannot pass vacuously.
They are factually correct as computations: “this inequality held on these sampled points for
this many steps.” The corresponding theorem statements live in the Prop definitions in
NN.MLTheory.Stability.Spec.
In other words:
.ok truemeans the sampled runtime diagnostic passed;.ok falsemeans “found a counterexample to the tested condition”; and.error _means the evidence was empty, non-finite, or otherwise inconclusive.
Apply steps transitions of a discrete-time system $x_{t+1}=f(x_t)$, starting at $x_0$.
The returned array has steps + 1 states, including the initial state $x_0$.
Instances For
Empirical Lyapunov stability test:
For each initial point x₀ in initialPoints, generate maxIterations + 1 states and
check that every state stays within tolerance (in L2 distance) of equilibrium.
This is a bounded-time and finite-set check; it does not certify Lyapunov stability.
Instances For
Empirical asymptotic stability test (finite-horizon):
For each x₀ in initialPoints, simulate maxIterations steps and check that the final state
is within convergenceThreshold of equilibrium (in L2 distance).
This is a very coarse check: it only inspects the last iterate and does not quantify a rate.
Instances For
Empirical exponential decay test:
We simulate a trajectory, compute distances $d_t=\lVert x_t-\mathrm{equilibrium}\rVert_2$, and check a simple inequality of the form
$$ d_t\leq d_0 e^{-\mathrm{rate}\,t} $$
for the given expectedDecayRate.
This is a heuristic diagnostic. A theorem about exponential stability should state the dynamical hypotheses separately and use this run only as runtime evidence.
Instances For
Empirical contractivity test on a finite list of input pairs.
Checks the inequality
$$ \frac{\lVert f(x)-f(y)\rVert_2}{\lVert x-y\rVert_2} \leq \mathrm{expected\_contraction\_factor} $$
for each pair (x,y). Zero-distance pairs are ignored, but at least one positive-distance pair is
required.
Instances For
Empirical BIBO stability test on a finite list of inputs.
For each test input $x$, if $\lVert x\rVert_2\leq\mathrm{input\_bound}$ then we check $\lVert f(x)\rVert_2\leq\mathrm{output\_bound}$.
Instances For
Empirical monotonic-loss check for a training log.
Returns .ok true if each consecutive loss satisfies
$\ell_{t+1}\leq\ell_t+\mathrm{tolerance}$. Fewer than two losses and non-finite values are
inconclusive errors.
Instances For
Empirical estimate of a Lyapunov-style stability margin.
For each candidate radius r in testRadii, we generate a small finite set of points on a
coordinatewise cosine perturbation around equilibrium and check a bounded-horizon Lyapunov
test. The generated points are not generally on the L2 sphere of radius r.
The result is some maximum radius when at least one radius passes, and none when valid evidence
was collected but every radius failed. Empty or non-finite radius sets are errors.
Instances For
Instances For
Instances For
Results of a small battery of empirical stability diagnostics.
- isLyapunovStable : Bool
Result of a finite-horizon Lyapunov test (
testLyapunovStability). - isAsymptoticallyStable : Bool
Result of a finite-horizon asymptotic test (
testAsymptoticStability). - isContractive : Bool
Result of an empirical contractivity test (
testContractivity). - isBiboStable : Bool
Result of a BIBO check (
testBiboStability). Empirical stability margin estimate (
estimateStabilityMargin).Empirical convergence-rate estimate (see
analyzeStability).
Instances For
Run a small collection of empirical stability diagnostics and summarize the results.