The research conducted in
Since 2012, the team has also extended its scope to the study of the homotopy of rewriting systems, which shares foundational tools with recent advanced works on the semantics of type theories.
Proof theory is the branch of logic devoted to the study of the structure of proofs. An essential contributor to this field is Gentzen who developed in 1935 two logical formalisms that are now central to the study of proofs. These are the so-called “natural deduction”, a syntax that is particularly well-suited to simulate the intuitive notion of reasoning, and the so-called “sequent calculus”, a syntax with deep geometric properties that is particularly well-suited for proof automation.
Proof theory gained a remarkable importance in computer science when it
became clear, after genuine observations first by Curry in
1958 , then by Howard and de Bruijn at the end of the
60's , , that proofs had the very same
structure as programs: for instance, natural deduction proofs can be
identified as typed programs of the ideal programming language known
as
This proofs-as-programs correspondence has been the starting point to a large spectrum of researches and results contributing to deeply connect logic and computer science. In particular, it is from this line of work that Coquand and Huet's Calculus of Constructions , stemmed out – a formalism that is both a logic and a programming language and that is at the source of the Coq system .
The
For explaining the Curry-Howard correspondence, it is important to
distinguish between intuitionistic and classical logic: following
Brouwer at the beginning of the 20th century,
classical logic is a logic that accepts the use of reasoning by
contradiction while intuitionistic logic proscribes it. Then,
Howard's observation is that the proofs of the intuitionistic natural
deduction formalism exactly coincide with
programs in the (simply typed)
A major achievement has been accomplished by Martin-Löf who designed in 1971 a formalism, referred to as modern type theory, that was both a logical system and a (typed) programming language .
In 1985, Coquand and Huet , in the Formel
team of Inria-Rocquencourt explored an alternative approach
based on Girard-Reynolds' system
The first public release of CoC dates back to 1989. The same project-team developed the programming language Caml (nowadays called OCaml and coordinated by the Gallium team) that provided the expressive and powerful concept of algebraic data types (a paragon of it being the type of list). In CoC, it was possible to simulate algebraic data types, but only through a not-so-natural not-so-convenient encoding.
In 1989, Coquand and Paulin designed an extension of the Calculus of Constructions with a generalisation of algebraic types called inductive types, leading to the Calculus of Inductive Constructions (CIC) that started to serve as a new foundation for the Coq system. This new system, which got its current definitive name Coq, was released in 1991.
In practice, the Calculus of Inductive Constructions derives its strength from being both a logic powerful enough to formalise all common mathematics (as set theory is) and an expressive richly-typed functional programming language (like ML but with a richer type system, no effects and no non-terminating functions).
Since 1984, about 40 persons have contributed to the development of Coq, out of which 7 persons have contributed to bring the system to the place it is now. First Thierry Coquand through his foundational theoretical ideas, then Gérard Huet who developed the first prototypes with Thierry Coquand and who headed the Coq group until 1998, then Christine Paulin who was the main actor of the system based on the CIC and who headed the development group from 1998 to 2006. On the programming side, important steps were made by Chet Murthy who raised Coq from the prototypical state to a reasonably scalable system, Jean-Christophe Filliâtre who turned to concrete the concept of a small trustful certification kernel on which an arbitrary large system can be set up, Bruno Barras and Hugo Herbelin who, among other extensions, reorganised Coq on a new smoother and more uniform basis able to support a new round of extensions for the next decade.
The development started from the Formel team at Rocquencourt but, after Christine Paulin got a position in Lyon, it spread to École Normale Supérieure de Lyon. Then, the task force there globally moved to the University of Orsay when Christine Paulin got a new position there. On the Rocquencourt side, the part of Formel involved in ML moved to the Cristal team (now Gallium) and Formel got renamed into Coq. Gérard Huet left the team and Christine Paulin started to head a Coq team bilocalised at Rocquencourt and Orsay. Gilles Dowek became the head of the team which was renamed into LogiCal. Following Gilles Dowek who got a position at École Polytechnique, LogiCal moved to the new Inria Saclay research center. It then split again, giving birth to ProVal. At the same time, the Marelle team (formerly Lemme, formerly Croap) which has been a long partner of the Formel team, invested more and more energy in the formalisation of mathematics in Coq, while contributing importantly to the development of Coq, in particular nowadays for what regards user interfaces.
After various other spreadings resulting from where the wind pushed former PhD students, the development of Coq got multi-site with the development now realised by employees of Inria, the CNAM and Paris 7.
We next briefly describe the main components of Coq.
The architecture adopts the so-called de Bruijn principle: the well-delimited kernel of Coq ensures the correctness of the proofs validated by the system. The kernel is rather stable with modifications tied to the evolution of the underlying Calculus of Inductive Constructions formalism. The kernel includes an interpreter of the programs expressible in the CIC and this interpreter exists in two flavours: a customisable lazy evaluation machine written in OCaml and a call-by-value bytecode interpreter written in C dedicated to efficient computations. The kernel also provides a module system.
The concrete user language of Coq, called Gallina, is a high-level language built on top of the CIC. It includes a type inference algorithm, definitions by complex pattern-matching, implicit arguments, mathematical notations and various other high-level language features. This high-level language serves both for the development of programs and for the formalisation of mathematical theories. Coq also provides a large set of commands. Gallina and the commands together forms the Vernacular language of Coq.
The standard library is written in the vernacular language of Coq.
There are libraries for various arithmetical structures and various
implementations of numbers (Peano numbers, implementation of
The tactics are the methods available to conduct proofs. This includes the basic inference rules of the CIC, various advanced higher level inference rules and all the automation tactics. Regarding automation, there are tactics for solving systems of equations, for simplifying ring or field expressions, for arbitrary proof search, for semi-decidability of first-order logic and so on. There is also a powerful and popular untyped scripting language for combining tactics into more complex tactics.
Note that all tactics of Coq produce proof certificates that are checked by the kernel of Coq. As a consequence, possible bugs in proof methods do not hinder the confidence in the correctness of the Coq checker. Note also that the CIC being a programming language, tactics can have their core written (and certified) in the own language of Coq if needed.
Extraction is a component of Coq that maps programs (or even computational proofs) of the CIC to functional programs (in OCaml, Scheme or Haskell). Especially, a program certified by Coq can further be extracted to a program of a full-fledged programming language then benefiting of the efficient compilation, linking tools, profiling tools, ... of the target software.
Dependently typed programming (shortly DTP) is an emerging concept
referring to the diffuse and broadening tendency to develop
programming languages with type systems able to express program
properties finer than the usual information of simply belonging to
specific data-types. The type systems of dependently-typed programming
languages allow to express properties dependent of the input and
the output of the program (for instance
that a sorting program returns a list of same size as its
argument). Typical examples of such languages were the Cayenne
language, developed in the late 90's at Chalmers University in Sweden
and the DML language developed at Boston. Since then, various new
tools have been proposed, either as typed programming languages whose
types embed equalities (
DTP contributes to a general movement leading to the fusion between logic and programming. Coq, whose language is both a logic and a programming language which moreover can be extracted to pure ML code plays a role in this movement and some frameworks combining logic and programming have been proposed on top of Coq (Concoqtion at Rice and Colorado, Ynot at Harvard, Why in the ProVal team at Inria). It also connects to Hoare logic, providing frameworks where pre- and post-conditions of programs are tied with the programs.
DTP approached from the programming language side generally benefits of a full-fledged language (e.g. supporting effects) with efficient compilation. DTP approached from the logic side generally benefits of an expressive specification logic and of proof methods so as to certify the specifications. The weakness of the approach from logic however is generally the weak support for effects or partial functions.
In between the decidable type systems of conventional data-types based
programming languages and the full expressiveness of logically
undecidable formulae, an active field of research explores a spectrum
of decidable or semi-decidable type systems for possible use in
dependently typed programming languages. At the beginning of the spectrum,
this includes, for instance, the system F's extension ML
For two decades, the Curry-Howard correspondence has been limited to the intuitionistic case but since 1990, an important stimulus spurred on the community following Griffin's discovery that this correspondence was extensible to classical logic. The community then started to investigate unexplored potential connections between computer science and logic. One of these fields is the computational understanding of Gentzen's sequent calculus while another one is the computational content of the axiom of choice.
Indeed, a significant extension of the Curry-Howard correspondence has been
obtained at the beginning of the 90's thanks to the seminal
observation by Griffin that some operators known as
control operators were typable by the principle of double negation
elimination (
Control operators are used to jump from one location of a
program to another. They were first considered in the 60's by
Landin and Reynolds and started to
be studied in an abstract way in the 80's by Felleisen et
al , leading to Parigot's
The Curry-Howard interpretation of sequent calculus started to be investigated at the beginning of the 90's. The main technicality of sequent calculus is the presence of left introduction inference rules, for which two kinds of interpretations are applicable. The first approach interprets left introduction rules as construction rules for a language of patterns but it does not really address the problem of the interpretation of the implication connective. The second approach, started in 1994, interprets left introduction rules as evaluation context formation rules. This line of work led in 2000 to the design by Hugo Herbelin and Pierre-Louis Curien of a symmetric calculus exhibiting deep dualities between the notion of programs and evaluation contexts and between the standard notions of call-by-name and call-by-value evaluation semantics.
Abstract machines came as an intermediate evaluation device, between
high-level programming languages and the computer microprocessor. The
typical reference for call-by-value evaluation of
Delimited control extends the expressiveness of control operators with
effects: the fundamental result here is a completeness result by
Filinski : any side-effect expressible in monadic
style (and this covers references, exceptions, states, dynamic
bindings, ...) can be simulated in
Version 8.5 of Coq will remain as one of the most important versions of the history of Coq. It includes five big achievements affecting various components of the system: a new proof engine supporting multi-goal and deep backtracking by Arnaud Spiwack; a new asynchronous evaluation engine supporting efficient parallel development of interactive documents, parallel evaluation of tactics, modular compilation of files by Enrico Tassi; full universe polymorphism by Matthieu Sozeau; a new notion of primitive projections highlighting the negatively polarised view at record types by Matthieu Sozeau; a new evaluation machine by Maxime Dénès which works by compiling to OCaml.
The year 2015 was also a year of thinking on new ways to popularise Coq and further enhance the interaction between users and developers. In particular, a first Coq Coding Sprint gathered about 30 participants around about 10 developers.
This year, the French Spring School in Theoretical Computer Science (EPIT) was organised by Yann Régis-Gianas, Pierre Letouzey, Matthieu Sozeau and Pierre-Marie Pédrot in Fréjus (France). This CNRS “école thématique” was dedicated to the mechanisation of proofs of programs and of mathematical theorems in Coq. It was attended by 50 participants, coming from different research communities. Besides the courses introducing the basics of Coq and proof development in Coq, substantial efforts of formalisation in various areas such as formal language theory, number theory, or combinatorics were presented by their authors, and the attendants were encouraged to discuss their own formalisation projects with the Coq developers. The school has been sponsorised by the CNRS, the FIFP, the ADT Coq and the ANR Paral-ITP. The feedback from the participants was very positive.
Keywords: Proof - Certification - Formalisation
Functional Description
Coq provides both a dependently-typed functional programming language and a logical formalism, which, altogether, support the formalisation of mathematical theories and the specification and certification of properties of programs. Coq also provides a large and extensible set of automatic or semi-automatic proof methods. Coq's programs are extractible to OCaml, Haskell, Scheme, ...
Participants: Benjamin Grégoire, Enrico Tassi, Bruno Barras, Yves Bertot, Pierre Boutillier, Xavier Clerc, Pierre Courtieu, Maxime Dénès, Stéphane Glondu, Vincent Gross, Hugo Herbelin, Pierre Letouzey, Assia Mahboubi, Julien Narboux, Jean-Marc Notin, Christine Paulin-Mohring, Pierre-Marie Pédrot, Loïc Pottier, Matthias Puech, Yann Régis-Gianas, François Ripault, Matthieu Sozeau, Arnaud Spiwack, Pierre-Yves Strub, Benjamin Werner, Guillaume Melquiond and Jean-Christophe Filliâtre
Partners: CNRS - Université Paris-Sud - ENS Lyon - Université Paris-Diderot
Contact: Hugo Herbelin
URL: http://
Cf. Highlights section. Version 8.5 includes as well a number of miscellaneous changes, at the level of tactics, of the specification language, of the Coq tools, of the standard library, altogether amounting to about 150 items in the change log of the version. In particular, Pierre-Marie Pédrot has been working on the overall optimisation of Coq, by tracking hotspots in the code. Coq v8.5 is currently much more efficient than its v8.4 counterpart, and is about as quick as v8.3, while having been expanded with a lot of additional features.
As a counterpart, the complexity of this new version induced a long phase of experimentation which included 3 different beta versions spanned over the whole 2015 year, with the final version being eventually released for the CoqPL workshop in January 2016.
Matthieu Sozeau followed up his work on universe polymorphism and uncovered
important theoretical and practical problems regarding conversion and unification
of universe polymorphic definitions in the presence of cumulativity and the Prop
Matthieu Sozeau continued work on the Equations plugin and fixed the remaining bugs preventing full automation of a middle-size example of formalisation – the normalisation proof of a predicate version of System F – together with Cyprien Mangin, during his master's internship. This involved finding a new termination proof for the calculus and making the dependent pattern-matching compilation more robust and axiom-free, using a different encoding of pattern-matching problems. This work was presented at LFMTP'15 in Berlin . Since then, the system has been adapted to work with universe polymorphism and the new features of Coq 8.5.
Pierre Letouzey developed a few new results about some Hofstadter
sequences (see https://
Chen Ran (ISCAS/SKLCS, Beijing) and Jean-Jacques Lévy pursued their work about producing readable formal proofs of graph algorithms. This work is performed in Why3 and partly in Coq. Graph algorithms are a good testbed for experimenting correctness proofs of programs with shared structures. We considered basic algorithms such as depth-first-search, random walk, acyclicity test, articulation points, strongly connected components, minimum spanning trees. In each case, the goal is to provide a simple proof as abstract as possible, although checked by computer. A longer term objective is to give formal proofs which could be inserted in algorithms textbooks. A progress work paper is under submission .
Frédéric Loulergue continued his work on the SyDPaCC framework. The goal of this framework is to ease the systematic development of correct parallel programs, in particular large-scale data-intensive applications. The parallel versions of the programs are written with a Coq axiomatisation of Bulk Synchronous Parallel ML (BSML) primitives. New results about SyDPaCC include the design and implementation of a new version of the core of the framework . This new version has been used in a course of École des Jeunes Chercheur/se/s en Informatique Mathématique (EJCIM 2015) .
As the SyDPaCC framework currently mixes certified code extracted from Coq and unverified code, Frédéric Loulergue and Pierre Letouzey have worked on an extended extraction that generates, when possible, OCaml conditions for preconditions on function arguments. This part is still on-going work.
Frédéric Loulergue collaborated with Frédéric Dabrowski and Thomas Pinsard (Univ. Orléans) on the semantics and compilation of languages with nested atomic sections and thread escape. In , the focus is on the semantics of programming languages providing these features. The main contribution is the precise definition of atomicity, well-synchronisation and the proof that the latter implies the strong form of the former. A formalisation of the results in the Coq proof assistant is described.
In , the compilation of a language with nested atomic sections and thread escape towards a language with threads and locks is addressed. The design decisions of this compilation pass and of the target language were made with respect to the ultimate goal of a mechanised proof of semantic preservation.
Frédéric Loulergue collaborated with Allan Blanchard, Nikolai Kosmatov and Matthieu Lemerre (CEA LIST) on the verification of a critical component of a hypervisor. In , they present a case study on formal verification of the virtual memory system of the cloud hypervisor Anaxagoros, a microkernel designed for resource isolation and protection. The code under verification is specified and proven in the software verification framework, mostly using automatic theorem proving. The remaining properties are interactively proven with the Coq proof assistant.
Frédéric Loulergue collaborated with Asma Guesmi, Pascal Berthomé and Patrice Clemente (INSA Centre Val de Loire) on resources placement in the Cloud taking into account security requirements .
In collaboration with François Pottier (Inria Gallium), Yann Régis-Gianas maintained Menhir, an LR parser generator for OCaml. Yann Régis-Gianas develops the “Hacking Dojo”, a web platform to automatically grade programming exercises. The platform is now used in several courses of the University Paris Diderot. He gets help from the internship of Alexandre Ly, a master student of the Paris Diderot University. In collaboration with Beta Ziliani (LIIS, Cordoba, Argentine), Yann Régis-Gianas, Béatrice Carré and Jacques-Pascal Deplaix develop MetaCoq, an extension of Coq to use Coq as a metalanguage for itself.
In 2012, Hugo Herbelin showed that classical arithmetic in finite types extended with strong elimination of existential quantification proves the axiom of dependent choice. To get classical logic and choice together without being inconsistent is made possible first by constraining strong elimination of existential quantification to proofs that are essentially intuitionistic and secondly by turning countable universal quantification into an infinite conjunction of classical proofs evaluated along a call-by-need evaluation strategy so as to extract from them intuitionistic contents that complies to the intuitionistic constraint put on strong elimination of existential quantification. Étienne Miquey has been working on a sequent-calculus version of this system, using Danvy's methodology of semantic artifacts, to progressively reduce the consistency of such a system to the normalisation of Girard-Reynold's system F. To achieve this goal, he incidentally proposed a way to get a dependently-typed sequent calculus, as well as a method to type a state-and-continuation-passing style translation of call-by-need calculus.
Hugo Herbelin worked on the computational content of Gödel's completeness theorem, developing a proof with side-effects suitable for normalisation-by-evaluation.
Pierre-Marie Pédrot extended the proof-as-program interpretation of Gödel's Dialectica translation to the fully dependent setting, including dependent elimination .
Alexis Saurin and Pierre-Marie Pédrot extended their reconstruction of call-by-need based on linear head reduction with control. They showed how linear head reduction could be adapted to the
Pierre-Marie Pédrot studied variants of the forcing construction by decomposing it through call-by-push-value. In particular, the by-name decomposition behaves much more nicely w.r.t. the computational content of proofs and is a candidate for a dependently-typed extension. This work is partially reported on in his PhD .
In joint work with Marcelo Fiore and Guillaume Munch-Maccagnoni, Pierre-Louis Curien considered the Curry-Howard-Lambek correspondence for effectful computation and resource management, specifically proposing polarised calculi together with presheaf-enriched adjunction models as the starting point for a comprehensive semantic theory relating logical systems, typed calculi, and categorical models in this context. Our thesis is that the combination of effects and resources should be considered orthogonally. Model theoretically, this leads to an understanding of our categorical models from two complementary perspectives: (i) as a linearisation of CBPV (Call-by-Push-Value) adjunction models, and (ii) as an extension of linear/non-linear adjunction models with an adjoint resolution of computational effects. When the linear structure is cartesian and the resource structure is trivial, we recover Levy’s notion of CBPV adjunction model, while when the effect structure is trivial, we have Benton’s linear/non-linear adjunction models. Further instances of our model theory include the dialogue categories with a resource modality of Melliès and Tabareau, and the Enriched Effect Calculus models of Egger, Møgelberg and Simpson. Our development substantiates the approach by providing a lifting theorem of linear models into cartesian ones. To each of our categorical models we systematically associate a typed term calculus, each of which corresponds to a variant of the sequent calculi LJ (Intuitionistic Logic) or ILL (Intuitionistic Linear Logic). The adjoint resolution of effects corresponds to polarisation whereby, syntactically, types locally determine a strict or lazy evaluation order and, semantically, the associativity of cuts is relaxed. In particular, our results show that polarisation provides a computational interpretation of CBPV in direct style. Further, we characterise depolarised models: those where the cut is associative, and where the evaluation order is unimportant. This work will be presented at POPL 2016 .
As part of his PhD thesis, Guillaume Claret defined a notion of effectful interactive computation as an embedded DSL in Coq (in the spirit of the works on algebraic effects), and used it to implement a web server. It is equipped with a dual notion of effectful interactive execution context. Using these two notions together, Guillaume Claret is able to specify and reason about interactive programs inside Coq. He submitted several papers about this line of work: one has been published , others will be part of his PhD manuscript.
This theme is part of the ANR project Rapido (see the National Initiatives section).
Amina Doumane and Alexis Saurin, in a joint work with David Baelde published at CSL 2015 ,
developed
a game-semantics of
This interactive semantics was worked out in computational ludics, benefitting from both the work by Clairambault on a HO style game semantics for an intuitionistic logic with least and greatest fixpoints and from the flexibility of Terui's computational ludics (in particular its ability to consider designs with cuts).
This framework is built around the notion of design, which can be seen as an analogue of the strategies of
game semantics. The infinitary nature of designs makes them particularly well suited for representing
computations over infinite data. We provided
In a collaboration with David Baelde, Amina Doumane and Alexis Saurin developed further the theory of infinite
proofs. Studying the proof theory of circular proofs on MALL, they established a result of focalisation for these
infinite proofs. The usual result of focalisation for linear logic can actually be extended to circular proofs
but, contrarily to
Works on cut-elimination for circular proofs are still ongoing.
In a joint work with David Baelde and Lucca Hirschi,
Amina Doumane and Alexis Saurin carried out a proof-theoretical
investigation of the linear-time
They do so in a way that combines the advantages of two lines of previous work: Kaivola gave a proof of completeness for an axiomatisation that amounts to a finitary proof system, but his proof is non-constructive and yields no reasonable procedure. On the other hand, Dax, Hofmann and Lange recently gave a deductive system that is appropriate for algorithmic proof search, but their proofs require a global validity condition and do not have a well understood proof theory.
They work with well-structured proof systems, effectively constructing proofs in a finitary sequent calculus that enjoys local correctness and cut elimination.
This involves an intermediate circular proof system in which one can obtain proofs for all inclusions of parity automata, by adapting Safra's construction. In order to finally obtain finite proofs of Büchi inclusions, a translation result from circular to finite proofs is designed.
With Stéphane Gaussent (ICJ, Univ. Saint-Étienne), Yves Guiraud and Philippe Malbos have used higher-dimensional rewriting methods for the study of Artin monoids, a class of monoids that is fundamental in algebra and geometry. This work formulates in a common language several known results in combinatorial group theory: one by Tits about the fundamental group of a graph associated to an Artin monoid , and one by Deligne about the actions of Artin monoids on categories , both originally proved by geometrical and non-constructive methods. An improved completion procedure, called the homotopical completion-reduction procedure (see also ), is formalised and used to give constructive proofs of (improved versions of) both theorems. This work has been published in Compositio Mathematica and has been implemented in a Python library (http://
Yves Guiraud has collaborated with Patrick Dehornoy (LNO, Univ. Caen) to develop an axiomatic setting for monoids with a special notion of quadratic normalisation map with good computational properties. This theory generalises the normalisation procedure known for monoids that admit a special family of generators called a Garside family to a much wider class that also includes the plactic monoids. It is proved that good quadratic normalisation maps correspond to quadratic convergent presentations, together with a sufficient condition for this to happen, based on the shape of the normalisation paths on length-three words. This work has been submitted for publication to the Journal de l'École Polytechnique — Mathématiques .
Building on this last article, Yves Guiraud currently collaborates with Matthieu Picantin (Automates team, LIAFA, Univ. Paris 7) to generalise the main results of to monoids with a Garside family. This will allow an extension of the field of application of the rewriting methods to other geometrically interesting classes of monoids, such as the dual braid monoids.
With Eric Hoffbeck (LAGA, Univ. Paris 13), Yves Guiraud and Philippe Malbos have introduced in the setting of linear polygraphs to formalise a theory of linear rewriting, generalising Gröbner bases. They have adapted the computational method of to compute polygraphic resolutions of associative algebras, with applications to the decision of the Koszul homological property. They are currently engaged into a major overhaul of this work, whose main goal is to ease the adaptation of the results to other algebraic varieties, like commutative algebras or Lie algebras.
Cyrille Chenavier, supervised by Yves Guiraud and Philippe Malbos, explores the use of Berger's theory of reduction operators to design new rewriting methods in algebra. In , he proposed a construction of a contracting homotopy for the Koszul complex of an algebra (a complex characterising the homological property of Koszulness): when an algebra admits a side-confluent presentation (a strong hypothesis of confluence), he gave a candidate for the contracting homotopy, built using specific representations of confluence algebras; when the presentation satisfies an additional condition, called the extra-condition, it turns out that this candidate works.
In , Maxime Lucas, supervised by Yves Guiraud and Pierre-Louis Curien, has applied the rewriting techniques of to prove coherence theorems for bicategories and pseudofunctors. He obtained a coherence theorem for pseudonatural transformations thanks to a new theoretical result, improving on the former techniques, that relates the properties of rewriting in 1- and 2-categories.
Building on recent ideas of Marcelo Fiore on the one hand, and of François Lamarche on the other hand, Pierre-Louis Curien and Jovana Obradović developed a syntactic approach, using some of the kit of Curien-Herbelin’s duality of computation and its polarised versions by Munch and Curien, to the definition of various structures that have appeared in algebra under the names of operads, cyclic operads, dioperads, properads, modular and wheeled operads, permutads, etc. These structures are defined in the literature in different flavours. The goal is to formalise the proofs of equivalence between these different styles of definition. This work is completed for cyclic operads and was presented at the conference Category Theory 2015 in Aveiro . Further work will be to make these proofs modular, so as not to repeat them for each variation of the notion of operad.
As a substantial development of reasoning with string diagrams, Jovana Obradović gave a complete proof of the Bénabou-Roubaud monadic descent theorem in . One of the essential points concerning Grothendieck's original approach to descent theory consists of identifying the class of effective descent morphisms for a given fibration. In the special case of a bifibration satisfying Beck-Chevalley condition, Bénabou and Roubaud have given such a characterisation by means of monadicity. Due to the technically complicated calculations involving Grothendieck's cocycle condition, the categorical equivalence which reflects the comparison of the descent in fibered categories with monadic descent is usually not worked out in complete detail in the literature. Jovana Obradović linked the monadic and the original viewpoint via another possible definition of the category of descent data. This intermediate step, due to Janelidze and Tholen, involves constructions in internal categories and it provides an example on how one can stay in the world of string diagrams even when dealing with morphisms which do not have an explicit string diagram definition.
An optimisation to perform incremental computations was developed by Lourdes del Carmen González Huesca and Yann Régis-Gianas, providing a mechanism to achieve efficiency. Incrementality as a way to propagate an input change into a corresponding output change is guided by formal change descriptions over terms and dynamic differentiation of functions. The data-changes are represented by displaceable types, a general framework to displace terms directed by types. An extension of the simply-typed lambda-calculus with differentials and partial derivatives offers a language to reason about incrementality. The basic system,
In collaboration with Paolo Giarrusso and Yufei Cai (Univ Marburg, Allemagne), Yann Régis-Gianas developed a new method to incrementalise higher-order programs using formal derivatives and static caching. A paper is in preparation.
In collaboration with David Mentré (Mitsubishi), Thibaut Girka and Yann Régis-Gianas designed and certified a new algorithm for correlating program generation: such a program is used to characterise the differences between two close programs. (Therefore, a correlating program is a good input for an incremental static analyser.) Before their work, only one algorithm existed in the literature and it was unsound. The new algorithm is sound and certified in Coq. This work has been published in the ATVA conference. Thibaut Girka has presented this work at ATVA 2015.
In collaboration with David Mentré (Mitsubishi), Thibaut Girka and Yann Régis-Gianas are developing a theoretical framework to define a notion of differential operational semantics: a general mathematical object to characterise the difference of behavior of two close programs.
Simplicial sets and their extensions as Kan complexes can serve as models of homotopy type theory. Hugo Herbelin extended his concrete type-theoretic formalisation of semi-simplicial sets to simplicial sets.
Matthieu Sozeau is working in collaboration with Beta Ziliani (PhD at MPI-Saarbrücken, now assistant professor at Cordoba, Argentina) on formalising the unification algorithm used in Coq, which is central for working with advanced type inference features like Canonical Structures. This is the first precise formalisation of all the rules of unification including the ones used for canonical structure resolution and universes. The presentation includes a careful study of the heuristics used in the existing Coq algorithms, which can be added or removed from the new implementation modularly. This work has been presented at the ICFP'15 conference .
Matthieu Sozeau cosupervised the internship of Gabriel Lewertowski with Nicolas Tabareau (Ascola team, Nantes), on the development of a library for nominal reasoning in Coq/Ssreflect. The goal of this internship was to study the use of nominal sets to ease the formalisation of programming language (meta-)theory. A library based on the Mathematical Components formalisation of finite sets and effective quotients was built, providing generic definitions of substitution and elimination operators for simple descriptions of programming language syntax as a grammar. This work was done in collaboration with Assia Mahboubi (Specfun) and Cyril Cohen (Marelle). It forms the basis for the formalisation of cubical type theory, a new type theory using name abstraction that implements an axiom-free version of Homotopy Type Theory.
Alexis Saurin (coordinator) and Yann Régis-Gianas are members of the four-year RAPIDO ANR project accepted in 2014 and starting in January 2015. RAPIDO aims at investigating the use of proof-theoretical methods to reason and program on infinite data objects. The goal of the project is to develop logical systems capturing infinite proofs (proof systems with least and greatest fixed points as well as infinitary proof systems), to design and to study programming languages for manipulating infinite data such as streams both from a syntactical and semantical point of view. Moreover, the ambition of the project is to apply the fundamental results obtained from the proof-theoretical investigations (i) to the development of software tools dedicated to the reasoning about programs computing on infinite data, e.g. stream programs (more generally coinductive programs), and (ii) to the study of properties of automata on infinite words and trees from a proof-theoretical perspective with an eye towards model-checking problems. Other permanent members of the project are Christine Tasson from PPS, David Baelde from LSV, ENS-Cachan, and Pierre Clairambault, Damien Pous and Colin Riba from LIP, ENS-Lyon.
Pierre-Louis Curien (coordinator), Yves Guiraud and Philippe Malbos are members of the three-year Focal project of the IDEX Sorbonne Paris Cité, started in June 2013. This project, giving the support for the PhD grant of Cyrille Chenavier, concerns the interactions between higher-dimensional rewriting and combinatorial algebra. This project is joint with members of the LAGA (Laboratory of Mathematics, Univ. Paris 13).
Pierre-Louis Curien (coordinator), Yves Guiraud and Philippe Malbos are members of the four-year Cathre ANR project, started in January 2014. This project, giving the support for the PhD grant of Maxime Lucas, investigates the general theory of higher-dimensional rewriting, the development of a general-purpose library for higher-dimensional rewriting, and applications in the fields of combinatorial algebra, combinatorial group theory and theoretical computer science. This project is joint with members of the LAGA (Univ. Paris 13), the LIX (École Polytechnique), the ICJ (Univ. Lyon 1 and Univ. Saint-Étienne), the I2M (Univ. Aix-Marseille) and the IMT (Univ. Toulouse 3).
Pierre-Louis Curien, Yves Guiraud (local coordinator) and Matthieu Sozeau are members of the Groupement de Recherche Topologie Algébrique, federating French researchers working on classical topics of algebraic topology and homological algebra, such as homotopy theory, group homology, K-theory, deformation theory, and on more recent interactions of topology with other themes, such as higher categories, motivic homotopy, string theory.
Matthieu Sozeau, Hugo Herbelin, Lourdes del Carmen González Huesca and Yann Régis-Gianas were members of the ANR Paral-ITP, which started in November 2011 and ended in June 2015, and aimed at preparing the Coq and Isabelle interactive theorem provers to a new generation of user interfaces thanks to massive parallelism and incremental type-checking.
Hugo Herbelin is the coordinator of the PPS site for the ANR Récré accepted in 2011, which started in January 2012 and will end mid 2016. Récré is about realisability and rewriting, with applications to proving with side-effects and concurrency.
Yann Régis-Gianas collaborates with Mitsubishi Rennes on the topic of differential semantics. This collaboration led to the CIFRE grant for the PhD of Thibaut Girka.
Yann Régis-Gianas is a member of the ANR COLIS dedicated to the verification of Linux Distribution installation scripts. This project is joint with members of VALS (Univ Paris Sud) and LIFL (Univ Lille).
Matthieu Sozeau is a member of the CoqHoTT project led by Nicolas Tabareau (Ascola team, École des Mines de Nantes), funded by an ERC Starting Grant. The PhD grant of Gabriel Lewertowski is funded by the CoqHoTT ERC.
Pierre-Louis Curien, Yves Guiraud and Philippe Malbos are collaborators of the Applied and Computational Algebraic Topology (ACAT) networking programme of the European Science Foundation.
Pierre-Louis Curien and Claudia Faggian (external collaborator) participate to the Associated Team CRECOGI (Concurrent, Resourceful and Effectful Computation, by Geometry of Interaction) between the project-team Focus (Bologna) and the University of Tokyo (principal investigators Ugo dal Lago and Ichiro Hasuo) (started in 2015).
The project-team has collaborations with University of Aarhus (Denmark), University of Oregon, University of Tokyo, University of Sovi Sad and the Institute of Mathematics of the Serbian Academy of Sciences, University of Nottingham, Institute of Advanced Study, MIT, the University of Cambridge, and Universidad Nacional de Córdoba.
Pierre-Louis Curien participates to the ANR International French-Chinese project LOCALI (Logical Approach to Novel Computational Paradigms), coordinated by Gilles Dowek.
Andrej Bauer (University of Novi Sad) visited
Akira Yoshimizu had a six-month Inria international internship (Nov 2014 - April 2015). He worked on abstract machines for the geometry of synchronisation, a variation of Girard's geometry of interaction that incorporates synchronisation and that is fit for dealing with quantum primitives added to a functional language, and coauthored a paper at LICS 2015 with Ugo Dal Lago, Claudia Faggian, and Benoît Valiron .
Yves Guiraud and Philippe Malbos organised with Samuel Mimram (LIX, École Polytechnique) the first edition of the Higher-Dimensional Rewriting and Applications (HDRA) workshop of the International Conference on Rewriting, Deduction, and Programming (RDP), held in Warsaw in June-July 2015. The second edition of HDRA will be held in June 2016 in Porto, during the new Formal Structures for Computation and Deduction (FSCD) conference.
Yann Régis-Gianas, Pierre Letouzey, Matthieu Sozeau were the organisers of the “Ecole de Printemps d'Informatique Théorique 2015” about proof of programs (cf. Highlights section).
Matthieu Sozeau co-organised and chaired the first Coq for Programming Languages (CoqPL) workshop, collocated with POPL’15 in Mumbai, India, in January 2015.
Frédéric Loulergue is member of of the program committee of the International Conference on Computational Science (ICCS'15), and is co-chair of the special session “Formal Approaches to Parallel and Distributed Systems” (4PAD) of the Euromicro PDP 2016 conference.
Pierre-Louis Curien and Hugo Herbelin were members of the steering committee of the conference Typed Lambda Calculi and Applications (TLCA) until its merge with the conference Rewriting Techniques and Application in the new conference Formal Structures for Computation and Deduction (FSCD), whose first edition will be held in Porto in 2016.
Pierre-Louis Curien is member of the steering committee of the international workshop Games for Logic and Programming Languages (GaLop).
Matthieu Sozeau is member of the steering committee of the Dependently Typed Programming international workshop (DTP).
Frédéric Loulergue is a member of the steering committee of the international symposium on High-Level Parallel Programming and Applications (HLPP).
Pierre-Louis Curien is co-editor in chief (and becomes editor in chief in January 2016) of Mathematical Structures in Computer Science.
Hugo Herbelin, Pierre Letouzey and Matthieu Sozeau were co-editors of the post-proceedings of the conference TYPES 2014. These post-proceedings were published in October 2015 as LIPICS volume 39.
The members of the team reviewed numerous papers for numerous journals and international conferences.
Pierre-Louis Curien gave an invited talk at the GALOP'15 (Games in Logic and Programming) Workshop, in London (April 11-12).
Matthieu Sozeau participated to the HoTT/UF workshop in Warsaw, Poland (June 29-30). He gave an invited lecture on “Coq support for Homotopy Type Theory”.
Alexis Saurin gave an invited talk, in the form of a distilled tutorial, at WoC'2015, affiliated to ETAPS 2015 on “Logical by need”.
Pierre-Louis Curien has been member of the “Comité de Sélection” for a professor position in mathematics at the University Paris Diderot.
Pierre-Louis Curien is a member of the Scientific Committee of the CIRM (since June 2013).
Amina Doumane presented at CSL (sep 2015).
Matthieu Sozeau has presented at ICFP 2015.
Cyprien Mangin has presented at LFMTP 2015.
Yann Régis-Gianas has presented at Formalize 2015.
Matthieu Sozeau gave a talk on the development of Coq at the CoqPL workshop in Mumbai (Jan 2015).
Amina Doumane gave a talk at GALOP'15 on Least and Greastest Fixed Points in Ludics.
Étienne Miquey gave a talk at GALOP'15 Workshop on realisability games for arithmetical formulæ , and a talk on a classical sequent calculus with dependent types at TYPES'15 .
Hugo Herbelin gave a talk at TYPES'15 on a proof of Gödel's completeness using side-effects.
Hugo Herbelin gave a talk at the workshop HoTT-UF15 on an extension of his construction of semi-simplicial types to simplicial types.
Pierre-Louis Curien and Jovana Obradović gave talks at the workshop Logic and Applications 2015 http://
Cyrille Chenavier and Jovana Obradović gave talks at the workshop HDRA, Warsaw (cf. Scientific events organisation).
Yves Guiraud gave talks on various aspects of Squier's theory and its applications in algebra at the LCR seminar (Jan. 2015, LIPN, Univ. Paris 13), the Logique et Interactions seminar (Nov. 2015, I2M, Univ. Aix-Marseille) and the Chocola monthly meeting (Dec. 2015, ENS Lyon).
Étienne Miquey gave talks on the classical realisability and arithmetical formulæ at the Chocola monthly meeting (May 2015, ENS de Lyon) and the Logique et Intéractions seminar (Jul. 2015, I2M, Univ. Aix-Marseille).
Matthieu Sozeau gave a talk on a new unification algorithm for Coq at the MIT seminar in Boston (April 2015).
Jean-Jacques Lévy gave a talk about Readable proofs of Depth First Search in graphs using Why3, at VALS seminar, Plateau de Saclay (December), and a talk about The cost of usage in the lambda-calculus, at Deducteam seminar, Inria (April), and Journées Chocola at ENS-Lyon (November).
Matthieu Sozeau attended POPL'15, RDP'15, LFMTP'15 and ICFP'15.
Étienne Miquey attended GALOP'15, the “École Jeunes Chercheurs 2015” of the GDR-IM, TYPES'15 and the EPIT spring school.
Hugo Herbelin attended TYPES'15, RDP'15 and ITP'15.
Pierre-Marie Pédrot attended JFLA'15 and LICS'15.
Hugo Herbelin, Pierre Letouzey, Pierre-Marie Pédrot and Matthieu Sozeau attended the first Coq coding sprint as developers communicating their expertise to the participants. Cyprien Mangin attended as participant.
This is one of the working groups of PPS, jointly organised by Hugo Herbelin and Paul-André Melliès, since September 2009. It is held weekly. Matthieu Sozeau joined the organisation in 2014.
The speakers in 2015 were Danko Ilik (Eliminating control operators from classical realisability), Ali Assaf (Tarski and Coq), Maxime Dénès (Coqonut: a formally verified JIT compiler for Coq), Tomer Libal (Regularity in higher-order unification), Andrew Polonsky (Defining equality by induction on type structure), Sergei Soloviev (Isomorphism of Dependent Products in Type Theory: Specifics and Scientific Context), Noam Zeilberger (Functors are Type Refinement Systems), Gabriel Scherer (Which types have a unique inhabitant?), Andrej Bauer (A sound and complete language for type theory with equality reflection), Nicolas Tabareau (Vers un analogue de l'axiome de Giraud en HoTT), Alexandre Miquel (An axiomatic presentation of forcing, or: forcing for the dummies), Danko Ilik (The exp-log normal form of formulas).
Pierre-Louis Curien and Yves Guiraud, together with Cyrille Chenavier, Maxime Lucas and Jovana Obradović actively participate in this weekly working group of PPS, organised by François Métayer since 2009.
Master: Pierre-Louis Curien teaches in the course Models of programming languages: domains, categories, games of the MPRI (together with Thomas Ehrhard and Paul-André Melliès).
Alexis Saurin chairs LMFI M2 since September 2013.
Yann Régis-Gianas took part in the MPRI course entitled “Type systems”: he gave a 12-hour course about generalised algebraic data types, higher-order Hoare logic and dependently typed programming.
In addition to his regular teaching duties for the Computer Science department of Paris 7 (M1 and M2 Pro), Pierre Letouzey taught 2 courses in the LMFI M2 in 2015 : initiation to formal proofs on computer (24h) and models of programming (24h).
Matthieu Sozeau teaches in the MPRI course on Advanced uses of Proof Assistants (12 hours + a project), together with Assia Mahboubi (Inria SpecFun).
Licence and Master: Lourdes González had a temporary research and teaching position (A.T.E.R) at University Paris 7 for the academic year 2014–2015. During the second semester (Jan - Aug 2015) she was in charge of TP (Travaux pratiques, 44 hours) on the subjects “Projet Informatique” (L2) and “Introduction aux environnements de dévelopement et génie logiciel” (L3). During the second semester (Jan - Aug 2015) she was in charge of TP (Travaux pratiques, 24 hours) on the subject “Programmation système” (M1).
Licence: Étienne Miquey was in charge of practical sessions in the course “Analyse de données structurées” (36h, L2) and “Programmation Orientée Objet et Interface Graphique” (60h, L2) at University Paris 7.
MOOC: In collaboration with Roberto DiCosmo and Ralf Treinen, Yann Régis-Gianas has created a MOOC about the OCaml programming language.
Internship: Yann Régis-Gianas has supervised the M2 internships of Béatrice Carré and Jacques Pascal Deplaix, and the M1 internships of Lélio Brun and of Loïc Runarvot.
Internship: Matthieu Sozeau has supervised the M2 internships of Gabriel Lewertowsky (with Nicolas Tabareau), who is now starting a PhD under their joint supervision, and of Cyprien Mangin, who is starting a PhD under the supervision of Bruno Barras and Matthieu Sozeau.
Internship: Yves Guiraud has supervised the M2 internship of Pierre Giraud.
PhD in progress: Guillaume Claret, supervised by Hugo Herbelin and Yann Régis-Gianas.
PhD in progress: Thibaut Girka, supervised by Roberto DiCosmo and Yann Régis-Gianas.
PhD in progress: Cyrille Chenavier, supervised by Yves Guiraud and Philippe Malbos.
PhD in progress: Maxime Lucas, supervised by Yves Guiraud and Pierre-Louis Curien.
PhD in progress: Jovana Obradović, supervised by Pierre-Louis Curien.
PhD in progress: Amina Doumane, supervised by Alexis Saurin, David Baelde and Pierre-Louis Curien.
PhD in progress: Étienne Miquey, supervised by Hugo Herbelin and Alexandre Miquel.
Pierre-Marie Pédrot and Lourdes González defended their PhD in 2015.
PhD Juries: Pierre-Louis Curien has been reviewer (rapporteur) for the PhD thesis of Fabio Zanasi (Lyon, October 2015).
Examinator tasks: In June and July 2015, Pierre Letouzey has participated to the jury of the competitive examination for the entrance to Ecole Normale Supérieure (ENS Ulm). More precisely, he has been responsible for the oral test of computer science and has been examiner for about forty candidates, one hour each.
Étienne Miquey took part in the animation of several activities about mathematics in primary and high schools of Paris.
Yann Régis-Gianas co-organised the “Journée Francilienne de Programmation”, a programming contest between undergraduate students of three universities of Paris (UPD, UPMC, UPS). Yann Régis-Gianas organised, and Étienne Miquey took part in the animation of the (computer science part of the) “Fête de la Science” event at the University Paris 7. Yann Régis-Gianas gave several presentations about “What is programming?” in primary and high schools of Paris.
Jean-Jacques Lévy gave a presentation about “Science et Informatique” at the primary school le Coteau, Vaucresson (November).