Interval bound propagation (IBP), sound and kernel-checkable #
The L∞ counterpart of the Lipschitz scorecard: push an axis-aligned box
through the network (sign-split interval arithmetic for the bias-free dense
layers, endpoint max for ReLU) and certify the prediction whenever the
output boxes separate — denseHi … j < denseLo … y for every j ≠ y gives
∀ δ, (∀ i, |δ i| ≤ ε) → argmax fixed (ibp2_certified_at_eps).
Why this matters here: IBP is LINEAR in width (two interval dots per neuron),
where the Gram/Schatten and LipSDP certificates are quadratic-to-cubic — this
is the certificate that scales past the h=16 wall to canonical widths. And
the perturbation model is the literature-standard pixel L∞ ball, stated
coordinatewise (∀ i, |δ i| ≤ ε) with no norm-instance games.
The first layer sees a UNIFORM box x ∓ ε, where the interval image
collapses to ⟨w, x⟩ ∓ ε·‖w‖₁ (denseLo_uniform/denseHi_uniform) — so
the generated files reuse the scorecard's kernel dotZ facts for ⟨w, x⟩
and one absSumZ kernel fact per row for ‖w‖₁ (ListDot.lean).
The certificate itself is stated on a bracket, not on interval arithmetic:
certified_of_boxSound takes any BoxSoundE f Flo Fhi — "Flo/Fhi trap f
on the box" — and ibp2_certified_at_eps is its corollary at the interval
bracket mlp2_boxSound. A tighter bracket (CROWN, planning/archive/crown_ibp.md)
therefore plugs into this tier rather than forking it.
Everything is elementary and 3-axiom clean; instance files:
LipschitzCertScorecardIBP*.lean (generated by
scripts/lipschitz_cert_scorecard_ibp.py).
Equations
- Proofs.LipschitzCertDemo.reluHi hi j = max (hi j) 0
Instances For
f is certified at L∞ radius ε on input x with class y: every
coordinatewise-bounded perturbation keeps y the strict argmax. The
L∞ peer of CertifiedAt (LipschitzCertScorecard.lean).
Equations
Instances For
Certification is monotone in the radius, directly from the statement. An
instance therefore only needs to carry the certificate data for the LARGEST
radius at which an image certifies; every smaller radius on the ε-grid is a
one-line corollary rather than another propagated box. The peer of
IBP.CertifiedAtLinfV.mono.
The 2-layer LOWER box endpoint, evaluated: outer sign-split over the
ReLU'd first-layer uniform box, with the inner sums left as ⟨w,x⟩ and
Σ|w| (which instance files rewrite via their hpre/absSumZ data —
the 784-sums must be REWRITTEN, never unfolded).
The 2-layer UPPER box endpoint, evaluated (sibling of denseLo2_eval).
The certificate below never inspects how the output box was computed — only
that it brackets the net on x ∓ ε. Factoring that out as a hypothesis (the
IntervalBoundConv.lean engine's own shape, BoxSound3 /
ibp3_certified_of_boxSound) is what lets a second, tighter bracket — a CROWN
backward pass, say — reuse this tier instead of forking a parallel stack:
anything that discharges BoxSoundE certifies. ibp2_certified_at_eps is then
the interval bracket's corollary, not the entry point.
A sound bracket for f. Flo lo hi / Fhi lo hi trap f on every
point of the box [lo, hi]. This says nothing about interval arithmetic —
it is the pure bracketing predicate the capstone consumes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Depth. Sound brackets compose exactly as their layers do — feed the first layer's output box into the second layer's bracket.
The interval bracket for a bias-free dense layer (denseLo_le +
le_denseHi, packaged).
Box separation ⇒ L∞ certificate, from ANY sound bracket. If the
bracketing box's wrong-logit upper bounds all sit strictly below the true
logit's lower bound on x ∓ ε, then every perturbation with |δ i| ≤ ε
coordinatewise keeps class y the strict argmax. Boxes are data;
separation is finitely many rational comparisons.
IBP L∞ certificate for dense ∘ relu ∘ dense. If the propagated
output boxes separate — the upper bound of every wrong logit is strictly
below the lower bound of the true one on the box x ∓ ε — then EVERY
perturbation with |δ i| ≤ ε coordinatewise keeps class y the strict
argmax. Boxes are data; separation is finitely many rational comparisons.
This is certified_of_boxSound at the interval bracket mlp2_boxSound;
the generated instance files (LipschitzCertScorecardIBP*.lean) cite it in
this shape, hypothesis-for-hypothesis.