Section: New Results

Probabilistic Systems and Resource Control

Participants : Martin Avanzini, Mario Bravetti, Raphaelle Crubillé, Ugo Dal Lago, Francesco Gavazzo, Davide Sangiorgi, Gabriele Vanoni, Akira Yoshimizu.

Probabilistic Rewriting and Computation

In Focus, we are interested in studying probabilistic higher-order programming languages and, more generally, the fundamental properties of probabilistic computation when placed in an interactive scenario, for instance concurrency. One of the most basic but nevertheless desirable properties of programs is of course termination. Termination can be seen as a minimal guarantee about the time complexity of the underlying program. When probabilistic choice comes into play, termination can be defined by stipulating that a program is terminating if its probability of convergence is 1, this way giving rise to the notion of almost sure termination. Alternatively, a probabilistic program is said to be positively almost surely terminating if its average runtime is finite. The latter condition easily implies the former. Termination, already undecidable for deterministic (universal) programming languages, remains so in the presence of probabilistic choice, even becoming provably harder.

The Focus team has been the first in advocating the use of types to guarantee probabilistic termination, in the form of a sized-type system. In 2018, Focus has produced another work along these lines, based on intersection types [23]. In the usual, pure, lambda-calculus, various notions of terminating terms can be characterised by way of intersection types, in such a way that the class of terminating terms coincides with the one of typable terms. The presence of probabilistic choices together with the aforementioned recursion theoretical limitations prevents the same scenario to happen in probabilistic lambda-calculi, i.e., lambda-calculi endowed with some form of probabilistic choice. Nevertheless, Breuvart and Dal Lago proved that capturing the probability of termination in an approximate way by means of intersection types is indeed possible [23].

In 2018, we have also been active in laying out a novel foundation for probabilistic abstract reduction systems (probabilistic ARSs). ARSs constitute a general framework to study fundamental properties of computations, such as termination or confluence. These properties are intricately related to the well-definedness of functions, and consequently, play key roles in the formal study of programming languages. Specifically, in collaboration with Yamada, Avanzini and Dal Lago [20] introduced a new notion of probabilistic computation by means of a reduction relation over multidistributions. This relation enables the seamless combination of non-deterministic and probabilistic choice, thereby, considerably simplifying earlier notions of reduction semantics by means of schedulers and Markov chains. On top of this, a partially flawed characterisation of positive almost sure termination by means of Lyapunov ranking functions, initially due to Bournez and Garnier, could be clarified. Moreover, the interpretation method, which is maybe the most fundamental technique to investigate termination and runtime complexity of term rewrite systems, could be lifted to probabilistic systems.

Finally, we have been able to propose a novel and natural way of giving the reduction semantics for Markovian process algebras [13], a model of concurrent interaction which is particularly appropriate to the performance analysis of concurrent systems.

Complexity Analysis of Functional Programs

A research topic which lies at the core of Focus since its inception is the complexity analysis of functional programs, through tools like implicit complexity and linear logic. During 2018, we have published an extended version of a paper in which we proved that the most general form of ramified recursion, a key tool in term rewriting, remains sound for polynomial time computation, although requiring some nontrivial machinery based on sharing and memoisation [11]. We have also started to investigate along a new and promising research direction concerning the efficient implementation of functional programming languages through randomised strategies. We have shown that even the simplest strategy is nontrivial for the pure, untyped lambda-calculus [25], being in certain cases more efficient than both innermost and outermost strategies.

Reasoning About Effectful and Concurrent Programs

Pure functional programs are relatively easy to reason about due to referential transparency, a property inherent to functional programs that renders their semantics close to the one of mathematical expressions. Quite recently, functional programming has found its way into main stream programming languages. Thus functional programming is combined with various forms of computational effects, such as exceptions, state, or even nondeterministic choice. Since a couple of years, we are interested in studying the impact of effects on the metatheory of functional programming languages, with an eye to coinductive methodologies akin to those employed in concurrency, coinduction in primis. In 2018, Francesco Gavazzo has extended some of our previous work about a generic approach to behavioural equivalences for higher-order effectual languages to metrics, themselves a much more natural way to compare programs in many cases (e.g., in the presence of probabilistic choice). His contribution has been published in the top conference in logic in computer science in 2018 [29].