CORDIS - EU research results

Semantically correct automatic differentiation

Project description

Proving that automatic differentiation techniques faithfully represent 'standard' differentiation

Finding derivatives, or rates of change of one variable with respect to another, is relevant to myriad physical processes and scenarios. Taking advantage of these mathematical descriptions and implementing them in computer algorithms forms the foundations of many recent advances in machine learning and the use of computers to perform complex statistical analyses. Automatic differentiation techniques have been developed to accomplish this, but proving their correctness is not possible with traditional calculus and differential geometry. The EU-funded SemanDiff project will develop mathematical transformations that will lead to precise correctness proofs for automatic differentiation algorithms so we can all sleep easy at night using them.


Many recent advances in machine learning and computational statistics rely on algorithms that calculate derivatives. This use of derivatives has motivated the creation of domain specific modelling languages in which each program can be differentiated automatically, by the compiler. This technique is known as automatic differentiation (AD). AD is typically implemented through source-code-transformations, either directly or indirectly via operator overloading. These transformations become intricate in languages with expressive language features like algebraic data types and higher-order functions. Meanwhile, traditional calculus and differential geometry do not suffice to prove their correctness or even give them meaning, as ordinary differential geometry cannot support higher-order functions. Indeed, such formal correctness proofs have never been published.

This project will use the mathematical foundations of diffeological spaces, a conservative extension of traditional differential geometry to higher-order types, to give precisely such correctness proofs. In particular, it will give appropriate source-code transformations for both the forward mode and reverse mode techniques of AD on a language with specified semantics in diffeological spaces. Next, it will prove that these source-code transformations correctly implement the canonical semantic notion of differentiation, as given by the diffeological spaces semantics. It will perform this analysis for a higher-order language with tuples and variant types. These formal descriptions and correctness proofs of AD for expressive languages will be accompanied by closely matching implementations, built on top of the Accelerate framework for purely functional GPU programming.


Net EU contribution
€ 187 572,48
3584 CS Utrecht

See on map

West-Nederland Utrecht Utrecht
Activity type
Higher or Secondary Education Establishments
Total cost
€ 187 572,48