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