Finite binary32 affine artifacts #
The additional checks in this module interpret the supplied binary32 coefficients exactly.
Local rational dominance checks repair the gap between agreement with rounded affine replay
and enclosure of the decoded program's real computation. The supported graph fragment is a
nonempty vector input followed by unary linear and ReLU nodes. The decoder checks the graph's
structure and parameters. FiniteArtifactSemantics proves agreement between Program.eval
and NN.IR.Graph.denote under the payload decoded from the same parameters, then establishes
the requested margins for the original graph.
Decode every scalar exactly, rejecting both infinities and NaNs.
Instances For
Decode the coefficients of one supplied affine form.
Instances For
Require the artifact's input and output dimensions to match the decoded node.
Instances For
The affine difference whose nonpositivity expresses pointwise domination.
Instances For
The supplied lower form is no larger, and its upper form no smaller, than the exact transfer.
Instances For
A decoded vector graph, including the affine entry supplied for every node.
- input {n : ℕ} (bounds : CROWNQuery.Bounds n n) : Chain n n
- linear {n m k : ℕ} (parent : Chain n m) (layer : Spec.LinearSpec ℚ m k) (bounds : CROWNQuery.Bounds n k) : Chain n k
- relu {n m : ℕ} (parent : Chain n m) (alpha : TorchLean.Tensor ℚ [m]) (bounds : CROWNQuery.Bounds n m) : Chain n m
Instances For
The actual artifact entry at the final node.
Instances For
Check every supplied node entry against a transfer from its already checked parent.
Instances For
Count every node of the decoded graph, including its input.
Instances For
Erase certificate entries and relaxation choices without changing the graph computation.
Instances For
Decode the remaining graph nodes, requiring the immediately preceding node as sole parent.
Instances For
Decode exactly one nonempty vector input and a unary linear/ReLU chain.
Instances For
Read a mandatory finite affine entry for a covered graph node.
Instances For
Attach the actual per-node coefficients; a missing entry causes rejection.
Instances For
Requested inequalities at an explicitly designated output, with binary32 coefficients.
- outputId : ℕ
- inequalities : MLTheory.CROWN.Graph.LinParams (FloatLib.Floats.ExecFloat.Binary 8 23 FloatLib.Floats.Formats.BinaryInterchange.FloatFormat.Encoding.ieee (FloatLib.Floats.Formats.BinaryInterchange.FloatFormat.Encoding.ieee.defaultBias 8) decodeTensor._proof_1 decodeTensor._proof_2 decodeTensor._proof_3 decodeTensor._proof_4)
- strict : Bool
Instances For
The graph, its attached artifact, and the exact interpretation of the requested margins.
- graph : DecodedGraph
- numConstraints : ℕ
- inequalities : Spec.LinearSpec ℚ self.graph.outputDim self.numConstraints
- strict : Bool
Instances For
Decode the same graph, parameters, domain, artifact, and output query that acceptance checks.
Instances For
Check nonempty dimensions, the input box, local artifact dominance, and all output margins.
Instances For
Exact binary32 local replay of the same artifact. This is a diagnostic: it holds only when
the artifact is bit-identical to Lean's own transcript, and accepts does not use it.
Instances For
Decode the covered program and run the exact-real dominance and margin checks. Any producer whose bounds dominate the exact transfers is accepted, whether or not they match binary32 replay.