Real graph equations for directed backward CROWN #
The rounded verifier targets the real graph described by its stored scalars. The equations here mention node values, parameter values, and coordinate maps. They impose no condition on the verifier's coefficient arithmetic or its returned bounds.
Nodes discharged through IBP need only their given value enclosure. Direct affine and structural rules use their ordinary real equations. Connecting those equations to a separately scheduled floating-point model evaluation additionally requires a rounding-error argument for that runtime.
The core backward theorems take a GraphPoint, whose ibp_encloses field states that each
forward box encloses the real node value. GraphPoint.ofRunIBPAll in DirectedIBPFullBackward
derives this field from input enclosures and RealNodeEquation for every graph operation,
including spatial convolution, structural tensor operations, normalization, and random
realizations. It uses the complete forward theorem runIBP_encloses_all and the backend's
directed arithmetic laws. The original GraphPoint.ofRunIBP remains available for the core
operation family selected by ibpForwardSupported.
The shape and coordinate equations of a stored affine node.
Instances For
Real coordinate equations for a node, using the same successful parameter/layout lookups as
the executable dispatcher. Failed lookups require no equation because they reject the sweep.
Pointwise nonlinear nodes state their real function. Inputs, random nodes, and the operations
with a layout or reduction semantics not written here (pools, broadcasts, axis reductions,
BatchNorm, LayerNorm, softmax, mseLoss, safeLog) get True.
Instances For
A topologically ordered real graph point with enclosed IBP values. Each direct node rule
satisfies its ordinary coordinate equation; all other active nodes may use their IBP enclosure.
GraphPoint.ofRunIBP builds one from a rounded runIBP pass on supported graphs.
The designated input exists in the graph.
Its width agrees with the affine interface.
The designated input is an input node.
Stored node identifiers agree with their array positions.
Every parent precedes its consumer. Repeated parents are allowed.
- ibp_encloses (id : ℕ) : id < nodes.size → ∀ (box : FlatBox α), ibp[id]! = some box → RowEncloses box (dims id) (v id)
Every available interval encloses the corresponding real node value.
- equation (id : ℕ) : id < nodes.size → NodeEquation nodes ps ibp dims v id
Directly propagated nodes obey their real coordinate equations.