Automatic Differentiation - Partial Correctness Theorems #
This file proves the correctness of the partial dual evaluator evalDual?
which handles expressions with inv, log, and other domain-restricted functions.
Main theorems #
evalDual?_val_correct- Value component is correct when evalDual? returns someevalDual?1_val_correct- Single-variable versionevalFunc1_differentiableAt_of_evalDual?- Differentiability when evalDual? succeedsevalDual?_der_correct- Derivative component is correctevalDual?1_correct- Combined correctness theorem
Design notes #
All theorems are FULLY PROVED with no sorry or axioms.
The key insight is that when evalDual? returns some, the domain
constraints (nonzero for inv, positive for log) are satisfied.
Correctness of partial dual evaluator #
The value component of evalDual? is correct when it returns some. This theorem extends to expressions with inv.
Single-variable version of evalDual?_val_correct
Expressions with inv are differentiable when the denominator is nonzero.
The derivative component of evalDual? is correct when it returns some. For a supported expression (with inv) evaluated at a point x in the interval I, the derivative of the expression lies in the computed derivative interval.
This extends the AD correctness theorem to expressions with inv.
Combined correctness theorem for evalDual?1