Théorie des types et réalisabilité
Mercredi 16 décembre 2020, 14 heures 30, Online (https://bbb-front.math.univ-paris-diderot.fr/recherche/hug-a7x-lga-hy7)
Pierre Pradic (University of Oxford) Implicit automata in λ-calculi

The talk will be based on joint work with Lê Thành Dũng (Tito) Nguyễn (https://arxiv.org/pdf/2008.01050.pdf).

This work is part of an exploration of the expressiveness of the simply-typed λ-calculus (STLC) and related substructural variants (linear, affine, planar) using Church encodings of datatypes. More specifically, we are interested in the connection with automata theory for string transductions and languages.

After introducing and motivating the problems using Hillebrand and Kanellakis' result stating that the classes of STLC-definable and regular languages coincide, I will discuss refinements we obtained for linear λ-calculi. I will focus on a correspondence with functions computed by copyless streaming string transducers (SSTs), and particularly on the ingredients of a completeness proof translating λ-terms to transducers. This will involve the notions of categorical automata as introduced by Colcombet and Petrisan, categorical models of linear logic and free completions, as well as automata-theoretic techniques related to the composition and determinization of SSTs.

Théorie des types et réalisabilité
Lundi 14 décembre 2020, 14 heures, Online (https://bbb-front.math.univ-paris-diderot.fr/recherche/hug-a7x-lga-hy7)
Armaël Guéneau (Aarhus University) Mechanized Program Verification on a Capability Machine in the Presence of Untrusted Code

A capability machine is a kind of CPU which supports fine-grained privilege separation using capabilities (a pointer carrying a certain amount of authority). In this talk, I will present a methodology for verifying the functional correctness of capability machine programs that call (or are called by) unknown and potentially malicious code. The key aspects to the approach is a program logic for reasoning about known code, and a logical relation which provides a specification for unknown code. I will then hint at how we extend this methodology to reason about a secure calling convention enforcing a secure stack policy and the well-bracketedness of function calls.

This work has been entirely mechanized in Coq using the Iris framework:

https://github.com/logsem/cerise
https://github.com/logsem/cerise-stack