Boosting Lazy Abstraction for SystemC with Partial Order Reduction

The SystemC language is a de-facto standard for the description of systems on chip. A promising technique, called ESST, has recently been proposed for the formal verification of SystemC designs. ESST combines Explicit state techniques to deal with the SystemC Scheduler, with Symbolic techniques, based on lazy abstraction, to deal with the Threads. Despite its relative effectiveness, this approach suffers from the potential explosion of thread interleavings. In this paper we propose the adoption of partial order reduction (POR) techniques to alleviate the problem. We extend ESST with two complementary POR techniques (persistent set, and sleep set), and we prove the soundness of the approach in the case of safety properties. The extension is only seemingly trivial: the POR, applied to the scheduler, must be proved not to interfere with the lazy abstraction of the threads. We implemented the techniques within the software model checker KRATOS, and we carried out an experimental evaluation on benchmarks taken from the SystemC distribution and from the literature. The results showed a significant improvement in terms of the number of visited abstract states and run times.

[1]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[2]  Florence Maraninchi,et al.  Pinapa: an extraction tool for SystemC descriptions of systems-on-a-chip , 2005, EMSOFT.

[3]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

[4]  Moshe Y. Vardi,et al.  A Temporal Language for SystemC , 2008, 2008 Formal Methods in Computer-Aided Design.

[5]  Roberto Bruttomesso,et al.  The MathSAT 4SMT Solver , 2008, CAV.

[6]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.

[7]  Daniel Kroening,et al.  Race analysis for SystemC using model checking , 2008, 2008 IEEE/ACM International Conference on Computer-Aided Design.

[8]  Fausto Giunchiglia,et al.  NUSMV: a new symbolic model checker , 2000, International Journal on Software Tools for Technology Transfer.

[9]  Stephan Merz,et al.  Model Checking , 2000 .

[10]  Florence Maraninchi,et al.  Automatic Generation of Schedulings for Improving the Test Coverage of Systems-on-a-Chip , 2006, 2006 Formal Methods in Computer Aided Design.

[11]  Gerard J. Holzmann,et al.  Software model checking with SPIN , 2005, Adv. Comput..

[12]  Antti Valmari,et al.  Stubborn sets for reduced state generation , 1991 .

[13]  Robert K. Brayton,et al.  Partial-Order Reduction in Symbolic State-Space Exploration , 2001, Formal Methods Syst. Des..

[14]  Florence Maraninchi,et al.  A SystemC/TLM Semantics in Promelaand Its Possible Applications , 2007, SPIN.

[15]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[16]  Rajesh Gupta,et al.  Partial order reduction for scalable testing of SystemC TLM designs , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[17]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[18]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[19]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.

[20]  Grzegorz Rozenberg Advances in Petri Nets 1990 , 1989, Lecture Notes in Computer Science.

[21]  Chao Wang,et al.  Peephole Partial Order Reduction , 2008, TACAS.

[22]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[23]  Patrice Godefroid,et al.  Software Model Checking: The VeriSoft Approach , 2005, Formal Methods Syst. Des..

[24]  Vineet Kahlon,et al.  Symbolic Model Checking of Concurrent Programs Using Partial Orders and On-the-Fly Transactions , 2006, CAV.

[25]  Antti Valmari,et al.  Stubborn sets for reduced state space generation , 1991, Applications and Theory of Petri Nets.

[26]  Doron A. Peled Combining Partial Order Reductions with On-the-fly Model-Checking , 1994, CAV.

[27]  Marco Roveri,et al.  Verifying SystemC: A software model checking approach , 2010, Formal Methods in Computer Aided Design.