Automatic differentiation for ML-family languages: Correctness via logical relations

Fernando Lucatelli Nunes*, Matthijs Vákár

*Corresponding author for this work

Research output: Contribution to journalArticleAcademicpeer-review

Abstract

We give a simple, direct, and reusable logical relations technique for languages with term and type recursion and partially defined differentiable functions. We demonstrate it by working out the case of automatic differentiation (AD) correctness: namely, we present a correctness proof of a dual numbers style AD code transformation for realistic functional languages in the ML-family. We also show how this code transformation provides us with correct forward- and reverse-mode AD. The starting point is to interpret a functional programming language as a suitable freely generated categorical structure. In this setting, by the universal property of the syntactic categorical structure, the dual numbers AD code transformation and the basic ωCpo-semantics arise as structure preserving functors. The proof follows, then, by a novel logical relations argument. The key to much of our contribution is a powerful monadic logical relations technique for term recursion and recursive types. It provides us with a semantic correctness proof based on a simple approach for denotational semantics, making use only of the very basic concrete model of ω-cpos.

Original languageEnglish
Pages (from-to)747-806
Number of pages60
JournalMathematical Structures in Computer Science
Volume34
Issue number8
Early online date21 Oct 2024
DOIs
Publication statusPublished - 2024

Bibliographical note

Publisher Copyright:
© The Author(s), 2024. Published by Cambridge University Press.

Funding

This project has received funding via NWO Veni grant number VI.Veni.202.124 as well as the European Union's Horizon 2020 research and innovation program under the Marie Sk & lstrok;odowska-Curie grant agreement no. 895827.

FundersFunder number
NWO VeniVI.Veni.202.124
European Union895827

    Keywords

    • Differentiable programming languages
    • Logical relations
    • Program transformations
    • Programming language semantics
    • Recursive types
    • Software correctness

    Fingerprint

    Dive into the research topics of 'Automatic differentiation for ML-family languages: Correctness via logical relations'. Together they form a unique fingerprint.

    Cite this