Diagnosis via Proofs of Unsatisfiability for First-Order Logic with Relational Objects
<|reference_start|>Diagnosis via Proofs of Unsatisfiability for First-Order Logic with Relational Objects: Satisfiability-based automated reasoning is an approach that is being successfully used in software engineering to validate complex software, including for safety-critical systems. Such reasoning underlies many validation activities, from requirements analysis to design consistency to test coverage. While generally effective, the back-end constraint solvers are often complex and inevitably error-prone, which threatens the soundness of their application. Thus, such solvers need to be validated, which includes checking correctness and explaining (un)satisfiability results returned by them. In this work, we consider satisfiability analysis based on First-Order Logic with relational objects (FOL*) which has been shown to be effective for reasoning about time- and data-sensitive early system designs. We tackle the challenge of validating the correctness of FOL* unsatisfiability results and deriving diagnoses to explain the causes of the unsatisfiability. Inspired by the concept of proofs of UNSAT from SAT/SMT solvers, we define a proof format and proof rules to track the solvers' reasoning steps as sequences of derivations towards UNSAT. We also propose an algorithm to verify the correctness of FOL* proofs while filtering unnecessary derivations and develop a proof-based diagnosis to explain the cause of unsatisfiability. We implemented the proposed proof support on top of the state-of-the-art FOL* satisfiability checker to generate proofs of UNSAT and validated our approach by applying the proof-based diagnoses to explain the causes of well-formedness issues of normative requirements of software systems.<|reference_end|>
@article{feng2024diagnosis,
    title={Diagnosis via Proofs of Unsatisfiability for First-Order Logic with
  Relational Objects},
    author={Nick Feng, Lina Marsso, Marsha Chechik},
    journal={arXiv preprint arXiv:2409.09223},
    year={2024},
    doi={10.1145/3691620.3695522},
    archivePrefix={arXiv},
    eprint={2409.09223},
    primaryClass={cs.SE}
}