PI.R2 Research team

Design, study and implementation of languages for proofs and programs

Team presentation

The team π r² covers three research topics:
  • A fundamental research around the correspondence between proofs and programs
  • A theoretical research around the formalism that underlies the Coq proof assistant
  • An implementation field with the development of Coq, especially in the view of Coq as dependently-typed programming language

Research themes

  • Crossed-fertilisation of proof theory and program theory The syntactic correspondence between proofs and programs (so-called Curry-Howard correspondence) irrigated logic and computer science in the last 30 years. In the last 15 years, new achievements have been obtained (discovery of a relation between logical reasoning by contradiction and control operators; between the formalism known as "sequent calculus" and the structures used in abstract evaluation machines, relevance of side effects in computing with the axiom of choice, ...). One of the objectives of π r² is to explore the consequences and foundations of these recent progresses, especially by studying the logical content of the notion of continuation delimiters introduced in functional programming and by studying the relations between the operations of reflection and reification in programming and the notions of soundness and completeness in logic.
  • Study of type theory and of the Calculus of Inductive Constructions seen as programming languages The Calculus of Inductive Constructions is the name of the formalism underlying the Coq proof assistant. The Calculus of Inductive Constructions derives from Martin-Löf's type theory and is both an expressive logical formalism (comparable in strength to set theory) and a strongly-typed functional programming language (a kind of formalism classified as "type theory"). The Calculus of Inductive Constructions is a rather young formalism about which several questions of a technical nature are open. One of the objectives of π r² is to explore some of these questions: a native treatment of so-called "inversion" constraints with application to the typing of the pattern-matching programming construct in presence of "rich" types, support for a syntactic form of extensionality (so-called "eta-conversion") with applications to the design of unification and type-inference algorithms in the presence of rich types.
  • Development of the Coq system, especially as a dependently-typed programming language The Coq proof assistant offers an environment for semi-interactive development of proofs in an expressive logic build on top of a strongly-typed programming languages. Jointly developed by several teams at INRIA and outside INRIA, Coq is equally used for the formalisation of mathematics and the certification of properties of programs. Natively equipped with dependent types, Coq has a role to play as a richly-typed programming language. Some objectives of π r² here are the development of certified programming libraries, the certification of the extraction process from Coq programs to functional programming languages such as Objective Caml, the development of new proof methods (so-called "tactics"). The π r² team also develops Pangolin which is a tool dedicated to the certification of functional programs.

International and industrial relations

  • ANR Deduction and Certification (DeCert)
  • Development Action Coq (ADT Coq)

Keywords: Proof development environments Proofs/programs correspondence Dependently-typed languages