  We present the first decentralized algorithm for detecting predicates over
continuous-time signals under partial synchrony. A distributed cyber-physical
system (CPS) consists of a network of agents, each of which measures (or
computes) a continuous-time signal. Examples include distributed industrial
controllers connected over wireless networks and connected vehicles in traffic.
The safety requirements of such CPS, expressed as logical predicates, must be
monitored at runtime. This monitoring faces three challenges: first, every
agent only knows its own signal, whereas the safety requirement is global and
carries over multiple signals. Second, the agents' local clocks drift from each
other, so they do not even agree on the time. Thus, it is not clear which
signal values are actually synchronous to evaluate the safety predicate. Third,
CPS signals are continuous-time so there are potentially uncountably many
safety violations to be reported. In this paper, we present the first
decentralized algorithm for detecting conjunctive predicates in this setup. Our
algorithm returns all possible violations of the predicate, which is important
for eliminating bugs from distributed systems regardless of actual clock drift.
We prove that this detection algorithm is in the same complexity class as the
detector for discrete systems. We implement our detector and validate it
experimentally.
