On the analysis of interacting pushdown systems
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verification of well-formed communicating recursive state machines
Theoretical Computer Science
Conflict Analysis of Programs with Procedures, Dynamic Thread Creation, and Monitors
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Predecessor Sets of Dynamic Pushdown Networks with Tree-Regular Constraints
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
SVtL: system verification through logic tool support for verifying sliced hierarchical statecharts
WADT'06 Proceedings of the 18th international conference on Recent trends in algebraic development techniques
An automata-theoretic approach to infinite-state systems
Time for verification
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Reasoning about threads with bounded lock chains
CONCUR'11 Proceedings of the 22nd international conference on Concurrency theory
Reachability under contextual locking
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Hi-index | 0.00 |
In this paper, we propose a new technique for the verification of concurrent multi-threaded programs. In general, the problem is known to be undecidable even for programs with just two threads [1]. However, we exploit the observation that, in practice, a large fraction of concurrent programs can either be modeled as Pushdown Systems communicating solely using locks or can be reduced to such systems by applying standard abstract interpretation techniques or by exploiting separation of data from control. Moreover, standard programming practice guidelines typically recommend that programs use locks in a nested fashion. In fact, in languages like Java and C#, locks are guaranteed to be nested. For such a framework, we show, by using the new concept of Lock Constrained Multi-Automata Pair (LMAP), that pre-closures of regular sets of states can be computed efficiently. This is accomplished by reducing the pre-closure computation for a regular set of states of a concurrent program with nested locks to those for its individual threads. Leveraging this new technique then allows us to formulate a fully automatic, efficient and exact (sound and complete) decision procedure for model checking threads communicating via nested locks for indexed linear-time temporal logic formulae.