AutoSV-Annotator: Integrating Deductive and Automatic Software Verification. Armborst, L., Beyer, D., Huisman, M., & Lingsch-Rosenfeld, M. In Remke, A. & Steffen, B., editors, Formal Methods for Industrial Critical Systems, pages 59–77, Cham, 2025. Springer Nature Switzerland.
abstract   bibtex   
Software model checking and deductive software verification have complementary strengths and weaknesses: software model checkers are more straight-forward to use, as they analyze the program without user input; but they do not yet support complicated data structures and expressive specifications. In contrast, deductive verifiers can verify expressive specifications and complex data structures modularly, but they require the user to specify the program behavior in detail, which is a time-consuming process. Due to their differing nature, the two approaches usually remain separate. However, for industrial usage, one requires both: ease of use as well as expressiveness. Therefore, we present AutoSV-Annotator, a toolchain that integrates the two approaches for C programs. The toolchain allows a user to iteratively refine the deductive annotations in a C program, calling a model checker to supplement the annotations at each iteration, guided by the already existing annotations. We show that our tool is able to annotate and prove many tasks from the SV-Benchmarks set. Our results show that the two strategies can indeed benefit from each other.
@InProceedings{10.1007/978-3-032-00942-5_4,
author="Armborst, Lukas
and Beyer, Dirk
and Huisman, Marieke
and Lingsch-Rosenfeld, Marian",
editor="Remke, Anne
and Steffen, Bernhard",
title="AutoSV-Annotator: Integrating Deductive and Automatic Software Verification",
booktitle="Formal Methods for Industrial Critical Systems",
year="2025",
publisher="Springer Nature Switzerland",
address="Cham",
pages="59--77",
abstract="Software model checking and deductive software verification have complementary strengths and weaknesses: software model checkers are more straight-forward to use, as they analyze the program without user input; but they do not yet support complicated data structures and expressive specifications. In contrast, deductive verifiers can verify expressive specifications and complex data structures modularly, but they require the user to specify the program behavior in detail, which is a time-consuming process. Due to their differing nature, the two approaches usually remain separate. However, for industrial usage, one requires both: ease of use as well as expressiveness. Therefore, we present AutoSV-Annotator, a toolchain that integrates the two approaches for C programs. The toolchain allows a user to iteratively refine the deductive annotations in a C program, calling a model checker to supplement the annotations at each iteration, guided by the already existing annotations. We show that our tool is able to annotate and prove many tasks from the SV-Benchmarks set. Our results show that the two strategies can indeed benefit from each other.",
isbn="978-3-032-00942-5"
}

Downloads: 0