JCWIT: A Correctness-Witness Validator for Java Programs based on Bounded Model Checking

Zaiyu Cheng, Tong Wu, Peter Schrammel, Norbert Tihanyi, Eddie B. de Lima Filho, Lucas Cordeiro

Research output: Chapter in Book/Conference proceedingConference contributionpeer-review

Abstract

Witness validation is a formal verification method to independently verify software verification tool results, with two main categories: violation and correctness witness validators. Validators for violation witnesses in Java include Wit4Java and GWIT, but no dedicated correctness witness validators exist. To address this gap, this paper presents the Java Correctness-Witness Validator (JCWIT), the first tool to validate correctness witnesses in Java programs. JCWIT accepts an original program, a specification, and a correctness witness as inputs. Then, it uses invariants of each witness’s execution state as conditions to be incorporated into the original program in the form of assertions, thus instrumenting it. Next, JCWIT employs an established tool, Java Bounded Model Checker (JBMC), to verify the transformed program, hence examining the reproducibility of correct witness results. We evaluated JCWIT in the SV-COMP ReachSafety benchmark, and the results show that JCWIT can correctly validate the correctness witnesses generated by Java verifiers. 
Original languageEnglish
Title of host publicationThe ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)
Pages1831 - 1835
Number of pages5
DOIs
Publication statusPublished - 11 Sept 2024

Keywords

  • Correctness
  • Witness Validation
  • Java Programming
  • Bounded Model Checking

Fingerprint

Dive into the research topics of 'JCWIT: A Correctness-Witness Validator for Java Programs based on Bounded Model Checking'. Together they form a unique fingerprint.

Cite this