CHAD for expressive total languages

Publication date

2023-04

Authors

Nunes, Fernando LucatelliISNI 0000000506808059
Vákár, Matthijs I.L.ORCID 0000-0003-4603-0523ISNI 0000000464978681

Editors

Advisors

Supervisors

Document Type

Article
Open Access logo

License

cc_by

Abstract

We show how to apply forward and reverse mode Combinatory Homomorphic Automatic Differentiation (CHAD) (Vákár (2021). ESOP, 607–634; Vákár and Smeding (2022). ACM Transactions on Programming Languages and Systems 44 (3) 20:1–20:49.) to total functional programming languages with expressive type systems featuring the combination of • tuple types; • sum types; • inductive types; • coinductive types; • function types. We achieve this by analyzing the categorical semantics of such types in Σ-types (Grothendieck constructions) of suitable categories. Using a novel categorical logical relations technique for such expressive type systems, we give a correctness proof of CHAD in this setting by showing that it computes the usual mathematical derivative of the function that the original program implements. The result is a principled, purely functional and provably correct method for performing forward- and reverse-mode automatic differentiation (AD) on total functional programming languages with expressive type systems.

Keywords

(Co)monadicity, Artin gluing, Automatic differentiation, Cartesian closed categories, Coalgebras, Coinductive types, Comma categories, Creation of initial algebras, Denotational semantics, Dependently typed languages, Exponentiability, Extensive categories, Extensive indexed categories, Fibered categories, Free cocompletion under coproducts, Grothendieck construction, Inductive types, Initial algebra semantics, Linear types, Logical relations, Polynomial functors, Program transformations, Programming languages, Scientific computing, Software correctness, Type systems, Variant types, Mathematics (miscellaneous), Computer Science Applications

Citation

Nunes, F L & Vákár, M 2023, 'CHAD for expressive total languages', Mathematical Structures in Computer Science, vol. 33, no. 4-5, PII S096012952300018X, pp. 311–426. https://doi.org/10.1017/S096012952300018X