{"title":"Diagnosis via Proofs of Unsatisfiability for First-Order Logic with Relational Objects","authors":"Nick Feng, Lina Marsso, Marsha Chechik","doi":"arxiv-2409.09223","DOIUrl":null,"url":null,"abstract":"Satisfiability-based automated reasoning is an approach that is being\nsuccessfully used in software engineering to validate complex software,\nincluding for safety-critical systems. Such reasoning underlies many validation\nactivities, from requirements analysis to design consistency to test coverage.\nWhile generally effective, the back-end constraint solvers are often complex\nand inevitably error-prone, which threatens the soundness of their application.\nThus, such solvers need to be validated, which includes checking correctness\nand explaining (un)satisfiability results returned by them. In this work, we\nconsider satisfiability analysis based on First-Order Logic with relational\nobjects (FOL*) which has been shown to be effective for reasoning about time-\nand data-sensitive early system designs. We tackle the challenge of validating\nthe correctness of FOL* unsatisfiability results and deriving diagnoses to\nexplain the causes of the unsatisfiability. Inspired by the concept of proofs\nof UNSAT from SAT/SMT solvers, we define a proof format and proof rules to\ntrack the solvers' reasoning steps as sequences of derivations towards UNSAT.\nWe also propose an algorithm to verify the correctness of FOL* proofs while\nfiltering unnecessary derivations and develop a proof-based diagnosis to\nexplain the cause of unsatisfiability. We implemented the proposed proof\nsupport on top of the state-of-the-art FOL* satisfiability checker to generate\nproofs of UNSAT and validated our approach by applying the proof-based\ndiagnoses to explain the causes of well-formedness issues of normative\nrequirements of software systems.","PeriodicalId":501278,"journal":{"name":"arXiv - CS - Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-09-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.09223","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
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.