Path Sensitive Program Verification Based on SMT Solvers

HE Yan-Xiang,WU Wei,CHEN Yong,XU Chao
DOI: https://doi.org/10.3724/sp.j.1001.2012.04196
2012-01-01
Journal of Software
Abstract:With the rapid increase in size and complexity of software, more and more attention is paid to the software's trust. Verifying whether programs satisfy the properties described by assertions is a common method to guarantee trust of the software. Since path sensitive program verification cannot traverse all paths, it needs merge the path information, which causes a loss of precision. The study proposes a program verification method using SMT solvers, which can reduce the path search space and improve the precision at the same time. The method's main sprit is impacting the cycle path by using maximal strongly connected component and slicing the CFG according to the aim assertion. The study abstracts the path space using Boolean formulas and verifies the path by combining abstract interpretation and symbolic execution. The study has conducted experiments based on the F-Soft program verification platform and SMT solver Z3, and results show that this method performs well based on precision and effect.
What problem does this paper attempt to address?