Nominal Semantics for First-class Automatic Differentiation
summary
Formalizes the popular tagged forward-mode AD (used in JAX, Julia, early PyTorch) as a meaning-preserving compiler from a simply typed lambda calculus with first-class differentiation to a target language with runtime name generation, models names in a nominal/Shulman-style topos, and proves correctness by logical relations: compiled programs return the same real values and those results are independent of generated tags, eliminating perturbation confusion for R→R programs.
AI-written summary · about
chapters (7)
- 0:00Introduction
- 0:42First-class automatic differentiation
- 2:07Dual numbers and perturbation
- 5:18Tagged forward mode algorithm
- 6:43Correctness of the algorithm
- 11:45Correctness theorem and proof
- 12:26Summary and Q&A
related talks
36mProgramming Languages for Automatic Differentiation: What Now?
11mAbstract Interpretation for Automatic Differentiation
39mDifferentiable Functional Programming
05mPartial Evaluation of Forward-Mode Automatic Differentiation
26mAdding AD to Scheme by Differentiating the Interpreter
29mPartial Evaluation of Automatic Differentiation for Differential-Algebraic Equati...
11mPerturbation confusion in forward automatic differentiation of higher-order functions
06mDistribution Theoretic Semantics for Non-Smooth Differentiable Programming
