Lazy Sequentialization for the Safety Verification of Unbounded Concurrent Programs

被引:12
作者
Nguyen, Truc L. [1 ]
Fischer, Bernd [2 ]
La Torre, Salvatore [3 ]
Parlato, Gennaro [1 ]
机构
[1] Univ Southampton, Elect & Comp Sci, Southampton, England
[2] Univ Stellenbosch, Comp Sci, Stellenbosch, South Africa
[3] Univ Salerno, Informat, Fisciano, Italy
来源
AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, ATVA 2016 | 2016年 / 9938卷
基金
英国工程与自然科学研究理事会;
关键词
TOOL; CSEQ;
D O I
10.1007/978-3-319-46520-3_12
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Lazy sequentialization has emerged as one of the most promising approaches for concurrent program analysis but the only efficient implementation given so far works just for bounded programs. This restricts the approach to bug-finding purposes. In this paper, we describe and evaluate a new lazy sequentialization translation that does not unwind loops and thus allows to analyze unbounded computations, even with an unbounded number of context switches. In connection with an appropriate sequential backend verification tool it can thus also be used for the safety verification of concurrent programs, rather than just for bug-finding. The main technical novelty of our translation is the simulation of the thread resumption in a way that does not use gotos and thus does not require that each statement is executed at most once. We have implemented this translation in the UL-CSeq tool for C99 programs that use the pthreads API. We evaluate UL-CSeq on several benchmarks, using different sequential verification backends on the sequentialized program, and show that it is more effective than previous approaches in proving the correctness of the safe benchmarks, and still remains competitive with state-of-the-art approaches for finding bugs in the unsafe benchmarks.
引用
收藏
页码:174 / 191
页数:18
相关论文
共 28 条
[1]  
Alglave Jade, 2013, Computer Aided Verification. 25th International Conference, CAV 2013. Proceedings. LNCS 8044, P141, DOI 10.1007/978-3-642-39799-8_9
[2]   Reliable and Reproducible Competition Results with BenchExec and Witnesses (Report on SV-COMP 2016) [J].
Beyer, Dirk .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS (TACAS 2016), 2016, 9636 :887-904
[3]  
Chaki S., 2011, 2011 Formal Methods in Computer-Aided Design (FMCAD), P72
[4]   A tool for checking ANSI-C programs [J].
Clarke, E ;
Kroening, D ;
Lerda, F .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2004, 2988 :168-176
[5]  
Fischer B, 2013, LECT NOTES COMPUT SC, V7795, P616
[6]  
Fischer B, 2013, IEEE INT CONF AUTOM, P710, DOI 10.1109/ASE.2013.6693139
[7]  
Garg P, 2011, LECT NOTES COMPUT SC, V6605, P26, DOI 10.1007/978-3-642-19835-9_4
[8]  
Ghafari N, 2010, LECT NOTES COMPUT SC, V6349, P227
[9]   The SeaHorn Verification Framework [J].
Gurfinkel, Arie ;
Kahsai, Temesghen ;
Komuravelli, Anvesh ;
Navas, Jorge A. .
COMPUTER AIDED VERIFICATION, PT I, 2015, 9206 :343-361
[10]  
Heizmann M, 2013, LECT NOTES COMPUT SC, V7795, P641, DOI 10.1007/978-3-642-36742-7_53