Skip to main content

Decentralized Asynchronous Crash-Resilient Runtime Verification

Publication Type
Year of Publication
Conference/Journal Name
Journal of the ACM
Runtime verification is a lightweight method for monitoring the formal specification of a system during its execution. It has recently been shown that a given state predicate can be monitored consistently by a set of crash-prone asynchronous distributed monitors observing the system, only if each monitor can emit verdicts taken from a large enough finite set. We revisit this impossibility result in the concrete context of linear-time logic (LTL) semantics for runtime verification, that is, when the correctness of the system is specified by an LTL formula on its execution traces. First, we show that monitors synthesized based on the 4-valued semantics of LTL (RV-LTL) may result in inconsistent distributed monitoring, even for some simple LTL formulas. More generally, given any LTL formula 𝜑, we relate the number of different verdicts required by the monitors for consistently monitoring 𝜑, with a specific structural characteristic of 𝜑 called its alternation number. Specifically, we show that, for every 𝑘 ≥ 0, there is an LTL formula 𝜑 with alternation number 𝑘 that cannot be verified at runtime by distributed monitors emitting verdicts from a set of cardinality smaller than 𝑘 + 1. On the positive side, we define a family of logics, called distributed LTL (abbreviated as DLTL), parameterized by 𝑘 ≥ 0, which refines RV-LTL by incorporating 2𝑘 + 4 truth values. Our main contribution is to show that, for every 𝑘 ≥ 0, every LTL formula 𝜑 with alternation number 𝑘 can be consistently monitored by distributed monitors, each running an automaton based on a (2⌈𝑘/2⌉ + 4)-valued logic taken from the DLTL family.