Computer-aided verification of coordinating processes: the automata-theoretic approach
Computer-aided verification of coordinating processes: the automata-theoretic approach
Exploiting symmetry in temporal logic model checking
Formal Methods in System Design - Special issue on symmetry in automatic verification
Formal Methods in System Design - Special issue on symmetry in automatic verification
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A New Approach for the Verification of Cache Coherence Protocols
IEEE Transactions on Parallel and Distributed Systems
Bebop: A Symbolic Model Checker for Boolean Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
An improvement in formal verification
Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII
Combining Partial Order and Symmetry Reductions
TACAS '97 Proceedings of the Third International Workshop on Tools and Algorithms for Construction and Analysis of Systems
Parameterized Verification of Multithreaded Software Libraries
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
From Asymmetry to Full Symmetry: New Techniques for Symmetry Reduction in Model Checking
CHARME '99 Proceedings of the 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Automatic Verification of Parameterized Cache Coherence Protocols
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Liveness with (0, 1, infty)-Counter Abstraction
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
LICS '00 Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science
Race checking by context inference
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Dynamic partial-order reduction for model checking software
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Combining symmetry reduction and under-approximation for symbolic model checking
Formal Methods in System Design
Thorough static analysis of device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Verification of Boolean programs with unbounded thread creation
Theoretical Computer Science
Model checking concurrent linux device drivers
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Heap Decomposition for Concurrent Shape Analysis
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Symbolic Context-Bounded Analysis of Multithreaded Java Programs
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Symbolic Counter Abstraction for Concurrent Software
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Language-Level Symmetry Reduction for Probabilistic Model Checking
QEST '09 Proceedings of the 2009 Sixth International Conference on the Quantitative Evaluation of Systems
Efficient Reduction Techniques for Systems with Many Components
Electronic Notes in Theoretical Computer Science (ENTCS)
Sviss: symbolic verification of symmetric 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
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
SATABS: SAT-Based predicate abstraction for ANSI-C
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Symbolic model checking for asynchronous boolean programs
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Identification and counter abstraction for full virtual symmetry
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Exact and approximate strategies for symmetry reduction in model checking
FM'06 Proceedings of the 14th international conference on Formal Methods
Symmetry reduction for probabilistic model checking using generic representatives
ATVA'06 Proceedings of the 4th international conference on Automated Technology for Verification and Analysis
Symmetry-aware predicate abstraction for shared-variable concurrent programs
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
SatAbs: a bit-precise verifier for C programs
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Counterexample-guided abstraction refinement for symmetric concurrent programs
Formal Methods in System Design
CSP-based counter abstraction for systems with node identifiers
Science of Computer Programming
Hi-index | 0.00 |
The trend towards multi-core computing has made concurrent software an important target of computer-aided verification. Unfortunately, Model Checkers for such software suffer tremendously from combinatorial state space explosion. We show how to apply counter abstraction to real-world concurrent programs to factor out redundancy due to thread replication. The traditional global state representation as a vector of local states is replaced by a vector of thread counters, one per local state. In practice, straightforward implementations of this idea are unfavorably sensitive to the number of local states. We present a novel symbolic exploration algorithm that avoids this problem by carefully scheduling which counters to track at any moment during the search. We have carried out experiments on Boolean programs, an abstraction promoted by the success of the Slam project. The experiments give evidence of the applicability of our method to realistic programs, and of the often huge savings obtained in comparison to plain symbolic state space exploration, and to exploration optimized by partial-order methods. To our knowledge, our tool marks the first implementation of counter abstraction to programs with non-trivial local state spaces, resulting in a Model Checker for concurrent Boolean programs that promises true scalability.