A

Interpretation-Based Violation Witness Validation for C: NITWIT

Lecture notes in computer science, pp. 40–57

Abstract

As software verification is gaining traction in academia and industry the number and complexity of verification tools is growing constantly. This initiated research and interest into exchangeable verification witnesses as well as tools for automated witness validation. Initial witness validators used model checkers that were amended to benefit from guidance information provided by the witness. This approach comes with substantial overhead. Second-generation execution-based validators traded speed for reduced strength in case of incomplete and non-exact witnesses. This was done by extracting test harnesses and compiling them with the original program. We present the nitwit tool, a new interpretation-based violation witness validator for C programs that is trimmed to be fast and memory efficient. It verifies a record number of witnesses of SV-COMP’20 in the ReachSafety category. Our novel tool exchanges initial compilation overhead and optimized execution for rapid startup performance. nitwit borrows C semantics from the compiler used for compilation. This offloads this hard-to-get-right task and enables using several compilers in parallel to inspect possible semantic differences.

Authors 3

  1. Jan Švejda corresponding Aachen

    RWTH Aachen University

    Affiliation as printed

    RWTH Aachen University, Aachen, Germany

  2. Philipp K. Berger corresponding Aachen

    RWTH Aachen University

    Affiliation as printed

    RWTH Aachen University, Aachen, Germany

  3. Joost-Pieter Katoen corresponding Aachen

    RWTH Aachen University

    Affiliation as printed

    RWTH Aachen University, Aachen, Germany

Cited by 19 stored of 19

19 results

No patents citing this paper on Lens.org (checked 2026-10-06).

References 25