|
ABSTRACT
We present an efficient symbolic search algorithm for software model checking. Our algorithms perform word-level reasoning by using a combination of decision procedures in Boolean and integer and real domains, and use novel symbolic search strategies optimized specifically for sequential programs to improve scalability. Experiments on real-world C programs show that the new symbolic search algorithms can achieve several orders-of-magnitude improvements over existing methods based on bit-level (Boolean) reasoning.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Alfred V. Aho , Monica S. Lam , Ravi Sethi , Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition), Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2006
|
| |
2
|
|
| |
3
|
Armando, A., Benerecetti, M., and Mantovani, J. 2006a. Model checking linear programs with arrays. Electr. Notes Theor. Comput. Sci. 144, 3, 79--94.
|
| |
4
|
Armando, A., Mantovani, J., and Platania, L. 2006b. Bounded model checking of software using smt solvers instead of sat solvers. In Proceedings of SPIN. 146--162.
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
| |
8
|
Bensalem, S., Ganesh, V., Lakhnech, Y., Munoz, C., Owre, S., Rueb, H., Rushby, J., Rusu, V., Saidi, H., Shankar, N., Singerman, E., and Tiwari, A. 2000. An overview of SAL. In Proceedings of the 5th Langley Formal Methods Workshop.
|
| |
9
|
|
| |
10
|
|
| |
11
|
|
 |
12
|
|
| |
13
|
|
 |
14
|
J. R. Burch , E. M. Clarke , D. E. Long, Representing circuits more efficiently in symbolic model checking, Proceedings of the 28th conference on ACM/IEEE design automation, p.403-407, June 17-22, 1991, San Francisco, California, United States
[doi> 10.1145/127601.127702]
|
| |
15
|
|
 |
16
|
Gianpiero Cabodi , Paolo Camurati , Luciano Lavagno , Stefano Quer, Disjunctive partitioning and partial iterative squaring: an effective approach for symbolic traversal of large circuits, Proceedings of the 34th annual conference on Design automation, p.728-733, June 09-13, 1997, Anaheim, California, United States
[doi> 10.1145/266021.266355]
|
| |
17
|
Cardelli, L. 1997. Type systems. In Handbook of Computer Science and Engineering.
|
| |
18
|
Sagar Chaki , Edmund Clarke , Alex Groce , Somesh Jha , Helmut Veith, Modular verification of software components in C, Proceedings of the 25th International Conference on Software Engineering, May 03-10, 2003, Portland, Oregon
|
| |
19
|
Clarke, E., Grumberg, O., and Peled, D. 2000. Model Checking. MIT Press.
|
| |
20
|
Clarke, E., Kroening, D., and Lerda, F. 2004a. A tool for checking ANSI-C programs. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, vol. 2988, Springer, 168--176.
|
| |
21
|
Clarke, E., Kroening, D., and Lerda, F. 2004b. A tool for checking ANSI-C programs. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems. K. Jensen and A. Podelski, Eds. Lecture Notes in Computer Science, vol. 2988. Springer, 168--176.
|
| |
22
|
|
| |
23
|
Cousot, P. and Cousot, R. 1976. Static determination of dynamic properties of programs. In Proceedings of the the 2nd International Symposium on Programming.
|
 |
24
|
|
 |
25
|
|
 |
26
|
David Evans , John Guttag , James Horning , Yang Meng Tan, LCLint: a tool for using specifications to check code, Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, p.87-96, December 06-09, 1994, New Orleans, Louisiana, United States
|
 |
