Section: New Results
Verification techniques for extensional properties
Participants : Daniel Hirschkoff, Elena Giachino, Michael Lienhardt, Cosimo Laneve, Jean-Marie Madiot, Davide Sangiorgi.
Extensional refers to properties that have to do with behavioural descriptions of a system (i.e., how a system looks like from the outside). Examples of such properties include classical functional correctness and deadlock freedom. Related to techniques for extensional properties are the issues of decidability (the problem of establishing whether certain properties are computationally feasable).
Coinductive techniques
Coinductive techniques, notably those based on bisimulation,
are widely used in concurrency theory
to reason about systems of processes.
The bisimulation proof method can be enhanced by employing
'bisimulations up-to' techniques. A comprehensive theory of such
enhancements has been developed for first-order (i.e., CCS-like)
LTSs and bisimilarity, based on the
notion of compatible function for fixed-point theory. We have transported
this theory onto languages whose bisimilarity and LTS go beyond those
of first-order models [40] .
The approach consists in exhibiting fully
abstract translations of the more sophisticated LTSs and
bisimilarities onto the first-order ones. This allows us to reuse
directly the large corpus of up-to techniques that are available on
first-order LTSs.
We have investigated the method on the
In [20] , mostly a tutorial paper, a few forms of bisimulation and of coinductive techniques that have been proposed for higher-order languages are discussed, beginning with the pure lambda-calculus and then moving to extensions of it, notably those with non-determinism and probabilities.
Deadlock detection
Deadlock detection in concurrent programs that create
networks with an arbitrary number of nodes is extremely complex and
solutions either give imprecise answers or do not scale. To enable
the analysis of such programs, we have
studied an algorithm for
detecting deadlocks
[37] , [35] ,
in a basic model featuring recursion and fresh
name generation, called Lam. We then have designed
a type system that associates Lams to processes.
As a byproduct of these
two techniques, we have an algorithm that is more powerful than
previous ones and that can be easily integrated into the current release
of TyPiCal, a type-based analyser for
Expressiveness and decidability in actor-like systems
Refining work in previous years, we have studied [15] the expressive power of an actor-like language, featuring concurrent objects and asynchronous message-passing. We have identified the presence/absence of fields as a crucial feature: the dynamic creation of names in combination with fields gives rise to Turing completeness. On the other hand, restricting to stateless actors gives rise to systems for which properties such as termination are decidable. This decidability result still holds for actors with states when the number of actors is bounded and the state is read-only.