Correctness of checked differentiation #
The public autograd transforms validate and evaluate the graph before sweeping saved reverse rules from its selected output. The theorems here connect that checked path to the graph semantics and, for analytically correct real graphs, to mathlib's Fréchet derivative. Validation remains a separate hypothesis: passing a runtime domain check alone is not a derivative-correctness certificate.
Successful validation makes the checked VJP agree with the stored graph reverse rules. This requires no algebraic laws on the scalar backend. The single-output API uses certified support when available, rather than claiming equality with an arbitrary dense all-seeds VJP.
A successful checked reverse pass returns the graph pullback and forward value. Validation is required at the input actually executed; no scalar algebraic laws are needed.
Without storage equality, single-output differentiation retains the exact dense reference. This connects real-valued and symbolic carriers to the existing derivative theorems.
The selected output has the derivative obtained by projecting the graph derivative.
The checked forward-mode tangent is mathlib's derivative applied to the input direction.
The pure graph pullback is the adjoint derivative of its selected output.
The checked API returns the adjoint of mathlib's derivative of its selected forward output.
The proof graph must describe the exact operation data that execution uses. Differentiability is
required only at this input and the corresponding intermediate values. The carrier is ℝ;
floating-point error and native kernels are not identified with exact real arithmetic.