Soundness of the rounded forward IBP pass #
runIBP computes one interval box per node with directed endpoint arithmetic. This file proves
that, for any backend with LawfulBoundOps and LawfulNonlinearBoundOps, every box it returns
encloses the real value of its node, provided the real point satisfies the node equations of
NodeEquation and lies in the seeded input boxes.
The proof covers the node kinds accepted by ibpForwardSupportedNode: inputs, constants, copies,
add, sub, mulElem, relu, linear, unary matmul, sum, and the pointwise exp, log,
sqrt, inv, tanh, sigmoid, silu, sin, and cos. On such graphs GraphPoint.ofRunIBP
builds the GraphPoint that the backward theorems take, so their IBP hypothesis is discharged. The
corollaries runCROWNBackwardObjective_encloses_runIBP and directedNodeBounds_encloses_runIBP
state the resulting end-to-end guarantees.
The original core-family interface is retained here. DirectedIBPFullSoundness extends the
forward proof to every graph operation using RealNodeEquation and runIBP_encloses_all.
Node kinds whose forward IBP transfer is proved sound in this file. Binary matmul is not
included because NodeEquation gives it no equation.
Instances For
Every node of the graph has a kind covered by the forward IBP soundness theorem.
Instances For
The real point lies in every seeded input box.
Instances For
One IBP transfer is sound: if the parent boxes enclose the parent values, the box computed for a supported node encloses its value.
boxes is the array the transfer reads and ibp the array named by the node equations; they
agree at every parent.
The whole pass #
A sound node transfer lifts to the complete topologically ordered forward pass.
The array read by a transfer is only a prefix. Its parent entries agree with the final pass because later iterations do not overwrite earlier nodes.
Soundness of the rounded forward IBP pass. Every box that runIBP returns encloses the value of
its node, when the parents precede their consumers, every node kind is covered by
ibpForwardSupportedNode, the input boxes contain the real inputs, and the real point satisfies
the node equations.
If the semantic guard of runIBP rejects the graph, no box is produced and the statement holds
trivially.
The GraphPoint of a rounded runIBP pass. Its ibp_encloses field is runIBP_encloses.
The public rounded objective, run on the boxes of runIBP, encloses the real objective.
No IBP soundness is assumed: it comes from runIBP_encloses.
The nodewise rounded CROWN bounds, run on the boxes of runIBP, enclose every coordinate of
the output node. No IBP soundness is assumed.