27
|
David Gay , Philip Levis , Robert von Behren , Matt Welsh , Eric Brewer , David Culler, The nesC language: A holistic approach to networked embedded systems, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
| |
28
|
|
| |
29
|
|
| |
30
|
|
| |
31
|
|
| |
32
|
|
| |
33
|
Franjo Ivani , Zijiang Yang , Malay K. Ganai , Aarti Gupta , Pranav Ashar,
Efficient SAT-based bounded model checking for software verification, Theoretical Computer Science, v.404 n.3, p.256-274, September, 2008
[doi> 10.1016/j.tcs.2008.03.013]
|
| |
34
|
Ivančić, F., Yang, Z., Shlyakhter, I., Ganai, M., Gupta, A., and Ashar, P. 2005a. F-Soft: Software verification platform. In Proceedings of the Computer-Aided Verification. Lecture Notes on Computer Science, vol. 3576, Springer-Verlag, 301--306.
|
| |
35
|
Jain, H., Ivančić, F., Gupta, A., and Ganai, M. 2005. Localization and register sharing for predicate abstraction. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes on Computer Science, vol. 3440. Springer-Verlag, 394--409.
|
| |
36
|
Jayaraman, G., Ranganath, V. P., and Hatcliff, J. 2005. Kaveri: Delivering the indus java program slicer to eclipse. In Proceedings of the Fundamental Approaches to Software Engineering (FASE). 269--272.
|
| |
37
|
|
| |
38
|
|
| |
39
|
Amit Narayan , Adrian J. Isles , Jawahar Jain , Robert K. Brayton , Alberto L. Sangiovanni-Vincentelli, Reachability analysis using partitioned-ROBDDs, Proceedings of the 1997 IEEE/ACM international conference on Computer-aided design, p.388-393, November 09-13, 1997, San Jose, California, United States
|
| |
40
|
Nelson, G. 1984. Combining satisfiability procedures by equality-sharing. Contemp. Math. 29, 201--211.
|
 |
41
|
|
| |
42
|
Quielle, J. P. and Sifakis, J. 1981. Specification and verification of concurrent systems in CESAR. In Proceedings of the 5th Annual Symposium on Programming.
|
| |
43
|
Ranjan, R. K., Aziz, A., Brayton, R. K., Plessier, B. F., and Pixley, C. 1995. Efficient BDD algorithms for FSM synthesis and verification. In Proceedings of the International Workshop on Logic Synthesis (IWLS'95).
|
 |
44
|
Radu Rugina , Martin Rinard, Symbolic bounds analysis of pointers, array indices, and accessed memory regions, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.182-195, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
45
|
Sankaranarayanan, S., Ivančić, F., and Gupta, A. 2007. Program analysis using symbolic ranges. In Proceedings of the Static Analysis Symposium.
|
| |
46
|
Sankaranarayanan, S., Ivančić, F., Shlyakhter, I., and Gupta, A. 2006. Static analysis in disjunctive numerical domains. In Proceedings of the Static Analysis Symposium.
|
 |
47
|
|
| |
48
|
Somenzi, F. 1995. CUDD: CU Decision Diagram Package. University of Colorado at Boulder, ftp://vlsi.colorado.edu/pub/.
|
| |
49
|
Tip, F. 1995. A survey of program slicing techniques. J. Program. Lang. 3, 121--189.
|
| |
50
|
|
| |
51
|
Wang, C., Yang, Z., Gupta, A., and Ivančić, F. 2006. Whodunit? causal analysis for counterexamples. In Proceedings of the 4th International Symposium on Automated Technology for Verification and Analysis.
|
 |
52
|
|
| |
53
|
Yang, Z., Wang, C., Ivančić, F., and Gupta, A. 2006. Mixed symbolic representations for model checking software programs. In ACM/IEEE International Conference on Formal Methods and Models for Codesign (Memocode).
|
| |
54
|
Yavuz-Kahveci, T., Bartzis, C., and Bultan, T. 2005. Action language verifier, extended. In Proceedings of the Conference on Computer Aided Verification. Lecture Notes in Computer Science, vol. 3576, Springer-Verlag, 413--416.
|
| |
55
|
Yavuz-Kahveci, T. and Bultan, T. 2003. A symbolic manipulator for automated verification of reactive systems with heterogeneous data types. Int. J. Softw. Tools Tech. Trans. 5,1, 15--33.
|
| |
56
|
|
| |
57
|
Zaks, A., Yang, Z., Shlyakhter, I., Ivančić, F., Cadambi, S., Ganai, M. K., Gupta, A., and Ashar, P. 2008. Bitwidth reduction via symbolic interval analysis for software model checking. IEEE Trans. Comput. Aid. Des. Integr. Circ. Syst., 27, 8.
|
|