Efficient generation of counterexamples and witnesses in symbolic model checking
DAC '95 Proceedings of the 32nd annual ACM/IEEE Design Automation Conference
Model checking
An automata-theoretic approach to branching-time model checking
Journal of the ACM (JACM)
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal Methods in System Design
Fate and Free Will in Error Traces
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Efficient Debugging in a Formal Verification Environment
CHARME '01 Proceedings of the 11th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
Causes and Explanations: A Structural-Model Approach: Part 1: Causes
UAI '01 Proceedings of the 17th Conference in Uncertainty in Artificial Intelligence
Specification and verification of concurrent systems in CESAR
Proceedings of the 5th Colloquium on International Symposium on Programming
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
The common fragment of CTL and LTL
FOCS '00 Proceedings of the 41st Annual Symposium on Foundations of Computer Science
A Faster Counterexample Minimization Algorithm Based on Refutation Analysis
Proceedings of the conference on Design, Automation and Test in Europe - Volume 2
A Practical Introduction to PSL (Series on Integrated Circuits and Systems)
A Practical Introduction to PSL (Series on Integrated Circuits and Systems)
Automated Fault Localization for C Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
What causes a system to satisfy a specification?
ACM Transactions on Computational Logic (TOCL)
Using unsatisfiable cores to debug multiple design errors
Proceedings of the 18th ACM Great Lakes symposium on VLSI
Complexity results for structure-based causality
IJCAI'01 Proceedings of the 17th international joint conference on Artificial intelligence - Volume 1
Resets vs. aborts in linear temporal logic
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Fault localization and correction with QBF
SAT'07 Proceedings of the 10th international conference on Theory and applications of satisfiability testing
Efficient automatic STE refinement using responsibility
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
A framework for counterexample generation and exploration
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
A scalable algorithm for minimal unsatisfiable core extraction
SAT'06 Proceedings of the 9th international conference on Theory and Applications of Satisfiability Testing
Whodunit? causal analysis for counterexamples
ATVA'06 Proceedings of the 4th international conference on Automated Technology for Verification and Analysis
Learning to adapt requirements specifications of evolving systems (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Counter example-based error localization of behavior models
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Analyzing unsynthesizable specifications for high-level robot behavior using LTLMoP
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
From probabilistic counterexamples via causality to fault trees
SAFECOMP'11 Proceedings of the 30th international conference on Computer safety, reliability, and security
Automated documentation inference to explain failed tests
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Counterexample explanation by anomaly detection
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
Reusing debugging knowledge via trace-based bug search
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Action-based discovery of satisfying subsets: A distributed method for model correction
Information and Software Technology
Behavioral diagnosis of LTL specifications at operator level
IJCAI'13 Proceedings of the Twenty-Third international joint conference on Artificial Intelligence
Hi-index | 0.00 |
When a model does not satisfy a given specification, a counterexample is produced by the model checker to demonstrate the failure. A user must then examine the counterexample trace, in order to visually identify the failure that it demonstrates. If the trace is long, or the specification is complex, finding the failure in the trace becomes a non-trivial task. In this paper, we address the problem of analyzing a counterexample trace and highlighting the failure that it demonstrates. Using the notion of causality , introduced by Halpern and Pearl, we formally define a set of causes for the failure of the specification on the given counterexample trace. These causes are marked as red dots and presented to the user as a visual explanation of the failure. We study the complexity of computing the exact set of causes, and provide a polynomial-time algorithm that approximates it. This algorithm is implemented as a feature in the IBM formal verification platform RuleBase PE, where these visual explanations are an integral part of every counterexample trace. Our approach is independent of the tool that produced the counterexample, and can be applied as a light-weight external layer to any model checking tool, or used to explain simulation traces.