Specifying reversibility with TLA+ - Kapus, Tatjana (Journal of logical and algebraic methods in programming, 2020)
In the past, action-based, process-algebraic formalisms for the description and analysis of concurrent reversible computations were mainly developed. In this paper, we present a state-based approach to the specification of concurrent systems in which forward-executed actions may either be executed in reverse in a causal-consistent uncontrolled fashion or are irreversible. The basic underlying system semantics is assumed to be a set of possible infinite sequences of states with actions defined as state transitions, which allows us to specify reversibility with the specification language TLA+ and to use its tool support for specification editing and verification. We provide definitions of TLA+ operators for the specification of causal-consistent reversibility and irreversible actions in a uniform way. The reversibility is achieved by remembering as much computation history as necessary with regard to the irreversible actions. The applicability of the approach is illustrated with examples, including the modelling of the influence of the Raf kinase inhibitor protein on the extracellular signal-regulated kinase signalling pathway and parameterised specification of a system of dining philosophers.