## Section: Research Program

### From proof-checking to Interoperability

A new turn with Deduction modulo was taken when the idea of reasoning modulo an arbitrary equivalence relation was applied to typed $\lambda $-calculi with dependent types, that permits to express proofs as algorithms, using the Brouwer-Heyting-Kolmogorov interpretation and the Curry-de Bruijn-Howard correspondence [41] . It was shown in 2007, that extending the simplest $\lambda $-calculus with dependent types, the $\lambda \Pi $-calculus, with an equivalence relation, led to a calculus we called the $\lambda \Pi $-calculus modulo, that permitted to simulate many other $\lambda $-calculi, such as the Calculus of Constructions, designed to express proofs in specific theories.

This led to the development of a general proof-checker based on the $\lambda \Pi $-calculus modulo [3] , that could be used to verify proofs coming from different proof systems, such as Coq [40] , HOL [47] , etc. To emphasize this versatility of our proof-system, we called it Dedukti —“to deduce” in Esperanto. This system is currently developed together with companion systems, Coqine, Holide, Focalide, and Zenonide, that permits to translate proofs from Coq, HOL, Focalize, and Zenon, to Dedukti. Other tools, such as Zenon Modulo, directly output proofs that can be checked by Dedukti. Dedukti proofs can also be exported to other systems, in particular to the MMT format [53] .

A thesis, which is at the root of our research effort, and which was
already formulated in [46] is that proof-checkers should be
theory independent. This is for instance expressed in the title of
our invited talk at Icalp 2012: *A theory independent Curry-De
Bruijn-Howard correspondence*. Such a theory independent
proof-checker is called a *Logical Framework*.

Using a single prover to check proofs coming from different provers naturally led to investigate how these proofs could interact one with another. This issue is of prime importance because developments in proof systems are getting bigger and, unlike other communities in computer science, the proof-checking community has given little effort in the direction of standardization and interoperability. On a longer term we believe that, for each proof, we should be able to identify the systems in which it can be expressed.