Author:
Alhawi Omar M.,Rocha Herbert,Gadelha Mikhail R.,Cordeiro Lucas C.,Batista Eddie
Abstract
AbstractDepthK is a source-to-source transformation tool that employs bounded model checking (BMC) to verify and falsify safety properties in single- and multi-threaded C programs, without manual annotation of loop invariants. Here, we describe and evaluate a proof-by-induction algorithm that combines k-induction with invariant inference to prove and refute safety properties. We apply two invariant generators to produce program invariants and feed these into a k-induction-based verification algorithm implemented in DepthK, which uses the efficient SMT-based context-bounded model checker (ESBMC) as sequential verification back-end. A set of C benchmarks from the International Competition on Software Verification (SV-COMP) and embedded-system applications extracted from the available literature are used to evaluate the effectiveness of the proposed approach. Experimental results show that k-induction with invariants can handle a wide variety of safety properties, in typical programs with loops and embedded software applications from the telecommunications, control systems, and medical domains. The results of our comparative evaluation extend the knowledge about approaches that rely on both BMC and k-induction for software verification, in the following ways. (1) The proposed method outperforms the existing implementations that use k-induction with an interval-invariant generator (e.g., 2LS and ESBMC), in the category ConcurrencySafety, and overcame, in others categories, such as SoftwareSystems, other software verifiers that use plain BMC (e.g., CBMC). Also, (2) it is more precise than other verifiers based on the property-directed reachability (PDR) algorithm (i.e., SeaHorn, Vvt and CPAchecker-CTIGAR). This way, our methodology demonstrated improvement over existing BMC and k-induction-based approaches.
Publisher
Springer Science and Business Media LLC
Subject
Information Systems,Software
Reference71 articles.
1. Albarghouthi, A., Gurfinkel, A., Li, Y., Chaki, S., Chechik, M.: UFO: Verification with interpolants and abstract interpretation. Tools Algorithms Constr. Anal. Syst. LNCS 7795, 637–640 (2013)
2. Alglave, J., Kroening, D., Tautschnig, M.: Partial orders for efficient bounded model checking of concurrent software. Comput. Aided Verification LNCS 8044, 141–157 (2013)
3. Armando, A., Mantovani, J., Platania, L.: Bounded model checking of software using SMT solvers instead of SAT solvers. Softw. Tools Technol. Transf. 11(1), 69–83 (2009)
4. Ball, T., Rajamani, S.: SLIC: A specification language for interface checking (of C). Tech. rep, Microsoft Research (2002)
5. Barrett, C., Sebastiani, R., Seshia, S., Tinelli, C.: Handbook of Satisfiability, IOS Press, chap Satisfiability Modulo Theories, pp 825–885 (2009)
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards Integrity and Reliability in Embedded Systems: The Synergy of ESBMC and Arduino Integration;2023 XIII Brazilian Symposium on Computing Systems Engineering (SBESC);2023-11-21
2. Demystifying Template-Based Invariant Generation for Bit-Vector Programs;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11
3. Transpilers: A Systematic Mapping Review of Their Usage in Research and Industry;Applied Sciences;2023-03-13
4. A K-Induction Method Extended with Value Analysis for C Program Safety Verification;2022 IEEE International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom);2022-12
5. The Software-controlled Digital Platform Model for the Transmission of New Knowledge;2022 International Conference on Modern Network Technologies (MoNeTec);2022-10-27