EN FR
EN FR


Section: New Results

Models for Reliability

Participants : Ivan Lanese, Doriana Medic.

Reversibility

We have continued the study of reversibility started in the past years. First, we continued to study reversibility in the context of the Erlang programming language. In particular, we devised a technique to record a program execution and replay it [37] inside the causal-consistent reversible debugger for Erlang we developed in the last years. More precisely, we may not replay the exact same execution, but any execution which is causal-consistent to it. We proved that this is enough to replay misbehaviours, hence to look for the bugs causing them. Second, we compared [48] various approaches to causal-consistent reversibility in CCS and π-calculus. In CCS, we showed that the two main approaches for causal-consistent reversibility, namely the ones of RCCS  [51] and of CCSk  [55] give rise to isomorphic LTSs (up to some structural rules). In π-calculus, we showed that one can define a causal semantics for π-calculus parametric on the data structure used to track extruded names, and that different instances capture causal semantics from the literature. All such semantics can be used to define (different) causal-consistent reversible semantics. As a final contribution, we studied reversibility in the context of Petri nets [41]. There, we do not considered causal-consistent reversibility, but a notion of local reversibility typical of Petri nets. In particular, we say that a transition is reversible if one can add a set of effect-reverses (an effect-reverse, if it can trigger, undoes the effect of the transition) to undo it in each marking reachable by it, without changing the set of reachable markings. We showed that, contrarily to what happens in bounded nets, transition reversibility is not decidable in general unbounded nets. It is however decidable in some significant subclasses of Petri nets, in particular all transitions of cyclic nets (nets where the initial marking is reachable from any state) are reversible. Finally, we show how to restructure nets by adding new places so to make their transitions reversible without altering their behaviour.