EN FR
EN FR


Section: New Results

Effects in proof theory and programming

Participants : Hugo Herbelin, Étienne Miquey, Yann Régis-Gianas, Alexis Saurin.

A classical sequent calculus with dependent types

Dependent types are a key feature of type systems, typically used in the context of both richly-typed programming languages and proof assistants. Control operators, which are connected with classical logic along the proof-as-program correspondence, are known to misbehave in the presence of dependent types [14], unless dependencies are restricted to values. As a step in his work to develop a sequent-calculus version of Hugo Herbelin's dPAω system [16], Étienne Miquey proposed a sequent calculus with classical logic and dependent types. His calculus—named dL—is an extension of the μμ˜-calculus with a syntactical restriction of dependent types to the fragment of negative-elimination free proofs. The corresponding type system includes a list of explicit dependencies, which maintains type safety. He showed that a continuation-passing style translation can be derived by adding delimited continuations, and how a chain of dependencies can be related to a manipulation of the return type of these continuations. This work has been presented at ESOP 2017 [40].

Normalisation and realisability interpretation of call-by-need with control

The call-by-need evaluation strategy is an evaluation strategy of the λ-calculus which evaluates arguments of functions only when needed, and, when needed, shares their evaluations across all places where the argument is needed. The call- by-need evaluation is for instance at the heart of a functional programming language such as Haskell. A continuation-passing-style semantics for call-by-need, de facto giving a semantics to control operators, was proposed in the 90s by Okasaki, Lee and Tarditi. However, this semantics does not ensure normalisation of simply-typed call-by-need evaluation, thus failing to ensure a property which holds in the simply-typed call-by-name and call-by-value cases. Étienne Miquey and Hugo Herbelin have been considering a call-by-need λ-calculus due to Ariola et al. for which they proved the normalisation by means of a realisability interpretation. Incidentally, the variant of realisability they proposed allows to define realisers as pairs of a term and a substitution. This paves the way to give interpretation of calculus with global and mutable memory. This work has been accepted for publication at the FOSSACS 2018 conference.

A sequent calculus with dependent types for classical arithmetic

In 2012, Hugo Herbelin showed that classical arithmetic in finite types extended with strong elimination of existential quantification proves the axiom of dependent choice. Getting classical logic and choice together without being inconsistent is made possible by: (1) constraining strong elimination of existential quantification to proofs that are essentially intuitionistic; (2) turning countable universal quantification into an infinite conjunction of classical proofs, which are 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.

Relying on its sequent calculus with dependent types and its realisability interpretation for call-by-need with control, Étienne Miquey proposed in his thesis a sequent calculus with the same computational features [25]. His calculus therefore also allows for the direct definition of proof terms for the axioms of countable and dependent choices. The proofs of normalisation and soundness are made through a realisability interpretation of the calculus, which is obtained by using Danvy's methodology of semantics artifacts.

Reverse mathematics of Gödel's completeness theorem

Charlotte Barot, under the supervision of Hugo Herbelin, studied the relative intuitionistic strength of Gödel's completeness theorem, the ultrafilter lemma, and different forms of the Fan Theorem, as a way to transfer computational contents of proofs from one to the other theorems.

A theory of effects and resources

Arnaud Spiwack, in collaboration with Jean-Philippe Bernardy, Mathieu Boespflug, Ryan R. Newton and Simon Peyton-Jones, developed an extension of the type system of Haskell with linear types The work is to be presented at POPL'18.

In collaboration with Thomas Letan (Agence Nationale pour la Sécurité des Systèmes Informatiques), Yann Régis-Gianas studied how free monads can be used to develop modular implementations and proofs of effectful systems. This proof technique is applied to the formal study of architectural attacks on IBM PC like architectures.

Classical realisability and implicative algebras

Étienne Miquey has been working with Alexandre Miquel in Montevideo on the topic of implicative algebras. Implicative algebras are an algebraisation of the structure needed to develop a realisability model. In particular, they give rise to the usual ordered combinatory algebras and thus to the triposes used to model classical realisability. An implicative algebra is given by an implicative structure (which consists of a complete semi-lattice with a binary operation ) together with a separator containing the element interpreted as true in the structure. Following the work of Guillaume Munch-Maccagnoni on focalisation and classical realisability, Étienne Miquey gave alternative presentations within structures based on other connectives rather than , namely disjunctive algebras (based on negation, “par”) and conjunctive algebras (negation, tensor). Such connectives correspond to the decomposition of the arrow according to the strategy of evaluation (call-by-name/call-by-value). In particular, he showed that disjunctive algebras were particular cases of implicative algebras; and that conjunctive algebras can be obtained by duality from disjunctive algebras. Besides, Étienne Miquey has formalised the theory of implicative algebras (resp. disjunctive, conjunctive) in Coq.