We present a general protocol for detecting whether a property holds in a distributed system, where the property is a member of a subclass of stable properties we call the locally stable properties. Our protocol is based on a decentralized method for constructing a maximal subset of the local states that are mutually consistent, which in turn is based on a weakened version pf vector time stamps. The structure of our protocol lends itself to refinement, and we demonstrate its utility by deriving some specialized property-detection protocols, including two previously-known protocols that are known to be efficient. Note that local events, send events, and/or receive events can be relevant, depending on how _ is formulated. Our protocol is based on a variant of vector clocks [Mat89]. In the usual definition of a vector clock V, each event ei has an n-component vector The components of V(ei) are: is the number of events that Pi has executed up to and including e_. 1Some authors define an invariant property to be one that is valid in all states of the system. • V(el) [j], j # i is the number of events pj has executed that causally t precede e i. As an example, Figure 1 shows a space-time diagram of a two-process system with the events labeled by vector clocks. ,0? %,?  _= e_ and ej are palrwise consistent
A more recent work proposed a method for detecting locally stable properties by constructing substates of a system REF .