|
ABSTRACT
Existing BDD-based symbolic algorithms designed for hardware designs do not perform well on software programs. We propose novel techniques based on unique characteristics of software programs. Our algorithm divides an image computation step into a disjunctive set of easier ones that can be performed in isolation. We use hypergraph partitioning to minimize the number of live variables in each disjunctive component, and variable scopes to simplify transition relations and reachable state subsets. Our experiments on nontrivial C programs show that BDD-based symbolic algorithms can directly handle software models with a much larger number of state variables than for hardware designs.
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 , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
2
|
|
 |
3
|
Thomas Ball , Rupak Majumdar , Todd Millstein , Sriram K. Rajamani, Automatic predicate abstraction of C programs, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.203-213, June 2001, Snowbird, Utah, United States
|
| |
4
|
|
| |
5
|
Barner, S. and Rabinovitz, I. 2003. Efficient symbolic model checking of software using partial disjunctive partitioning. In Proceedings of the 12th Advanced Research Working Conference on Correct Hardware Design and Verification Methods (CHARME). Lecture Notes in Computer Science, vol. 2860. Springer Verlag, Berlin.
|
| |
6
|
|
| |
7
|
Robert K. Brayton , Gary D. Hachtel , Alberto L. Sangiovanni-Vincentelli , Fabio Somenzi , Adnan Aziz , Szu-Tsung Cheng , Stephen A. Edwards , Sunil P. Khatri , Yuji Kukimoto , Abelardo Pardo , Shaz Qadeer , Rajeev K. Ranjan , Shaker Sarwary , Thomas R. Shiple , Gitanjali Swamy , Tiziano Villa, VIS: A System for Verification and Synthesis, Proceedings of the 8th International Conference on Computer Aided Verification, p.428-432, August 03, 1996
|
| |
8
|
|
| |
9
|
|
 |
10
|
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]
|
| |
11
|
Burch, J. R., Clarke, E. M., McMillan, K. L., Dill, D. L., and Hwang, L. J. 1990. Symbolic model checking: 10<sup>20</sup> states and beyond. In Proceedings of the 5th Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos, CA. 1--33.
|
 |
12
|
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]
|
| |
13
|
Pankaj Chauhan , Edmund M. Clarke , Somesh Jha , Jim Kukula , Tom Shiple , Helmut Veith , Dong Wang, Non-linear quantification scheduling in image computation, Proceedings of the 2001 IEEE/ACM international conference on Computer-aided design, November 04-08, 2001, San Jose, California
|
| |
14
|
Cho, H., Hachtel, G. D., Macii, E., Poncino, M., and Somenzi, F. 1996. Automatic state space decomposition for approximate FSM traversal based on circuit analysis. IEEE Trans. Comput. Aided Des. 15, 12 (Dec.), 1451--1464.
|
| |
15
|
Clarke, E., Grumberg, O., and Peled, D. 2000. Model checking. MIT Press, Cambridge, MA.
|
| |
16
|
Clarke, E., Kroening, D., and Lerda, F. 2004. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems, K. Jensen and A. Podelski, eds. Lecture Notes in Computer Science, vol. 2988. Springer Verlag, Berlin. 168--176.
|
| |
17
|
|
| |
18
|
|
| |
19
|
Cook, B., Kroening, D., and Sharygina, N. 2005. Symbolic model checking for asynchronous Boolean programs. In Proceedings of the 12th International SPIN Workshop on Model Checking of Software. 75--90.
|
 |
20
|
James C. Corbett , Matthew B. Dwyer , John Hatcliff , Shawn Laubach , Corina S. Păsăreanu , Robby , Hongjun Zheng, Bandera: extracting finite-state models from Java source code, Proceedings of the 22nd international conference on Software engineering, p.439-448, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/337180.337234]
|
| |
21
|
|
| |
22
|
|
| |
23
|
Edwards, S., Ma, T., and Damiano, R. 2001. Using a hardware model checker to verify software. In Proceedings of the 4th International Conference on ASIC (ASICON). IEEE, Los Alamitos, CA.
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
|
| |
28
|
Ivančić, F., Yang, Z., Gupta, A., Ganai, M., and Ashar, P. 2004. Efficient SAT-based bounded model checking for software verification. In 1st International Symposium on Leveraging Applications of Formal Methods.
|
| |
29
|
Ivančić, F., Yang, Z., Shlyakhter, I., Ganai, M., Gupta, A., and Ashar, P. 2005. F-Soft: Software verification platform. In Proceedings of the Conference on Computer-Aided Verification. Lecture Notes in Computer Science, vol. 3576. Springer Verlag, Berlin. 301--306.
|
| |
30
|
|
| |
31
|
|
| |
32
|
Karypis, G. and Kumar, V. 1998. Multilevel algorithms for multi-constraint graph partitioning. Tech. Rep. 98-019, University of Minnesota, Department of Computer Science. May.
|
| |
33
|
|
| |
34
|
|
| |
35
|
|
| |
36
|
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
|
| |
37
|
Quielle, J. P. and Sifakis, J. 1981. Specification and verification of concurrent systems in CESAR. In Proceedings of the 5th Annual Symposium on Programming.
|
| |
38
|
Ranjan, R. K., Aziz, A., Brayton, R. K., Plessier, B. F., and Pixley, C. 1995. Efficient BDD algorithms for FSM synthesis and verification. Presented at IWLS (Lake Tahoe, CA).
|
| |
39
|
|
 |
40
|
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
|
 |
41
|
|
| |
42
|
|
| |
43
|
|
| |
44
|
Chao Wang , Zijiang Yang , Franjo Ivančić , Aarti Gupta, Disjunctive image computation for embedded software verification, Proceedings of the conference on Design, automation and test in Europe: Proceedings, March 06-10, 2006, Munich, Germany
|
| |
45
|
|
| |
46
|
Zaks, A., Shlyakhter, I., Ivančić, F., Cadambi, H., Yang, Z., Ganai, M., Gupta, A., and Ashar, P. 2006. Range analysis for software verification. In 4th International Workshop on Software Verification and Validation (SVV).
|
|