Deductive Verification of Unmodified Linux Kernel Library Functions
Abstract
This paper presents results from the development and evaluation of a deductive verification benchmark consisting of 26 unmodified Linux kernel library functions implementing conventional memory and string operations. The formal contract of the functions was extracted from their source code and was represented in the form of preconditions and postconditions. The correctness of 23 functions was completely proved using AstraVer toolset, although success for 11 functions was achieved using 2 new specification language constructs. Another 2 functions were proved after a minor modification of their source code, while the final one cannot be completely proved using the existing memory model. The benchmark can be used for the testing and evaluation of deductive verification tools and as a starting point for verifying other parts of the Linux kernel.
Cite
@article{arxiv.1809.00626,
title = {Deductive Verification of Unmodified Linux Kernel Library Functions},
author = {Denis Efremov and Mikhail Mandrykin and Alexey Khoroshilov},
journal= {arXiv preprint arXiv:1809.00626},
year = {2018}
}
Comments
18 pages, 2 tables, 6 listings. Accepted to ISoLA 2018 conference. Evaluating Tools for Software Verification track