Abstract
This paper develops novel bounded model checking (BMC) techniques for asynchronous parallel systems. The aim is to increase the efficiency of BMC by exploiting the inherent concurrency in such systems. This added efficiency is gained by covering more reachable states within a given bound using two techniques. Firstly, a nonstandard execution model, step executions, where multiple actions can take place simultaneously is applied. Secondly, the number of executions the system can have is reduced by modeling the execution of the system components as if they were determinized. This determinization technique also enables the removal of the internal transitions of the components. Step executions can be further restricted to a subclass called process executions without losing any reachable states.
The paper presents a translation scheme for BMC of reachability properties. The translation is from an asynchronous system where the components are modeled as labeled transition systems (LTSs) to a propositional formula. The models of the formula correspond to the step executions of the original system where each component is replaced with its determinized counterpart. The formula for step executions can be easily extended in such a way that its models correspond to the process executions of the system. The translation scheme has been implemented and some experimental comparisons performed. The results show that the bound needed to detect a violation of a reachability property is, for step and process executions, in most cases lower than in interleaving executions and that the running time of the model checker using process executions is smaller than of that using steps. Moreover, the performance compares favorably to a state-of-the-art interleaving BMC implementation in the NuSMV system.
Similar content being viewed by others
References
Biere A, Cimatti A, Clarke E, Zhu Y (1999) Symbolic model checking without BDDs. In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS’1999). Lecture notes in computer science, vol 1579. Springer, Berlin Heidelberg New York, pp 193–207
Biere A, Clarke E, Raimi R, Zhu Y (2000) Verifying safety properties of a PowerPC microprocessor using symbolic model checking without BDDs. In: Formal Methods in Computer Aided Design. Lecture notes in computer science, vol 1633. Springer, Berlin Heidelberg New York, pp 60–71
Bjesse P, Leonard T, Mokkedem A (2001) Finding bugs in Alpha microprocessor using satisfiability solvers. In: Proceedings of the 13th international conference of computer aided verification (CAV’2001). Lecture notes in computer science, vol 2102. Springer, Berlin Heidelberg New York, pp 454–464
Cimatti A, Clarke EM, Giunchiglia E, Giunchiglia F, Pistore M, Roveri M, Sebastiani R, Tacchella A (2002) NuSMV 2: An opensource tool for symbolic model checking. In: Proceedings of the 14th international conference on computer-aided verification (CAV’2002), July 2002. Lecture notes in computer science, vol 2404. Springer, Berlin Heidelberg New York, pp 359–364
Cimatti A, Pistore M, Roveri M, Sebastiani R (2002) Integrating BDD-based and SAT-based symbolic model checking. In: Proceedings of the 4th international workshop on frontiers of combining systems, April 2002
Corbett JC (1996) Evaluating deadlock detection methods for concurrent software. IEEE Trans Softw Eng 22(3):161–180
Diekert V, Métivier Y (1997) Partial commutation and traces. In: Handbook of formal languages, vol 3. Springer, Berlin Heidelberg New York, pp 457–534
Heljanko K (2001) Bounded reachability checking with process semantics. In: Proceedings of the 12th international conference on concurrency theory (CONCUR’2001), August 2001, pp 218–232
Heljanko K, Niemelä I (2003) Bounded LTL model checking with stable models. Theory Pract Logic Programm 3(4&5):519–550
Holzmann GJ (1991) Design and validation of computer protocols. Prentice Hall, Upper Saddle River, NJ
Junttila TA (2003) Boolean circuit tools (including BCZChaff), May. http://www.tcs.hut.fi/∼tjunttil/circuits
Junttila TA, Niemelä I (2000) Towards an efficient tableau method for boolean circuit satisfiability testing. In: 1st internatinal conference on computational logic (CL 2000), London, July 2000. Lecture notes in artificial intelligence, vol 1861. Springer, Berlin Heidelberg New York, pp 553–567
Jussila T (2003) A BMC tool translating LTSs to boolean circuits, May. http://www.tcs.hut.fi/∼tjussila/otf
Latvala T (2003) Efficient model checking of safety properties. In: 10th international SPIN workshop on model checking software. Lecture notes in computer science, vol 2648. Springer, Berlin Heidelberg New York, pp 74–88
Melzer S, Römer S (1997) Deadlock checking using net unfoldings. In: Proceeding of the 9th international conference on computer aided verification (CAV’97), June 1997. Lecture notes in computer science, vol 1254. Springer, Berlin Heidelberg New York, pp 352–363
Moskewicz M, Madigan Y, Zhao L, Zhang L, Malik S (2001) Chaff: engineering an efficient SAT solver. In: 39th conference on design automation, July 2001
Papadimitriou C, Lewis H (1981) Elements of the theory of computation. Prentice Hall, Upper Saddle River, NJ
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Jussila, T., Heljanko, K. & Niemelä, I. BMC via on-the-fly determinization. Int J Softw Tools Technol Transfer 7, 89–101 (2005). https://doi.org/10.1007/s10009-004-0178-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-004-0178-1