Research

Paper

TESTING March 23, 2026

Why does it fail? Explanation of verification failures

Authors

Lars-Henrik Eriksson

Abstract

Satisfiability solving is a common technique for formal verification forming the basis of many proof and model checking systems. Failure to show a proof obligation will produce a counterexample or failure trace with typically many thousands or even millions of boolean variables. Interpreting such a counterexample poses a challenge. Even if the individual variables are all understood, it is difficult to form a "big picture" of the situation causing the failure. We consider the case where verification conditions are expressed using concepts from a formal application domain model in a language based on predicate logic or a similar language. We introduce a method to explain verification failures in application domain terms. A measure of the relative relevance of predicates is used to extract the parts of a formula most likely to contribute meaningfully to the explanation. Dependencies between predicates are used to form a branching sequence of successive explanations. These explanations can help a practitioner find faults in the system being verified. The method is demonstrated on examples and compared to other methods.

Metadata

arXiv ID: 2603.21788
Provider: ARXIV
Primary Category: cs.LO
Published: 2026-03-23
Fetched: 2026-03-24 06:02

Related papers

Raw Data (Debug)
{
  "raw_xml": "<entry>\n    <id>http://arxiv.org/abs/2603.21788v1</id>\n    <title>Why does it fail? Explanation of verification failures</title>\n    <updated>2026-03-23T10:29:41Z</updated>\n    <link href='https://arxiv.org/abs/2603.21788v1' rel='alternate' type='text/html'/>\n    <link href='https://arxiv.org/pdf/2603.21788v1' rel='related' title='pdf' type='application/pdf'/>\n    <summary>Satisfiability solving is a common technique for formal verification forming the basis of many proof and model checking systems. Failure to show a proof obligation will produce a counterexample or failure trace with typically many thousands or even millions of boolean variables. Interpreting such a counterexample poses a challenge. Even if the individual variables are all understood, it is difficult to form a \"big picture\" of the situation causing the failure. We consider the case where verification conditions are expressed using concepts from a formal application domain model in a language based on predicate logic or a similar language. We introduce a method to explain verification failures in application domain terms. A measure of the relative relevance of predicates is used to extract the parts of a formula most likely to contribute meaningfully to the explanation. Dependencies between predicates are used to form a branching sequence of successive explanations. These explanations can help a practitioner find faults in the system being verified. The method is demonstrated on examples and compared to other methods.</summary>\n    <category scheme='http://arxiv.org/schemas/atom' term='cs.LO'/>\n    <published>2026-03-23T10:29:41Z</published>\n    <arxiv:comment>18 pages, 3 figures</arxiv:comment>\n    <arxiv:primary_category term='cs.LO'/>\n    <author>\n      <name>Lars-Henrik Eriksson</name>\n    </author>\n  </entry>"
}