## 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.)