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
Boolfor convenience in scripts/CLIs.
They are factually correct as computations (“this inequality held on these sampled points for
this many steps”), but they are not proofs of the corresponding Prop definitions in
NN.MLTheory.Stability.Spec.
In other words:
truemeans “passed these tests”, not “theorem proved”;falsemeans “found a counterexample to the tested condition”.
Empirical Lyapunov stability test:
For each initial point x₀ in initial_points, generate a length-max_iterations trajectory 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
Instances For
Generate the first steps iterates of a discrete-time system x_{t+1} = f x_t, starting at x₀.
The returned list includes the initial state x₀ as the first element (because we use scanl).
Instances For
Empirical asymptotic stability test (finite-horizon):
For each x₀ in initial_points, simulate max_iterations steps and check that the final state
is within convergence_threshold 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 = ‖x_t - equilibrium‖₂, and check a simple
inequality of the form
d_t ≤ d_0 * exp(-rate * t)
for the given expected_decay_rate.
This is a heuristic diagnostic; it is not a proof of exponential stability.
Instances For
Empirical contractivity test on a finite list of input pairs.
Checks the inequality
‖f x - f y‖₂ / ‖x - y‖₂ ≤ expected_contraction_factor
for each pair (x,y) in test_pairs, ignoring pairs with zero input distance.
Instances For
Empirical BIBO stability test on a finite list of inputs.
For each test input x, if ‖x‖₂ ≤ input_bound then we check ‖f x‖₂ ≤ output_bound.
Instances For
Empirical estimate of a Lyapunov-style stability margin.
For each candidate radius r in test_radii, we generate a small finite set of points on a
synthetic “sphere” of radius r around equilibrium and check a bounded-horizon Lyapunov test.
The result is the maximum radius that passes these finite checks.
Instances For
Instances For
Instances For
Results of a small battery of empirical stability diagnostics.
- isLyapunovStable : Bool
Result of a finite-horizon Lyapunov test (
test_lyapunov_stability). - isAsymptoticallyStable : Bool
Result of a finite-horizon asymptotic test (
test_asymptotic_stability). - isContractive : Bool
Result of an empirical contractivity test (
test_contractivity). - isBiboStable : Bool
Result of a BIBO check (
test_bibo_stability). - stabilityMargin : Float
Empirical stability margin estimate (
estimate_stability_margin). - convergence_rate : Float
Empirical convergence-rate estimate (see
analyze_stability).
Instances For
Run a small collection of empirical stability diagnostics and summarize the results.