Section: New Results
Metatheory of Coq and beyond
Participants : Andreas Abel, Vincent Siles, Bruno Bernardo, Yann Régis-Gianas, Hugo Herbelin.
Normalisation
Andreas Abel worked on the meta theory of the Calculus of Constructions (CoC). He partially encoded a normalization proof in Coq and submitted an article on normalization by evaluation for the CoC to the FLOPS 2010 conference.
Andreas Abel worked with Miguel Pagano on normalization by evaluation for Martin-Löf type theory with singletons and proof irrelevance and submitted a journal paper to the TLCA 2009 special issue. In discussions with Bruno Bernardo and Bruno Barras, he investigated the relationship between proof irrelevance and implicit quantification in the CoC. A manuscript is in preparation.
Unification in presence of subtyping
The core of the Calculus of Inductive Constructions (CIC, see Section 3.1.3 ) is a pure type system extended with a hierarchy of universes. The standard presentation of such type theories is “declarative”, i.e. based on a notion of equivalence over programs, but, in practice, implementations, so as to have proof-checking decidable, need to be based on “syntax-directed” presentations. Fortunately, the CIC has a “syntax-directed” presentation that is equivalent to the declarative one (but whether the equivalence holds in general or not is a long-standing open problem called “Expansion Postponement”).
Type theory with “typed equality” is the third main kind of way in which type theory can be presented. The connection between the “declarative” and “typed equality” presentations has been open for many years before being proved in 2006 by Adams [24] for a large set of type theories, called “functional”. Unfortunately, the CIC is not functional and the result of Adams does not apply to Coq. Unfortunately also, the only known set-theoretical model of the CIC (this model justifies the consistency of Coq in the presence of standard mathematical axioms such as the extensional axiom of choice, i.e. it justifies that only “true” mathematical statements can then be proved in Coq) relies on the presentation of CIC with “typed equality”. Extending the result of Adams to a larger class of type theories that contains the CIC is therefore crucial.
Eventually obtaining a correspondence between the “syntax-directed”
presentation of the CIC and the presentation with “typed equality”
is not only important for justifying the set-theoretic foundations of
Coq. It is also important to support a new equality between programs
that is called -expansion and which says that any
program of a functional type is indeed a function. Having
-expansion in Coq would make the system not only smoother to use
from the user point of view: it would also open the way to the use of
more powerful unification strategies for type inference and in
particular to the use of Miller's pattern-unification.
Calculus of inductive constructions and typed equality
Hugo Herbelin and Vincent Siles showed that Adams' result extends to a
category of systems that contains the CIC (the category of “full”
type theory), henceforth bridging the gap between the standard
presentation of the CIC and its typed presentation. This not only
provides a more general solution to the long-standing problem of
connecting type theory with typed equality to type theory with untyped
equality in general: It also opens the way to a presentation of the CIC
with -expansion and hence the ability of formally studying
unification algorithms in Coq.
Hugo Herbelin and Vincent Siles also worked on the problem of Expansion Postponement using a new approach based on “typed equality” that allows to rephrase the problem in new promising terms.
Implicit calculus of constructions
Bruno Bernardo is working
on an Implicit Calculus of
Constructions with dependent sums
and with decidable type inference.
In this calculus all the explicit
static information (types and proof objects)
is transparent and does not affect the computational
behavior. Bruno Bernardo has already defined a formalism and studied an Implicit
Calculus of Constructions [1] .
Next step is to add -types to the system
by extending Alexandre Miquel's models based on coherence
spaces [55]
in order to prove the consistency and the strong normalisation property of the system.
This is joint work with Bruno Barras, researcher of the Typical team and PhD advisor of Bruno Bernardo.
Proofs of higher-order programs
Yann Régis-Gianas continued his collaboration with François Pottier (INRIA Gallium) about proofs of higher-order programs using Hoare Logic. They have submitted a long version of the paper “A Hoare Logic for Call-By-Value Functional Programs” [6] to a journal. An extension of this system with generalized algebraic datatypes and a machine-checked proof of its metatheory are in preparation.
In collaboration with Philippe Audebaud (Plume/ENS-Lyon) and Christine Paulin-Mohring (LRI/INRIA Proval/UPS), Yann Régis-Gianas worked on proofs of probabilistic programs. He has extended the Why [40] proof system with randomized primitives in the programming language and predicates over random distributions in the specification language.
Yann Régis-Gianas started some investigations about semantic patches, which are meta-programming operators meant to capture programming (or proving) development idioms. The purpose of this work is to use machine-checked programming language metatheory to design tools that track program (or proof) modifications and refactorize them automatically, when possible.
In collaboration with Hugo Heuzard (Master student, UPD), Yann Régis-Gianas worked on the mixing of two programming paradigms, namely functional reactive programming [56] and bidirectional programming [27] , to develop user interfaces with built-in operators working on interaction history. (For instance, the standard "undo" action is such an operator.)