Slicing Assisted Program Verification: An Empirical Study

Published: 01 Jan 2024, Last Modified: 02 Aug 2025TASE 2024EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: Simplifying programs before verification aims to reduce program complexity thus saving the verification effort. In the paper, we investigate the impacts of applying program slicing before verification. We consider various techniques and verifiers for the workflow and adopt benchmarks from the software verification community to evaluate the strengths and issues in adopting slicing techniques for program simplification. The evaluation considers reachability as the property to be verified and checks the consistency of verification results, the improvement of verification efficiency, and the advantages of different toolchains when verifying reachability. The investigation shows that most programs keep consistent verification results after slicing and verifying programs with much code unrelated to the properties becomes faster when slicing is applied before verification. However, it is surprising that verification time for some programs can be significantly longer after slicing. We have investigated the reasons for such phenomenon concerning the features of these programs, and provide insightful conclusions obtained from using the slicing+verification approach.
Loading