EN FR
EN FR


Section: New Results

Translating proofs to Dedukti

Agda is a dependently-typed programming language developed at Chalmers University, Gothenburg, Sweden, for 20 years. Thanks to the propositions-as-types correspondence of Curry-Howard, Agda is often used as a proof-assistant. Guillaume Genestier developed with Jesper Cockx a prototypical translator from Agda to Dedukti, which supports well some of the mainly used features of Agda and translates hundreds of definitions of the standard libraries. This implementation led to new encodings of theories in Dedukti, regarding: Universe Polymorphism, Inductive and Record Types, Dependent Pattern Matching, eta convertibility. The implementation of this translator permits to improve both Agda and Dedukti. Indeed, we discovered some bugged (almost not used) functions in Agda and had to extend some existing functions to our purpose. On the Dedukti side, this implementation was the first usage of the newly implemented feature of rewriting modulo associativity and commutativity, which required some minor improvements. Furthermore, our translation of eta-expansion using a defined function led to an improvement in the verification of type preservation of rewriting rules in Dedukti.

Isabelle is a logical framework developed at Technical University of Munich and Cambridge University since the 90s. It implements several logics such as HOL and ZF and is used as part of large verification projects such as seL4 and Flyspeck. Gabriel Hondet developed with Makarius Wenzel (from Augsburg) an export from Isabelle propositions to Dedukti, which was later extended by Michael Färber and Makarius Wenzel to export proofs. This required substantial work on the Isabelle kernel to extend the reconstruction of proof terms based on the work of Stefan Berghofer. Our newly developed proof export allows for an independent verification of a substantial portion of the Isabelle/HOL standard library as well as for the integration of results proved in Isabelle into Logipedia.