Inevitable Global States: a Concept to Detect Unstable Properties of Distributed Computations in an Observer Independent Way
Abstract
When analyzing, testing or debugging a distributed program, an important question one has to answer is: ``Does this computation satisfy a given property~?''. We are interested in this paper in answering such a question when the property is formulated as a general predicate on a global state of the computation, and more specifically when the property is unstable (i.e. once true the associated predicate is not guaranteed to remain true forever). Notions such as abstraction level with respect to a predicate (user's level) and weak precedence between local states are first introduced. Then an abstraction called _inevitable_global_states_ is defined, and a necessary and sufficient condition to detect such states is provided. With this abstraction a precise meaning is given to the previous question (independently of any particular perception one can have of the distributed computation). A detection algorithm for this question is finally presented.