FP32 CROWN/IBP Integration #
The CROWN/IBP development (NN/MLTheory/CROWN/*) proves real-valued enclosure theorems of the
form “the network output lies in this box”.
This module combines those real enclosures with float32 forward-error bounds (expressed using
approxT) to obtain a float32-sound enclosure:
we inflate the real box by the explicit forward error budget.
This is the key separation of concerns:
- CROWN/IBP proves a real-valued semantic enclosure.
- RuntimeApprox/FP32 proves the rounded runtime output is close to that real-valued output.
- This file composes the two by uniformly widening the box.
Scalar Margin Lemmas #
If a real value y lies in [l, u] and a runtime value yR is within eps of y, then the
interpreted runtime value lies in the widened interval [l - eps, u + eps].
This is the scalar heart of the FP32/CROWN bridge.
Inflating Real Boxes To Cover FP32 Execution #
Uniformly widen a real-valued CROWN.Box by eps in every component.
The lower face moves down by eps; the upper face moves up by eps. This is intentionally simple
and conservative, matching an L∞-style output error bound.
Instances For
Tensor version of interval_contains_inflate_of_abs_error.
If the real-spec output yS is inside a real CROWN/IBP box B, and the FP32 runtime output yR
approximates yS within uniform eps, then the interpreted FP32 output is inside the uniformly
widened box.
Float32-sound IBP for a 2-layer ReLU MLP, via uniform output-box inflation:
- Use the real-spec IBP theorem
NN.MLTheory.CROWN.Theorems.bound_ibp_sound. - Use
approxTto bound FP32 forward error (approxT_reluMlp2_fp32). - Inflate the real IBP box by that error bound.
The result is a real-valued interval that is guaranteed to contain the FP32 execution result.