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 — so it
is the tier that could scale past the h = 16 wall. Every dense instance here is
still at h = 16 (784→16→10). 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. Any tighter bracket therefore plugs into this tier rather
than forking it. The CROWN bound of CrownBound.lean plugs in one rung lower, on the
margin, through certified_of_marginPos.
Everything is elementary and 3-axiom clean; instance files:
LipschitzCert.ScorecardIBP* (generated by
scripts/certs/lipschitz_cert_scorecard_ibp.py).
References #
- Gowal et al. 2018, On the Effectiveness of Interval Bound Propagation for Training Verifiably Robust Models. https://arxiv.org/abs/1810.12715
Equations
- Proofs.Robustness.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 (DenseEuclid.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.CertifiedAtLinf3.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.Basic engine's own shape, BoxSound3 /
ibp3_certified_of_boxSound) is what lets a second, tighter bracket 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
- Proofs.Robustness.BoxSoundE f Flo Fhi = ∀ (lo hi : Fin n → ℝ) (u : EuclideanSpace ℝ (Fin n)), Proofs.Robustness.InBoxE lo hi u → Proofs.Robustness.InBoxE (Flo lo hi) (Fhi lo hi) (f u)
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 (LipschitzCert.ScorecardIBP*) cite it in
this shape, hypothesis-for-hypothesis.