1,184 research outputs found
Parallel Algorithms for Equilevel Predicates
We define a new class of predicates called equilevel predicates on a
distributive lattice which eases the analysis of parallel algorithms. Many
combinatorial problems such as the vertex cover problem, the bipartite matching
problem, and the minimum spanning tree problem can be modeled as detecting an
equilevel predicate. The problem of detecting an equilevel problem is
NP-complete, but equilevel predicates with the helpful property can be detected
in polynomial time in an online manner. An equilevel predicate has the helpful
property with a polynomial time algorithm if the algorithm can return a
nonempty set of indices such that advancing on any of them can be used to
detect the predicate. Furthermore, the refined independently helpful property
allows online parallel detection of such predicates in NC. When the
independently helpful property holds, advancing on all the specified indices in
parallel can be used to detect the predicate in polylogarithmic time.
We also define a special class of equilevel predicates called solitary
predicates. Unless NP = RP, this class of predicate also does not admit
efficient algorithms. Earlier work has shown that solitary predicates with the
efficient advancement can be detected in polynomial time. We introduce two
properties called the antimonotone advancement and the efficient rejection
which yield the detection of solitary predicates in NC. Finally, we identify
the minimum spanning tree, the shortest path, and the conjunctive predicate
detection as problems satisfying such properties, giving alternative
certifications of their NC memberships as a result.Comment: To appear in ICDCN 202
Invariant Synthesis for Incomplete Verification Engines
We propose a framework for synthesizing inductive invariants for incomplete
verification engines, which soundly reduce logical problems in undecidable
theories to decidable theories. Our framework is based on the counter-example
guided inductive synthesis principle (CEGIS) and allows verification engines to
communicate non-provability information to guide invariant synthesis. We show
precisely how the verification engine can compute such non-provability
information and how to build effective learning algorithms when invariants are
expressed as Boolean combinations of a fixed set of predicates. Moreover, we
evaluate our framework in two verification settings, one in which verification
engines need to handle quantified formulas and one in which verification
engines have to reason about heap properties expressed in an expressive but
undecidable separation logic. Our experiments show that our invariant synthesis
framework based on non-provability information can both effectively synthesize
inductive invariants and adequately strengthen contracts across a large suite
of programs
Monitoring Partially Synchronous Distributed Systems using SMT Solvers
In this paper, we discuss the feasibility of monitoring partially synchronous
distributed systems to detect latent bugs, i.e., errors caused by concurrency
and race conditions among concurrent processes. We present a monitoring
framework where we model both system constraints and latent bugs as
Satisfiability Modulo Theories (SMT) formulas, and we detect the presence of
latent bugs using an SMT solver. We demonstrate the feasibility of our
framework using both synthetic applications where latent bugs occur at any time
with random probability and an application involving exclusive access to a
shared resource with a subtle timing bug. We illustrate how the time required
for verification is affected by parameters such as communication frequency,
latency, and clock skew. Our results show that our framework can be used for
real-life applications, and because our framework uses SMT solvers, the range
of appropriate applications will increase as these solvers become more
efficient over time.Comment: Technical Report corresponding to the paper accepted at Runtime
Verification (RV) 201
- …