Avoiding the state explosion problem in temporal logic model checking
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Predicate calculus and program semantics
Predicate calculus and program semantics
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
Concurrency verification: introduction to compositional and noncompositional methods
Concurrency verification: introduction to compositional and noncompositional methods
Automatic Deductive Verification with Invisible Invariants
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Specification and verification of concurrent systems in CESAR
Proceedings of the 5th Colloquium on International Symposium on Programming
A Compositional Rule for Hardware Design Refinement
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
A Platform for Combining Deductive with Algorithmic Verification
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
Efficient Verification with BDDs using Implicitly Conjoined Invariants
CAV '93 Proceedings of the 5th International Conference on Computer Aided Verification
Assumption Generation for Software Component Verification
Proceedings of the 17th IEEE international conference on Automated software engineering
Counterexample-guided abstraction refinement for symbolic model checking
Journal of the ACM (JACM)
Race checking by context inference
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Modular verification of multithreaded programs
Theoretical Computer Science
Breaking up is hard to do: an investigation of decomposition for assume-guarantee reasoning
Proceedings of the 2006 international symposium on Software testing and analysis
Proving the Correctness of Multiprocess Programs
IEEE Transactions on Software Engineering
Proofs of Networks of Processes
IEEE Transactions on Software Engineering
SPIN'03 Proceedings of the 10th international conference on Model checking software
Automated assume-guarantee reasoning for simulation conformance
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Learning-based assume-guarantee verification (tool paper)
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Local Proofs for Linear-Time Properties of Concurrent Programs
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Going with the flow: parameterized verification using message flows
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Proving ptolemy right: the environment abstraction framework for model checking concurrent systems
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Thread-modular counterexample-guided abstraction refinement
SAS'10 Proceedings of the 17th international conference on Static analysis
Parallelizing a symbolic compositional model-checking algorithm
HVC'10 Proceedings of the 6th international conference on Hardware and software: verification and testing
Compositionality entails sequentializability
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
A dash of fairness for compositional reasoning
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
SPLIT: a compositional LTL verifier
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
On the strength of owicki-gries for resources
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Local symmetry and compositional verification
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Compositional termination proofs for multi-threaded programs
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Hi-index | 0.01 |
This paper explores the concept of locality in proofs of global safety properties of asynchronously composed, multi-process programs. Model checking on the full state space is often infeasible due to state explosion. A local proof, in contrast, is a collection of per-process invariants, which together imply the global safety property. Local proofs can be compact: but a central problem is that local reasoning is incomplete. In this paper, we present a "completion" algorithm, which gradually exposes facts about the internal state of components, until either a local proof or a real error is discovered. Experiments show that local reasoning can have significantly better performance over a reachability computation. Moreover, for some parameterized protocols, a local proof can be used to show correctness for all instances.